Создать образ дискеты linux

Обновлено: 04.07.2024

В этой статье пойдет речь о создании загрузочных дискет и CD-дисков Linux, которые бывают полезны, а зачастую и необходимы во многих ситуациях, начиная от банального восстановления забытого пароля и заканчивая работой в качестве print-сервера.

Для чего применяются «микро-дистрибутивы»? Примеров применения можно найти море:

Перед созданием загрузочного диска необходимо четко представлять цель, с которой этот диск создается, чтобы впоследствии не пожалеть о бесполезно затраченном времени. Выбор ядра также должен определяться конечной целью. В любом случае при выборе ядра учтите следующие факты:

  • ядра 2.2 версий обычно меньше по размеру, но менее функциональны;
  • ядро следует брать как можно новее (но обязательно из стабильной ветки), например, на момент написания этой статьи я расцениваю «новыми» ядра 2.4.20 и 2.2.20 и выше; новые ядра используют компрессию bzip2 и дают выигрыш в размере;
  • если не планируется работа с сетью, то отказ от использования TCP/IP дает очень существенный выигрыш в размере (до 300 Кб!);
  • в ядро обязательно нужно включить поддержку ext2fs и ramdisk, если планируется загрузка ядра при помощи syslinux, то также необходимо включить поддержку msdosfs;
  • лучше всего выключить оптимизацию ядра под определенный процессор, лучше всего будет оставить i386;
  • я не очень уверен насчет целесообразности использования модулей, но если нужна максимальная переносимость, то модули применять, конечно, можно;
  • если вам необходим NFS-дистрибутив, то необходимо установить поддержку nfs на странице настройки файловых систем (в make menuconfig);
  • наконец, последний и самый важный совет – удаляйте из ядра все лишнее без сожаления, первыми кандидатами на удаление являются редкие устройства, звуковые карты, система netfilter и прочие полезности со страницы networking options, хотя если вы создаете nfs-дистрибутив, то от этого правила можно отойти, т.к. основная файловая система все равно будет находиться на удаленной машине, а ядро фактически в любом случае влезает на дискету.

Каким образом будет грузиться ядро? Существует несколько способов загрузки ядра с дискеты:

  • ядро, будучи записанным на дискету, начиная с 0-го сектора, распаковывается в память и запускается при помощи так называемого kernel loader, этот способ хорош своей быстротой и простотой реализации (фактически ядро записывается непосредственно на дискету без файловой системы), но при этом невозможно непосредственно указывать параметры ядру, что не подходит для создания NFS-дистрибутивов;
  • на дискете формируется обычная файловая система ext2, и ядро записывается непосредственно на файловую систему, при этом возможно манипулирование с дискетой как с обычным ext2-томом, загрузка происходит при помощи lilo, записанного на дискету (необходимо формировать специальный конфигурационный файл для lilo, что будет объяснено далее), преимущества такого способа в том, что при помощи lilo очень просто передавать ядру определённые параметры (что необходимо для использования NFS в качестве root-устройства), недостаток – файловая система на дискете не сжата, поэтому создание root-fs на дискете лишено смысла, т.к. на несжатую систему весьма сложно записать все необходимое;
  • на дискете формируется msdosfs, и загрузка ядра происходит из msdos-программы syslinux, при таком способе появляется возможность работы с такой дискетой в msdos (win*), сама root файловая система сжимается при помощи zip.

Самая большая проблема при создании floppy-дистрибутивов – это формирование корневой файловой системы (которая обычно загружается в память). Корневая файловая система не находится на дискете в NFS-дистрибутивах, что сильно облегчает создание загрузочной дискеты. Поэтому прежде чем говорить о создании дискет с автономной root-fs, я расскажу о создании NFS-дистрибутивов.

