Запись дисков CD-R/RW из консоли
Все, наверное, привыкли записывать диски, пользуясь такими программами, как Nero под Windows или X-CD-Roast/K3b под линукс. Но иногда бывает необходимо записать диск, а ничего из перечисленного нету под рукой, а единственное, что доступно - консольные программы cdrecord и mkisofs. Ну что же, посмотрим, что с этим можно сделать, ведь только так можно узнать всю мощь и гибкость записи дисков под Linux. Итак, начнем. Программа mkisofs. mkisofs создает образ-гибрид файловой системы ISO9660/JOLIET/HFS, но не просто создает, но и позволяет заполнить ее данными. В отличие от других носителей информации, таких как жесткие или гибкие диски, файловая система создается и заполняется одновременно. cdrecord позволяет записать данные на стандартный (Orange Book) CD-R/RW диск. Использовать следует mkisofs и cdrecord версии 1.10 и выше. Для того, чтобы определить какая версия установлена на вашей машине, наберите: $ cdrecord -version и $ mkisofs -version Для новичков в мире записываемых дисков приведем некоторые вещи, которые необходимо понимать прежде чем продолжать чтение: - CR-R: CD-Recordable (Записываемый CD). Это WORM- (Write Once, Read Many) диски, т.е. те, которые можно записать лишь один раз и потом многократно считывать. И несколько терминов, связанных с форматами файлов: - Yellow Book: физический формат CD с данными. Итак, идем дальше. Если, cdrecord не сконфигурирована, необходимо указать тип записывающего устройства. Для этого необходимо набрать в командной строке следующее: $ cdrecord -scanbus Если она покажет данные о вашем CD-RW-приводе, то можно переходить сразу к записи диска. Если же этого не произошло, необходимо найти в чем причина. Принцип работы с пишущими приводами различен для ядер серии 2.2.*, 2.4.* и 2.6.*. В первом случае для корректной работы привода необходимо настроить эмуляцию SCSI. Для ядер серии 2.6.* эмуляция не нужна. Сейчас все новые дистрибутивы на ядрах 2.4.*, как правило, имеют вкомпилированную эмуляцию SCSI. Для того, чтобы в этом убедиться, наберите в командной строке следующее: $ slocate ide-scsi.o Если же такого файла у вас не окажется - необходимо перекомпилировать ядро, включив в конфигурацию драйвер ide-scsi. Кроме этого, необходимо добавить несколько строк в файл конфигурации загрузчика и файл /etc/modules.conf. Допустим, система имеет приводы CD-ROM и CD-RW, которые обозначены, соответственно, как hdd и hde. Тогда в файл /etc/modules.conf необходимо добавить следующие строки: ide-cd ignore="hdd hde" По умолчанию, подсистема IDE управляет всеми ATA-устройствами, а используя ignore, мы передаем управление SCSI как пишущий привод, так и CD-ROM-привод. Далее правим конфигурационный файл нашего загрузчика, LILO или GRUB'а. Тем, кто использует LILO, необходимо в конец конфигурационного файла lilo.conf добавить следующее: append="hdd=ide-scsi" Пользователям GRUB прийдется добавить следующее в файл hdd=scsi hde=scsi Теперь можно перезагрузиться и проверить все ли загрузилось: $ lsmod Результатом будет список всех загруженых модулей, среди которых должен быть и ide-scsi, если все прошло успешно. Создание iso-образовПроцесс записи выбранных вами файлов состоит из двух этапов. Вначале необходимо создать с помощью mkisofs iso-образ, и потом записать его на диск, используя программу cdrecord. Для создания образа воспользуемся следующим синтаксисом: $ mkisofs -o test.iso -Jrv -V test_disk /home/usver/test_dir В этом примере следующие обозначения: $ mkdir /mnt/iso1 Непосредственно запись дискаТеперь нам осталось записать свежесозданный образ на CD-R/RW. Ну что же, это проще простого. Для начала находим SCSI-адрес нашего пишущего привода: $ cdrecord -scanbus Первые три цифры для каждого и приводов указывают на SCSI-шину, номер устройства (ID) и LUN (Logical Unit Number), соответственно. Четвертое число - это снова номер устройства. Программе cdrecord необходимо будет указать эти первые три числа. В нашем случае записывающее устройство - 0,0,0. Теперь записываем диск: $ cdrecord -v -eject speed=48 dev=0,0,0 test.iso Обозначения здесь следующие: Таким образом, этот простой пример позволяет создать диск, который будет нормально читаться как в Windows, так и в *nix-системах. Команда mkisofs, помимо приведенных здесь параметров, имеет и другие. Для того, что бы удостовериться в этом взгляните на соответствующую man-страницу. Для очистки CD-RW необходимо в качестве параметров указать следующее: $ cdrecord dev=0,0,0 blank=fast -eject -speed=4 -v Копирование дискаДля прямого копирования содержимого с одного диска на другой можно воспользоваться командой вида: $ cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd1 Эта команда перенаправляет поток данных с привода CD-ROM (/dev/scd1) на записывающий привод, dev=0,0,0. Прямое копирование достаточно удобная процедура, однако в случае возникновения ошибок вы можете испортить болванку. Для избежания печальных последствий лучше вначале сделать образ CD-ROM'a и сохранить его на жестком диске и лишь потом уже писать на болванку. Эта процедура будет иметь следующий вид: $ mount /mnt/cdrom Новые параметры Создание мультисессийного дискаДиски создаются сессиями, а сами сессии деляться на треки. Структура одной сессии такова: вводная часть, содержание сессии(TOC Table Of Contents), непосредственно данные, и закрывающая часть, которая делает невозможным дальнейшее добавление данных на диск. Используя режим мультисессии несколько сессий можно объединить, слинковав их содержания. Создание многосессионых дисков очень просто с помощью графических программ, таких как X-CD-Roast или K3b. Но такая же процедура выполняется не намного сложнее и в консоли. Пример: $ cdrecord -v -eject speed=48 dev=0,0,0 -multi test.iso Так создается первая сессия на диске. Опция $ cdrecord dev=0,0,0 -msinfo Результат будет правильным, только в том случае, если диск записан с возможностью добавления данных. $ mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,0,0 /path/to/files Можно так же эту команду объединить с предыдущей. В итоге, получим следующее: $ mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,0,0 -msinfo` -M 0,0,0 /files/path/ Теперь привод считает информацию о последней записанной сессии и объединит ее содержание с содержанием новой сессии. Предполагается, что последняя сессия записана с опцией Кое-что о записи дисков в дистрибутивах, основанных на ядрах 2.6.*Почти все, что мы рассмотрели раньше и что касалось работы программ cdrecord и mkisofs было бы справедливо и в этом случае. Если бы не одно "но". Для записи дисков из дистрибутивов, использующих ядра ветки 2.6.* не нужно настраивать эмуляцию SCSI для приводов компакт-дисков, т.е не нужно ничего, касающегося ide-scsi добавлять в файлы /etc/modules.conf и файлы конфигурации загрузчика. В этом нет необходимости. Для того, чтобы указать программам, какой привод использовать, необходимо немножко изменить синтаксис в указании параметра dev, который теперь будет иметь вид, примерно следующий $ cdrecord -scanbus В зависимости от дистрибутива, вывод может быть отличным от приведенного здесь, однако сути это не меняет. ВыводыКак вы уже, наверное, убедились, запись дисков из консоли весь полезная вещь. Кроме того, используя пишущие приводы в сети также можно настроить систему для быстрого и удобного резервного копирования и других, не менее полезных вещей. Кроме того, используя все те же программы можно с успехом записывать и DVD-диски.
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5871 |