Запись CD в Linux.X-Stranger "Испорченный СD-ROM может быть хорошей подставкой." Нарадовавшись, наконец, вашему Линуксу, нагулявшись с его программками и оболочками, в один прекрасный момент вам вдруг понадобилось записать CD из-под Linux, и вы с горечью обнаруживаете, что ничего об этом не знаете. Что же делать? Как это осуществить, призвана ответить данная статья. Стоит отметить, что писать CD в Linux не сложнее, чем, скажем, в Windows. Есть набор специальных утилит, которые позволяют записать CD без особых проблем. Здесь стоит упомянуть, что для успешной работы ядро вашей системы должно быть скомпилировано с поддержкой вашего устройства, если это требуется. Для записи CD в Линуксе используются следующие программы.
Консольные:
Графические оболочки для консольных пакетов (для тех, кому требуется красивый интерфейс):
Теперь перейдем непосредственно к процессу. Обычно, запись CD выполняется в два этапа: Создание образа будущего CD-ROMа. Как известно, перед использованием любого носителя (будь то флоппик, жесткий диск или CD) надо создать файловую систему (отформатировать). Именно файловая система ответственна за организацию и доступ к файлам, которые будут записаны на носителе. Обычно, утилиты для создания файловой системы записывают на носители пустую файловую систему, которая затем монтируется и заполняется файлами пользователя. Но содержимое CD записывается только один раз и не подлежит изменению. Значит, нам нужен инструмент для создания готовой для записи на CD файловой системы, уже содержащей файлы, то есть так называемого образа компакт-диска. Этот инструмент называется mkisofs. Используется следующим образом: mkisofs -r -o cd_image path
Здесь: Утилита mkisofs пробует отобразить все имена файлов в формате 8.3, который использует DOS. Это делается для того, чтобы гарантировать высокую совместимость.
Вы, конечно, спросите, а почему бы не дать утилите команду писать сразу на CD-writer? Этому есть три причины: Теперь мы проверим ваш образ CD. Linux может монтировать файлы, как разделы диска. Это свойство полезно для проверки расположения каталогов образа CD и прав доступа к файлам на CD.
Чтобы смонтировать файл cd_image, созданный выше, в каталог /cdrom, дайте следующую команду:
Теперь вы можете зайти в /cdrom и посмотреть на структуру вашего будущего CD. Для отмонтирования CD-образа дайте команду:
Запись CD-образа на CD. Подготовительные операции завершены. Для записи образа на компакт-диск дайте следующую команду:
Параметр dev ≈ это идентификатор вашего устройства для записи компакт-дисков. Если вы не знаете, какому устройству соответствует ваш CD-Recorder, то дайте команду При этом утилита просканирует вашу систему и выдаст список найденных устройств, среди которых наверняка будет ваше. Параметр speed указывает скорость записи. Опция data говорит утилите о том, что будет создан data-CD. Последним параметром идет имя файла образа. Если вы используете cdrecord для перезаписываемых компакт-дисков (CD-RW), вы должны добавить опцию "blank=fast" (без кавычек) для стирания старого содержимого. Для получения более полной информации по cdrecord читайте man cdrecord, а также документацию к ней в /usr/doc/ (/usr/share/doc/). Перед тем, как дать команду записи, стоит учесть следующее: устройства записи CD должны обеспечиваться постоянным потоком данных, так как у них зачастую маленький объем буфера. Т.е. процесс записи образа CD не должен прерываться, иначе в результате CD будет испорчен. Можно прервать поток данных, просто удаляя большой файл. Но в то же время, чтение почты, просмотр Сети или компиляция программы обычно не сказываются на процессе записи. Также стоит обратить внимание, что нет устройства записи, которое может при себе снова установить лазер и продолжить работать в том же месте. Следовательно любые сильные колебания или механический удар может испортить CD, который вы записываете.
Теперь рассмотрим запись Audio-CD. Запись Audio-CD очень похожа на шаги, описанные выше. Есть два главных отличия:
Одна из утилит для конвертирования звуковых файлов в требуемый формат это sox. Формат ее использования следующий: Эта команда преобразовывает песню linux_forever из wav-формата в CDR-формат. Для более подробной информации по sox читайте man sox.
Но есть способ и лучше. Для удобства конечного пользователя в cdrecord была встроена функция преобразования из WAV и AU. То есть, если ваши файлы имеют расширение .wav или .au и формат стерео 16 бит 44.1 КГц, вы можете использовать их как образы без преобразования. cdrecord записывает образы как audio-треки, если указана опция -audio. Другие опции идентичны используемым при записи CD с данными. Следующие примеры демонстрируют запись Audio-CD с разными форматами звуковых файлов: cdrecord -v speed=4 dev=0,4,0 -audio track1.cdr track2.cdr...
Здесь вы можете задать справедливый вопрос: а если у меня есть любимые mp3шки и я хочу записать их на Audio-CD, то что же мне тогда делать? MPEG-3 файлы могут быть конвертированы в требуемый формат командой "mpg123 -s Bon_Jovi.mp3 > track.cdr". Здесь же стоит отметить, что эта команда создает файлы в специальном виде (byte-swapped), что требует использовать опцию -swab в cdrecord. Маленькая фича: для создания CD-R из кучи mp3шек файлов можно использовать следующую командную последовательность: for I in *.mp3 Здесь mpg123 будет создавать треки, и они сразу же будут записываться на CD, причем вам не придется перечислять все файлы по отдельности. Но стоит отметить, что скорость работы mpeg123 и скорость записи cdrecord должны быть соизмеримы. Т.е. ваша машина должна быть достаточно быстрой. Возможно, потребуется использовать опцию speed утилиты cdrecord. Как известно, Audio-CD записываются с двухсекундными паузами между треками. Если вы хотите избежать пауз между звуковыми треками, вы должны использовать disk-at-once (DAO), вместо track-at-once (TAO) записи, описанной выше. DAO-запись поддерживается утилитой cdrdao. Более подробно об этом читайте в man cdrdao и в документации к программе.
Теперь стоит рассказать о том, как записать диски, содержащие как данные, так и звуковые дорожки. Здесь все довольно просто: в параметрах к cdrecord вы сначала указываете образ с данными, а потом указываете звуковые треки. Например: Осталось рассказать только пару фич, которые будут полезны любому пользователю, который пишет CD. Как создать загрузочный CD-ROM. У вас должна быть в наличии 1.44Мб загрузочная дискета. Создайте точный образ дискеты командой: dd if=/dev/fd0 of=boot.img bs=18k. Поместите этот образ в каталоге, содержащем коллекцию записываемых файлов, или в его подкаталоге. Сообщите mkisofs об этом файле, используя опцию '-b', а также используйте опцию '-c'.
Как создать multi-session CD. Прежде всего, образ мульти-сессионного CD должен быть создан с использованием файловой системы iso9660 с RockRidge-расширением. Вы должны будете использовать опцию -multi для cdrecord, если хотите добавлять следующие сессии. Вы должны использовать опцию -multi по крайней мере для первой сессии. Образы второй и последующих сессий немного сложнее в создании. Утилита mkisofs должна знать, где начинается свободное пространство на CD-R диске. Эта информация может быть получена утилитой cdrecord, используя опцию
-msinfo. Например, даем следующие команды: Более подробно об этом можно прочитать в файле README. multi, который распространяется вместе с утилитой cdrecord. Если вы не уверены, запишется ваш CD или нет, хотите проверить правильность опций для cdrecord, то есть возможность сделать это. Используйте опцию -dummy для выполнения холостого запуска cdrecord. При этом лазер остается выключенным и вам дается возможность делать все, что хочется, и при этом посмотреть, выживет ли процесс записи.
Использование символов национального алфавита в именах файлов. Использование имен файлов, содержащих символы русского языка, под Linux осложняется наличием трех кодировок и тем, что некоторые программы вообще не содержат поддержки символов национального алфавита. При использовании русских символов в именах файлов нужно учесть следующие обстоятельства: Старые версии mkisofs при составлении имен файлов в ISO9660 заменяют все не ASCII символы (в том числе и русские) на знак подчеркивания. Таким образом, без применения патчей к mkisofs невозможно записать диск совместимый с DOS. Как обстоит дело в новых версиях, мне не известно.
Универсальный метод ≈ включить оба расширения JOLIET и RockRidge на записываемый диск, причем RockRidge будет содержать символы в 8-битном представлении, как и в файловой системе, а для указания кодировки символов файловой системы при преобразовании в Joliet UNICODE программа mkisofs, поставляемая в комплекте с cdrecord, начиная с версии cdrecord-1.8.1, содержит опцию
-jcharset. Список доступных кодировок можно получить, дав команду Если ваша система использует кодировку koi8-r в качестве основной, то команда создания образа диска может быть такой: mkisofs -r -J -jcharset=koi8-r files_path image_path. Если файлы для создания диска находятся не на разделе с линуксовой файловой системой, то, возможно, потребуется указать опции codepage и iocharset перед монтированием этой файловой системы. При монтировании раздела fat, fat32 и выбранной кодировке koi8-r это необходимо делать, например, так: mount -o codepage=866,iocharset=koi8-r /dev/hda5 /mnt/dos. При монтировании NTFS: mount -o iocharset=koi8-r /dev/hda1/mnt/ntfs
Тогда будет осуществляться правильная трансляция имен файлов из файловой системы в желаемую кодировку. При монтировании компакт-диска с Joliet расширением для правильной трансляции имен файлов из UNICODE необходимо также указывать с опцией iocharset желаемую кодировку для отображения: Вот и все. Успешной вам записи компакт-дисков! Источник: http://www.nestor.minsk.by/kg |