NFS-дистрибутивы содержат на дискете только ядро, которому при загрузке передается параметр nfsroot, показывающий, что root-fs находится на NFS-сервере. Ядро монтирует NFS и запускает init. Все операции ядра с root-fs происходят по протоколу rpc в открытом виде, что, конечно, небезопасно. Поэтому не рекомендуется хранить ценные данные на NFS-разделах, особенно это касается паролей (для NFS-системы обязательно иметь особые пароли, которые также полезно время от времени менять). NFS-системы довольно сильно нагружают сеть и годятся только для LAN. NFS-дистрибутивы полезны во многих случаях: резервное копирование, клонирование, запись CD, аварийное восстановление системы и т. д. Ядро для таких дистрибутивов строится без особых ограничений к размеру (т.к. в основном полноценное ядро занимает около 1 Мб) и обязательно должно содержать TCP/IP и поддержку NFS (см. раздел filesystems в make menuconfig). После компиляции ядра (модули этого ядра должны быть установлены на NFS-раздел в соответствующий каталог) необходимо сформировать ext2fs на дискете:

Опция -N 300 говорит, что необходимо зарезервировать место для 300 inode (хотя в данном случае это число можно и уменьшить на порядок) для экономии места.

Давайте на примерах рассмотрим многообразие применения команды dd, не слишком углубляясь в дебри синтаксиса.

Пример 2. Создание загрузочной дискеты из файла-образа.

Допустим, мы скачали из Интернета файл-образ чрезвычайно полезного загрузочного менеджера SBM (SmartBootManager) sbm.img. Теперь нужно создать загрузочную дискету SBM:

Никаких дополнительных операндов не требуется, поскольку файл-образ точно рассчитывается под величину дискеты.

Пример 3. Разрезать 10 мегабайтный файл file.10m на два пяти-мегабайтных:

Пример 4. вывести на экран первые 100 байт содержимого файла schema.txt:

Обратите внимание, что мы не указывали выходной файл (of). Поэтому команда dd по умолчанию воспользовалась стандартным выводом (экраном монитора).

Пример 5. Создание образа оптического диска:

При желании, с помощью полученного образа image.iso можно будет "прожечь" полноценный загрузочный диск (если, конечно, оригинал был загрузочным). Если копировать командой ср, то загрузочного диска не получишь.

Пример 6. Ускорениe работы некоторых Live CD.

На "слабых" машинах современные Live CD работают медленно, иногда очень медленно. Если на жестком диске выделить раздел, скажем hda7 размером в 900Мб (для CD) и скопировать в этот раздел весь CD целиком, то во многих случаях, при загрузки с CD загрузчик примет наш раздел жесткого диска за сам CD и начнет загрузку с него. В этом случае скорость работы сильно повышается, ведь работа с жесткого диска намного быстрее, чем с любого CD привода.

Этот фокус не всегда срабатывает, так как некоторые загрузчика не перебирают все файлы устройств по порядку. Например, Gentoo Live CD и Mandriva Spring Live CD, я только таким способом и смог запустить в графическом режиме на старом ноутбуке. А Mops Live CD на обман не поддается, и ищет чего-то другого.

Пример 7. Увеличить размер существующего файла до 1Гб без перезаписи:

Пример 8. Создание загрузочной дискеты Grub

Для создания загрузочной дискеты Grub, нужно записать файл stage1 в нулевой сектор дискеты, а файл stage2 в первый и последующие сектора. Файлы stage1 и stage2 обычно находятся в директории /boot/grub, если Grub у вас установлен, или в пакете, если Grub еще не установлен. Я не стану указывать путь к этим файлам, он у всех разный.

Файл stage1 (загрузочный) занял свое место в загрузочном (0) секторе дискеты.

Команда dd пропустила один сектор (поскольку там уже записаны данные stage1, то нулями она его не заполнила) и записала весь файл stage2. Теперь с этой дискеты можно загружать Grub, и с его помощью запускать любую ОС на вашей машине.

Пример 9. Создание загрузочного образа

Сходную задачу выполняет Makefile ядра Линукс при создании загрузочного образа (boot image). В Alpha Makefile /usr/src/linux/arch/alpha/boot/Makefile программа srmboot на выходе выдает команду:

Эта команда означает: пропустить (seek=1) первые 512 байт во входном файле (bootimage); начать запись со второго сектора устройства $(BOOTDEV). Типичное использование команды dd в том, чтобы пропустить исполняемую программу в заголовке, и начать запись в середине устройства, пропуская данные о томе и разделе. Нужно сказать, что малейшая ошибка в такого рода записях, может стоить вашему диску потери системных данных, поэтому будьте осторожны и проверьте все трижды.

Пример 10. Вывести на экран уже знакомый нам MBR.

Поскольку это двоичный файл, придется воспользоваться следующим конвейером:

Обратите внимание на сигнатуру. Она представлена байтами aa55. А на рисунке 3 мы видели в Khexedit'е 55аа. Если внимательно сравнить полученную распечатку с рисунком 3, то становится ясно, что байты в каждой паре поменялись местами: eb48 стала 48eb, 9010 стала 1090 и так далее. Дело в том, что существуют минимум две системы записи двоичных файлов: little endian и big endian. Khexedit, с которого был снят рисунок 3, работает в little endian. А какое-то звено в примененном нами конвейере, похоже работает в big endian (Кстати, определить какую систему записи байтов использует ваша машина, можно с помощью небольшой программы. Смотрите приложение [1]). Чтобы получить распечатку в уже привычном нам виде (как на рис. 3) нам необходимо использовать новый операнд:

conv=значение Этот операнд совершает преобразования формата копируемых файлов. Он работает не с числами, а со значениями (или иначе, фильтрами), список которых весьма обширен. Мы рассмотрим этот список в следующей главе, а пока применим одно из них:

conv=swab Это преобразование переставляет байты в каждой входной паре.

Теперь MBR принял привычный для нас вид, и мы можем заняться рассмотрением других преобразований, осуществляемых командой dd.

6 примеров резервного копирования Linux с помощью команды dd (включая диск на диск)


Потеря данных будет дорогостоящей. По крайней мере, потеря критических данных будет иметь финансовые последствия для компаний всех размеров. В некоторых случаях это может стоить вашей работы. Я видел случаи, когда системные администраторы усердно изучали это.

Есть несколько способов сделать резервную копию системы Linux, включая rsync и rsnapshot, которые мы обсуждали некоторое время назад.

Эта статья содержит 6 практических примеров использования команды dd для резервного копирования системы Linux. dd — мощная утилита UNIX, которая используется make-файлами ядра Linux для создания загрузочных образов. Он также может быть использован для копирования данных. Только суперпользователь может выполнить команду dd.

Предупреждение: при использовании команды dd, если вы не будете осторожны и не знаете, что делаете, вы потеряете свои данные!

Пример 1. Резервное копирование всего жесткого диска

Чтобы создать резервную копию всей копии жесткого диска на другом жестком диске, подключенном к той же системе, выполните команду dd, как показано ниже. В этом примере команды dd имя устройства UNIX исходного жесткого диска — / dev / hda, а имя устройства целевого жесткого диска — / dev / hdb.

При копировании жесткого диска на жесткий диск с помощью приведенной ниже команды dd опция синхронизации позволяет вам копировать все, используя синхронизированный ввод / вывод.

Пример 2. Создание образа жесткого диска

Вместо создания резервной копии жесткого диска вы можете создать файл образа жесткого диска и сохранить его на других устройствах хранения. Существует много преимуществ резервного копирования данных на образ диска, одним из которых является простота использования. Этот метод обычно быстрее, чем другие типы резервных копий, что позволяет быстро восстанавливать данные после неожиданной катастрофы.

Вышеизложенное создает образ жесткого диска / dev / hda. Обратитесь к нашей предыдущей статье Как просмотреть initrd.image для более подробной информации.

Пример 3. Восстановление с использованием образа жесткого диска

Чтобы восстановить жесткий диск с файлом образа другого жесткого диска, используйте следующий пример команды dd.

Файл образа Файл hdadisk.img, является образом / dev / hda, поэтому приведенная выше команда восстановит образ / dev / hda в / dev / hdb.

Пример 4. Создание образа дискеты

Используя команду dd, вы можете очень быстро создать копию образа дискеты. Во входном файле укажите местоположение гибкого устройства, а в выходном файле укажите имя файла образа дискеты, как показано ниже.

Пример 5. Резервное копирование раздела

Вы можете использовать имя устройства раздела во входном файле, а в выходных данных вы можете указать целевой путь или файл изображения, как показано в примере команды dd ниже.

Пример 6. Резервное копирование CDROM

Команда dd позволяет вам создать iso-файл из исходного файла. Таким образом, мы можем вставить компакт-диск и ввести команду dd для создания iso-файла содержимого CD.

Команда dd читает один блок ввода, обрабатывает его и записывает в выходной файл. Вы можете указать размер блока для входного и выходного файла. В приведенном выше примере команды dd параметр «bs» указывает размер блока как для входного, так и для выходного файла. Таким образом, dd использует 2048 байт в качестве размера блока в приведенной выше команде.

Примечание. Если CD монтируется автоматически, перед созданием iso-образа с помощью команды dd всегда полезно отключить устройство CD, чтобы избежать ненужного доступа к CD-ROM.



Новость по этому поводу уже была, время подавать и сам перевод. В своем руководстве Кристиан подробно излагает каждый шаг процесса создания дистрибутива и его записи на дискету формата 3.5". В конечном итоге работает такой дистрибутив даже на старых ПК с i486DX и вполне может выполнять скомпилированные приложения.

Уже более 7 лет я использую Linux в качестве основной ОС. С этой системой я экспериментирую с момента появления Fedora и Ubuntu и все еще помню получение бесплатных Live-CD от Canonical. Сейчас Linux уже установлена на всех моих компьютерах, включая Raspberry Pi и смартфоны.

Я даже администрирую два сервера IBM, которые также работают на Linux. Но при всем при этом мне до сих пор еще многое неизвестно о его внутреннем устройстве. В итоге я решил обогатить свои знания, реализовав забавный и в то же время полезный мини-проект.

Введение

Я с нуля создал встраиваемый дистрибутив Linux, уместив его всего на одну дискету. На момент написания он занимает около 1Мб, так что остается еще примерно 400Кб для дополнительного ПО.

Этот дистрибутив может загружаться на 486DX с 24 Мб ОЗУ (при меньшем объеме с помощью QEMU не загрузился). Через эмулятор загрузка происходит практически мгновенно. Что же касается современного «железа», не обремененного программной нагрузкой, то единственное, что ограничивает скорость загрузки – это скорость самого дисковода. Ее максимальный показатель составляет 125Кб/с, но в реальности даже меньше.

Я пока еще не пробовал загружать собранный дистрибутив на реальном 486-м, просто потому что такого у меня нет, но зато видел, как это проделывали другие, на что уходило около минуты. Честно говоря, большую часть этого времени происходила загрузка данных с диска.



FLOPPINUX, запущенный на Asus Eee PC 701SD — Intel Celeron-M 900МГц с 512Мб ОЗУ

В самом начале проекта я уделил немало времени подробному изучению вопроса, и к моему удивлению не нашлось ни одного хорошего руководства. Возможно, просто мне не удалось такое найти. Есть множество инструкций о том, как реализовать некоторые детали, но в большинстве случаев бесполезные, устаревшие или излишне упрощенные. Когда же я пробовал объединить эти знания, то постоянно заходил в тупик. Это и побудило меня еще больше углубиться в тему. В конечном итоге я многое узнал и сумел реализовать все свои замыслы.

Если у вас есть желание проделать нечто подобное, то эта статья для вас.

Выбор приложения

Первым приложением, которое я хочу запустить, будет создаваемый мной олдскульный журнал Nomad Diskmag, который я планирую выпускать на дискетах. Для ПК я разработал приятный GUI с помощью PyGame. Что касается моего встраиваемого проекта, то для него я заменю фронтенд на скрипт bash. Статьи в обеих версиях представляют простые файлы .txt , поэтому все что нужно – это создать обложку, содержание и выполнить cat для вывода тела каждого файла (используя less для вывода страниц).

Но прежде мне нужен рабочий дистрибутив, который будет загружать и выполнять этот скрипт. Его созданием мы и займемся.

Цели проекта



Красочные прозрачные дискеты!

Очевидная и наиболее важная цель – уместить все (ОС + ПО) на одну дискету или в 1440 Кб. В остальном же их можно описать так:

  • Последнее ядро Linux.
  • Минимум инструментов, необходимых для поддержки встраиваемого приложения.
  • Документация с легкими и понятными шагами для воспроизведения сборки.
  • Ну и, как обычно, открытый исходный код.
  • Возможность монтировать другую дискету для сохранения файлов.
  • Текстовый редактор nano (или подобный).

Сборка дистрибутива FLOPPINUX



Gold Master Floppy для FLOPPINUX VERSION 0.1.0

x86_64 и x86

Компилировать 32-битный код на 64-битной системе не очень удобно, и чтобы упростить процесс, я просто проделываю это на старом ноутбуке с 32-битным ЦПУ.

Также можно использовать VirtualBox с 32-битной системой.

Если же вы хотите использовать 64-битную хост-систему, добавляйте к командам ARCH=x86 . Вот пример:

Это руководство доступно во многих форматах, включая EPUB. Так что для удобства чтения можете загрузить его на eBook.

Рабочая директория

Создайте директорию, где будете хранить все файлы.

Я использую последнюю версию, которая объединяет в себе старые и новые технологии. На данный момент это Kernel 5.13.0-rc2.


Теперь, когда они находятся у вас в каталоге /linux/ , перейдем к настройке и сборке собственного ядра. Начнем с создания минимальной конфигурации:


Теперь нужно добавить поверх нее дополнительные настройки:


Из меню выберите следующие опции:


Скорость процесса будет зависеть от скорости вашего ЦПУ. В конечном итоге ядро будет создано в arch/x86/boot/bzImage . Переместите его в основную директорию.

Инструменты

Без инструментов ядро будет просто загружаться, и вы ничего не сможете делать. Одной из самых популярных и легковесных утилит является BusyBox. Она заменяет (более объемные) инструменты GNU функциональностью, которой достаточно для процессов встраивания.


Как и для ядра, здесь тоже требуется создать стартовую конфигурацию:


А теперь самое интересное. Вам необходимо выбрать нужные инструменты. Каждая запись меню покажет, сколько дополнительно Кб памяти будет занято тем или иным компонентом. Так что выбирайте вдумчиво.


Я выбрал следующие:

  • Settings > Build static binary (no shared libs)
  • Coreutils > cat, du, echo, ls, sleep, uname (change Operating system name to anything you want)
  • Console Utilities > clear
  • Editors > vi
  • Init Utilities > poweroff, reboot, init, Support reading an inittab file
  • Linux System Utilities > mount, umount
  • Miscellaneous Utilities > less
  • Shells > ash


Эта команда создаст файловую систему со всеми файлами в _install . Переместите ее в основной каталог. Лично я при этом также изменяю имя.

Файловая система

Ядро и базовые инструменты готовы, но системе требуется дополнительная структура каталогов.


Файл Inittab , обрабатывающий запуск, выход и перезапуск:


И сам скрипт init :


Сделайте init исполняемым и установите владельца всех файлов как root :


В завершении упакуйте директорию в один файл:


В правильности проделанного можете убедиться, запустив QEMU из основной директории:


Теперь можно записывать систему на дискету.

Загрузочный образ

Создайте загрузочный файл syslinux , который будет указывать на созданное ядро и файловую систему:


Создайте пустой образ дискеты:


Смонтируйте его, после чего скопируйте туда syslinux , ядро и файловую систему:

Теперь у вас есть собственный образ дистрибутива floppinux.img , готовый к записи на дискету и загрузке на физическом устройстве.

Запись

Если у вас есть встроенный дисковод:


У меня возникли сложности с записью образа на внешний дисковод из под Linux, поэтому я использовал инструмент diskwrite в Windows. Проблему я выявил позднее. Если у вас тоже USB-дисковод, то он будет отображаться как /dev/hd* . Команда на моем ПК:


Весь процесс занял меньше трех минут.

Первая загрузка!


Загрузка Floppinux на Fujitsu Siemens P1610 — Intel Core Solo 1.2 ГГц с 1 Гб ОЗУ:

Общая сводка

Объем диска: 1440Кб / 1.44Мб
Размер ядра: 632Кб
Инструменты: 552Кб
Оставшееся свободное место ( du -h ): 272Кб

Ссылки для скачивания

Если вы не хотите заморачиваться со всем этим, то просто скачайте мои файлы:

Версия 0.1.0
Голая система, готовая для кастомизации.

  • Ядро: bzImage
  • Файловая система с инструментами: rootfs.cpio.gz
  • Загрузчик: syslinux.cfg
  • Конфигурации Linux / Busybox (немного обновленные после публикации)
  • Готовый образ дискеты: floppinux.img <– Вам нужен этот файл
  • Зеркало: floppinux_0.1.0

Запуск



FLOPPINUX Version 0.2.0 новый логотип и загрузочный образ

Новый логотип, новый экран загрузки и в целом текстовый интерфейс. Простой интерактивный скрипт оболочки для чтения текстовых файлов. Режим KIOSK.

Подробнее об этом я написал в дополнении Floppinux Update 0.2.1

Добавление приложения

Теперь, когда у нас есть встраиваемый дистрибутив, пора найти ему применение. Загружается он очень быстро (после загрузки дисковода) и может легко выполнять любое скомпилированное приложение. Я же хочу поиграться со скриптами, поэтому вместо скомпилированной программы добавлю скрипты .sh . Далее процесс будет таким же.

  • Обновите файлы в каталоге /filesystem/
  • Сожмите файл rootfs
  • Смонтируйте образ дистрибутива
  • Замените файл rootfs
  • Размонтируйте образ
  • (необязательно) запишите новый образ на дискету
  • Загрузите новую систему с обновленным ПО

Режим KIOSK

FLOPPINUX запускает любое приложение, находящееся в /home/main . Измените этот путь для запуска вашей программы.

Довольно часто бывает нужно создать образ оптического диска. В Windows для создания образа диска обычно используются посторонние программы, например, Nero или WinImage. В Linux мы будем пользоваться только средствами операционной системы.

1. Создание и монтирование образов
Образ CD/DVD-диска можно создать с помощью команды dd:

dd if=/dev/cdrom of=

Вместо /dev/cdrom надо подставить имя файла устройства вашего привода CD/DVD (обычно этого делать не приходится, поскольку ссылка /dev/cdrom устанавливается самой системой на ваш привод CD/DVD).
Указанная команда создаст файл образа cd.iso, который будет записан в ваш домашний каталог. Аналогично с помощью этой команды можно создать и образ дискеты — только вместо /dev/cdrom нужно указать имя файла устройства /dev/fd0.
Что можно сделать с ISO-образом в Windows? Его можно записать на чистую болванку или же открыть в специальной программе (например, ISOpen или UltraISO) для изменения. В Linux открыть образ можно с помощью средств самой операционной системы.
Для этого его надо просто подмонтировать к корневой файловой системе с помощью команды следующего формата:

— опция -o loop означает, что будет монтироваться не файл устройства, а образ диска, который записан на жесткий диск;
— параметр -t 9660 задает тип файловой системы образа: iso9660 (стандартная файловая система для CD/DVD);
— после файловой системы указывается файл образа, например,

/cd.iso;
— последний параметр — это точка монтирования, каталог, к которому будет подмонтирован образ (напомню, что каталог должен существовать).

ПРИМЕЧАНИЕ
В большинстве случаев команду mount нужно выполнять от имени пользователя root или с помощью команд sudo ИЛИ su.

В нашем случае для монтирования образа

/cd.iso к каталогу /mnt/image нужно выполнить команду:

После этого можно обращаться к образу как к обычному каталогу:

2. Запись образов на болванку

Предположим, у вас есть файл образа cd.iso, и нужно записать его на компакт-диск, но вы не хотите (или не имеете возможности) использовать графические программы вроде Nero или k3b. В этом случае вам нужно использовать программу cdrecord (пакет называется аналогично). Команда для записи образа на болванку CD-R очень проста и выглядит так:

Для записи DVD-R используется аналогичная команда:

В этой команде вам нужно изменить параметр dev — это идентификатор устройства CD/DVD. Если в вашей системе установлен только один привод CD/DVD, и он же является пишущим, тогда, скорее всего, у него будет идентификатор 0,0,0.
Но если у вас несколько приводов CD/DVD (например, обычный и пишущий), вы должны ввести следующую команду:

Команда выведет список CD/DVD, установленных в вашей системе. Вам надо запомнить идентификатор нужного привода и использовать его при записи образа диска

Для очистки DVD-RW диска используется команда:

Для быстрой очистки CD-RW введите команду:

Если нужно произвести полную, а не быструю очистку, замените blank=fast на blank=all.

3. Программа mkisofs

Иногда нужно создать образ CD/DVD не с оригинального диска, а с каталогов файловой системы. Другими словами — у вас есть файлы и каталоги, которые вам нужно записать на CD/DVD. Технология CD/DVD не позволяет записывать файлы и каталоги непосредственно на носитель — вам нужно создать каталог, поместить в него все файлы и каталоги, которые вы хотите записать на оптический диск, затем создать по этому каталогу ISO-образ, а потом записать его на болванку.
Скопируйте все необходимые вам файлы в каталог

/cd. Затем выполните команду:

Эта команда создаст по каталогу

mkisofs -r -jcharset utf8 -o

Указание кодировки необходимо для правильного отображения русскоязычных имен файлов и ката¬логов под управлением MS Windows.
После создания ISO-образа его нужно записать на носитель с помощью команды cdrecord, как было показано ранее. После записи не забудьте удалить образ, чтобы он не занимал места на диске.
Существует способ записи каталога на CD/DVD без создания промежуточного ISO-образа. Для этого служит команда:

mkisofs -jcharset кодировка /каталог | cdrecord -опции

4.Преобразование образов дисков

Иногда нужно записать созданный в другой программе образ диска, формат которого отличается от ISO9660. Наиболее часто встречаются образы дисков в форматах IMG, BIN, CUE, NRG, CCD.
Если у файла образа «расширение» (в Linux нет понятия «расширение», поэтому данное слово взято в кавычки) img, то это еще не означает, что формат образа ISO9660. Одни программы, например, k3b, действительно, создают образ в формате ISO9660 и записывают его в файл с расширением img, a другие — могут записывать в файл с таким же расширением образы диска в собственных форматах.
Файлы .bin/.cue можно записать на диск с помощью программы cdrdao или преобразовать в ISO с помощью программы bchunk.
Nero записывает образы диска в формате NRG, который можно преобразовать в ISO с помощью программы nrg2iso. Если вам нужно открыть NRG-образ, чтобы просмотреть его содержимое, вы это можете сделать с помощью команды:

mount -t udf,iso9660 -o loop,ro,offset=307200 файл.nrg точка_монтирования

Образ в формате CloneCD (ccd) можно преобразовать в ISO с помощью программы ccd2iso.

5. Создание и монтирование файлов с файловой системой

Иногда (например, для создания мини-дистрибутива) нужно создать файл, содержащий собственную файловую систему. Первым делом нужно создать пустой файл, потом создать в нем файловую систему, а затем подмонтировать этот файл к корневой файловой системе. Все это можно сделать с помощью трех команд:

Первая команда создает пустой файл размером почти 100 Мбайт (100 000 Кбайт), вторая команда создает в этом файле файловую систему типа ext2, третья — монтирует файл к каталогу /mnt/disk.

6. Создание файловой системы
В разд. 5 с помощью команды mkfs.ext2 мы создали файловую систему в файле. С помощью этой команды мы можем создать файловую систему на разделе жесткого диска, например: mkfs.ext2 /dev/hda1.
Вообще, создать файловую систему нужного типа (если эта файловая система поддерживается ядром вашей системы) можно с помощью команды mkf s. <имя_файловой_системы>, например:

mkfs.ext3
mkfs.vfat mkfs.reiserfs

Подробнее прочитать об этом можно, введя команду:

7.Проверка и восстановление файловой системы

Для проверки файловой системы используется программа fsck:

Например: fsck /dev/hda5.
Перед использованием этой команды надо размонтировать проверяемую файловую систему.
Если требуется проверить корневую файловую систему, то следует загрузиться с LiveCD и запустить fsck для проверки нужного раздела.
Если же жесткий диск «посыпался» (то есть появились «плохие» блоки), нужно, не дожидаясь полной потери данных, произвести следующие действия:

ПРИМЕЧАНИЕ
Программа fsck может проверять не только файловые системы ext2/ext3. Для проверки, например, vfat можно использовать команду fsck.vfat <раздел>.

8.Смена корневой файловой системы.Команда chroot

Предположим, мы поставили Windows после Linux, и программа установки Windows перезаписала начальный загрузчик. Теперь Windows загружается, a Linux — нет. Что делать? Нужно загрузиться с LiveCD и выполнить команду:

Например, если Linux была установлена в раздел /dev/hda5, то нужно ввести команду:

Данная команда сменит корневую файловую систему — то есть вы загрузите ядро Linux с LiveCD, a затем сделаете подмену корневой файловой системы. Вам останется только ввести команду записи загрузчика (например, lilo) для восстановления начального загрузчика.

sudo dpkg -i ntfs-3g*

После установки пакета можно примонтировать NTFS-раздел:

Понятно, что нужно указать ваш раздел и вашу точку монтирования. Если надо обеспечить автоматическое монтирование NTFS-раздела, то в файл /etc/fstab следует добавить запись, подобную этой:

раздел каталог ntfs-3g defaults,nls=utf8,umask=007,gid=46

У модуля ntfs-3g все равно есть ограничения — например, вы не сможете изменять сжатые файлы (хотя сможете их читать) и читать зашифрованные файлы.

10. Ограничение скорости CD/DVD

Программа hdparm позволяет ограничить скорость оптического привода (CDROM/DVDROM) — иногда это требуется, чтобы информация была считана без ошибок (как правило, если поверхность носителя информации немного повреждена). Рассмотрим команду ограничения скорости:

Множитель — это и есть скорость, например, I× соответствует скорости 150 Кбит/с для CD и 1385 Кбит/с для DVD. Чтобы установить вторую (2×, 300 Кбит/с) скорость чтения для CD, используется команда:

Для ограничения скорости DVD можно использовать команду:

11. Монтирование каталога к каталогу

В Linux можно подмонтировать не только каталог к устройству, но и каталог к каталогу. Делается это с помощью все той же команды mount, запущенной с параметром --bind:

Читайте также: