Контактная информация

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

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Запись CD и DVD диска в linux

18 апр. 2014

Если вы записываете диски лишь иногда, от случая к случаю, то используйте программы Brasero и КЗВ — в них вы найдете все необходимые функции, к тому же с ними легко работать. Если хотите работать с большим комфортом, обратите внимание на коммерческую программу Nero, то есть на ее версию для Linux. Если же вы ищете пользовательскую программу для работы с текстовой консолью, то вам очень понравится команда burncdda.

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

Названия устройств.

Прежде чем начать работу с командами, описанными ниже, нужно знать название устройства; по такому названию вы будете обращаться к приводу. Как правило, верное название устройства таково: /dev/scdO, /dev/scdl и т. д. или /dev/srO, /dev/srl и т. д. Если ни ваш компьютер, ни версия установленного на нем дистрибутива Linux не являются новейшими, правильное название устройства, напротив, будет следующим: /dev/hda, /dev/hdb и т. д.

Для некоторых команд название устройства необходимо указывать в виде тройки чисел (например, dev=3,0,0). В эту тройку входят: номер шины SCSI (обычно 0), SCSI-ID устройства и, наконец, логический номерустройства (коротко ЛНУ, обычно также 0). Верную комбинацию чисел для вашего привода вам проще всего будет узнать с помощью команды readcd -scanbus.

ПРИМЕЧАНИЕ



Независимо от того, какой именно диск вы записываете — CD или DVD, вам пригодится следующее указание: убедитесь, что дистрибутив Linux не встраивает носитель с данными в дерево каталогов и не обращается к нему каким-либо иным способом! Механизмы автоматического связывания CD и DVD с системой, отличающиеся от дистрибутива к дистрибутиву, часто не позволяют записывать диски с носителей данных вручную.

Применение внешних носителей (USB, Firewire), по моему опыту, гораздо чаще чревато проблемами, нежели использование внутренних приводов. Это справедливо не только для Linux, но и для Windows. Если все же приходится работать с внешним записывающим устройством, нужно значительно снизить рабочую скорость записи.

Создание и тестирование ISO-образов


Прежде чем вы сможете записать данные на CD или DVD, вам потребуется так называемый образ диска (ISO). Это файл, содержащий другие файлы, подготовленные для записи во внутреннем формате оптического носителя данных. Как правило, для создания образов дисков используется команда genisoimage (ранее — mkisofs). Когда же речь идет о копировании данных с имеющихся носителей, интересную альтернативу представляют собой команды dd или readcd, коротко описанные в конце этого раздела.

Команда genisoimage



Команда genisoimage позволяет записать на диск содержимое одного или нескольких каталогов. Формат ISO-9660, предусмотренный для CD, оперирует собственным очень ограниченным набором символов, в котором допускаются лишь немногие символы, кроме тех, что относятся к кодировке ASCII. Чтобы справиться с этим недостатком, существует множество расширений стандарта ISO, наиболее распространенными из которых являются следующие два. Оба они поддерживаются genisoimage.

Расширение Rockridge, обычное в системах UNIX/Linux, обеспечивает сохранение длинных названий файлов в форме любых, нуль-терминированных последовательностей символов. Кроме того, это расширение позволяет сохранять права доступа (UID, GID, биты доступа).

В любом случае диски, записанные с помощью Rockridge, не содержат информации о том, в какой кодировке создавался образ диска. Это может вызывать проблемы, если позже носитель данных будет использоваться на компьютере, который поддерживает другую кодировку. Проще всего объяснить это на примере: пару лет назад в Linux еще широко применялась кодировка Latin-1. Диски с данными, создававшиеся тогда с помощью расширения Rockridge, записывались именно в этой кодировке. Если сегодня вы используете такие диски на одном из современных дистрибутивов, в которых применяется кодировка Unicode (UTF-8), то символы, которые встречаются в названиях файлов и не относятся к ASCII, будут интерпретированы неправильно. Если уже перед подготовкой ISO-образа известно, что создаваемый диск будет использоваться на компьютере с другой кодировкой, то можно настроить нужную кодировку с помощью параметра -output-charset.

PacmnpeHHeJoliet, которое часто используется и в системах с Windows, также позволяет сохранять длинные названия файлов, при этом применяется кодировка Unicode (UTF-16).

Примеры

Следующая команда записывает все файлы, содержащиеся в каталоге /master, в файл /tmp/master.iso. Сам каталог master не хранится в образе диска. Образ диска использует расширение Rockridge (параметр -r), а также расширение Joliet (параметр -J) и получает название Linux (параметр -V). Если вы записываете ISO-образ на CD, то данная последовательность символов становится именем диска.

user$ genisoimage -o /tmp/master.iso -r -J -V Linux /master


Второй пример напоминает первый, но теперь мы создаем загрузочный диск:

user$ genisoimage -o /tmp/master.iso -r -J /master -b images/boot.img -c boot. catalog

В третьем примере каталог master сам становится каталогом в образе диска (параметр -graft-points):

user$ genisoimage -o /tmp/master.iso -r -graft-points /master=/master


СОВЕТ



Если вы не работаете с параметром -г, следите за тем, чтобы все файлы каталога master относились к корневому каталогу и прочитывались!

user$ chown -R root.root /master user$ chmod -R a+r /master

Команда dd



Если вы хотите скопировать без изменений CD или DVD с данными (но не аудио-диск!), вам хватит одной команды dd, чтобы создать необходимый для этого файл образа диска. Вместо /dev/cdrom укажите имя устройства вашего CD- или DVD-привода, которое отличается в зависимости от дистрибутива.

user$ dd if=/dev/cdrom of=/usr/local/iso.img bs=2048

Команда readcd



Альтернативой для dd является команда readcd или readom. При этом для считывания информации с CD используются команды SCSI, это дает те же результаты, что и применение dd. Я проводил испытания на двух разных компьютерах, и в обоих случаях readcd выдавала бесчисленные сообщения об ошибках. В отличие от работы с dd, требовалось указать привод CD или DVD с помощью тройки чисел. Правильную комбинацию чисел для вашего привода можно узнать с помощью команды readcd -scanbus.

user$ readcd dev=0,0,0 f=iso.img

Достоинство readcd заключается в том, что она также может создавать ТОС-файл (при работе с аудиодисками — с параметром -clone) и в зависимости от указанного параметра будет по-разному обращаться с ошибками считывания (параметры -noerror и -noclone). С помощью параметра -w можно применять readcd и для записи CD.

Тестирование ISO-образа


С помощью так называемого петлевого устройства ядра Linux можно рассмотреть любой файл как файловую систему и, используя команду mount, связать его с деревом каталогов. Функция петлевого устройства находится в модуле ядра loop, который входит в состав всех наиболее распространенных дистрибутивов. Если этот модуль не загружается автоматически, попробуйте вариант с modprobe. Следующая команда связывает файловую систему образа диска, содержащуюся в файле master.iso, с деревом каталогов в режиме «только для чтения»:

root# mkdir /iso-test


root# mount -t iso9660 -o loop,ro /tmp/master.iso /iso-test/

Теперь можно просмотреть в каталоге iso-test содержимое будущего CD.

Запись CD

Программа cdrecord и команда wodim



Уже более десяти лет команда cdrecord используется для записи CD. С лета 2006 года разработчик cdrecord Йорг Шиллинг (Jorg Schilling) использует при работе с некоторыми составляющими одноименного пакета лицензию компании Sun под названием CDDL. Многие другие разработчики считают, что эта лицензия несовместима с GPL. Именно поэтому случилось так называемое ветвление, то есть раскол проекта: последняя версия cdrecord, соответствующая GPL, послужила основой для команды wodim (write data to optical disk media)1, относящейся к новому проекту cdrkit. Параллельно с cdrecord существует еще два ветвления, две новые команды: из mkisofs получилась genisoimage, а из cdda2wav — icedax.

Во всех нынешних дистрибутивах применяются команды wodim, genisoimage и icedax. Однако из соображений совместимости cdrecord можно вызывать по старому названию cdrecord; /usr/bin/cdrecord — это только ссылка на wodim.

Перед тем как записать компакт-диск с данными, вам, как правило, потребуется записать ISO-образ с помощью genisoimage. Следующие команды сначала симулируют запись CD с данными (-dummy), а потом осуществляют его на самом деле:

<code>root# wodim -dummy -v speed=16 dev=/dev/scd0 iso.img root# wodim -v speed=16 dev=/dev/scd0 iso.img</code>


Если компьютер достаточно быстрый, вы можете связать genisoimage и wodim с помощью символа вертикальной линии. Так можно сэкономить место для ISO-образа:

root# genisoimage -r /master | wodim -v speed=16 dev=/dev/scd0 -

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

root# wodim -v speed=16 dev=0,5,0 -pad -dao -audio *.wav

Команда cdrdao


Это альтернатива для wodim. Возможности cdrdao не так широки, но она предлагает гораздо больше параметров для считывания и записи аудиодисков. Название команды подсказывает, что информация создается в режиме односеансовой записи (disk at once, сокращенно — DAO).

На практике команда cdrdao чаще всего используется для копирования аудио-дисков. Первая команда cdrdao создает файлы data.bin (содержимое компакт-диска) и data.toc (оглавление). Вторая команда записывает эти данные на CD. Сначала нужно сообщить устройству записи дисков нужную тройку чисел. Узнать комбинацию, соответствующую вашему приводу, проще всего с помощью команды readcd -scanbus.

user$ cd tmp/

user$ cdrdao read-cd --device 0,0,0 data.toc

user$ cdrdao write --device 0,0,0 --buffers 64 data.toc

Верификация дисков с данными



Следующая команда сравнивает содержимое CD с оглавлением каталога master файл за файлом и байт за байтом. Все найденные отличия записываются в файл diff.log, находящийся в домашнем каталоге. Вместо /media/cdrom необходимо указать каталог в вашей файловой системе, к которому будет привязан CD.

root# diff -qrd /master /media/cdrom/ >& ~/diff.log


Во втором окне (или во второй конеоли) можно проследить процесс создания файла diff.log с помощью tail. Поскольку в данном случае используются символьные ссылки, не обойдется без сообщений об ошибках, так как символьные ссылки уже не будут указывать в нужное место CD. Однако по-настоящему беспокоиться стоит в том случае, когда отдельные файлы вообще не удается прочитать (ошибка ввода-вывода) или когда оглавление файлов отличается от необходимого (а вы уверены, что не вносили в файл изменений).

rhttp://www.modx.cc/manager/?a=resource/create&class_key=Article&parent=982&context_key=web&template=30oot# tail -f ~/diff.log

Если вы хотите просто протестировать, можно ли прочитать все данные, содержащиеся на диске (вне зависимости от того, что это за данные), выполните следующую команду. Такой тест оправдан, например, в тех случаях, когда вы получили компакт-диск, который, возможно, неисправен (например, это касается установочного диска Linux).

root# dd if=/dev/cdrom of=/dev/null

Запись DVD


При записи DVD вам на выбор предлагается целый ряд команд или пакетов. О Самая популярная команда — dvd+rw-tools, которую мы кратко рассмотрим

в данном подразделе. Если с этой командой возникнут проблемы, можно попытать счастья с wodim. Она подходит для записи обычных DVD-R и DVD+R, причем ее синтаксис не отличается от применяемого при записи CD. В любом случае wodim предлагает меньше параметров для записи на носители DVD+RW или DVD-RW.

Команда dvd+rw-tools



Все команды, показанные далее в этой главе, входят в состав пакета dvd+rw-tools. Первоначально он обеспечивал только поддержку форматов DVD+R и DVD+RW (отсюда и название). Однако теперь с его помощью можно записывать также DVD-R и DVD-RW, а также Blu-ray-диски (последнего варианта я не испытывал). Пакет dvd+rw-tool по умолчанию установлен во всех дистрибутивах, распространенных в настоящее время.

Команда growisofs


Это основная команда пакета dvd+rw-tools. Она записывает диски DVD+R, DVD+RW, DVD-R, DVD-RW и Blu-ray. Далее я предлагаю некоторую общую информацию по разным типам носителей.

DVD+R, DVD-R — данные можно записать на диск как при мультисессии. При первой сессии используется команда growisofs -Z, при всех остальных сессиях — growisofs -M. Удалить записанные данные уже нельзя. Форматирование диска произвести невозможно.

DVD+RW, DVD-RW — перед первым применением носитель необходимо отформатировать с помощью команды dvd+rw-format. Кроме того, можно добавлять данные на DVD+R/DVD-R в несколько этапов. Если вы хотите записать данные на место информации, уже содержащейся на диске, то просто запустите новый цикл сессий с помощью команды growisofs-Z. В отличие от записи CD-RW, заново форматировать DVD в данном случае не требуется.

При записи DVD-RW в зависимости от форматирования поддерживаются режимы последовательных добавлений и ограниченной перезаписи. Поскольку при работе данной команды используется команда genisoimage, большинство параметров этих команд идентичны.

Следующая команда сохраняет содержимое каталога data на DVD. Параметры команды genisoimage -r и -J влияют на то, что DVD получает длинные названия, необходимые для работы с расширениями Rockridge njoliet. Вместо имени устройства /dev/srn нужно в зависимости от дистрибутива указывать /dev/scdn.

user$ growisofs -r -J -Z /dev/sr0 data/

Вторая сессия производится следующим образом (параметр -M вместо -Z): user$ growisofs -r -J -M /dev/sr0 moredata/

ПРИМЕЧАНИЕ



Обратите внимание, что перед началом новой сессии необходимо извлечь DVD, а потом вновь поместить его в привод!

Чтение мультисессионных DVD может протекать с проблемами на некоторых приводах. При работе с DVD-RW необходимо использовать режим ограниченной перезаписи.

Некоторые DVD-ROM-приводы вообще не могут работать с DVD+RW (как с моносессионными, так и с мультисессионными). С помощью команд, указанных ниже, эти проблемы иногда удается устранить. Команда dvd+rw-format записывает на DVD+RW область для вывода (DVD не форматируется, все данные сохраняются!), a dvd+rw-booktype изменяет на диске информацию о типе (Book-type).

user$ dvd+rw-format -lead-out /dev/sr0 user$ dvd+rw-booktype -dvd-rom -media /dev/sr0


Обычно команда growisofs сообщает все параметры, кроме -Z или -M, команде genisoimage, а затем записывает результат выполнения genisoimage прямо на DVD. Если вы хотите записать уже имеющийся образ диска (ISO), синтаксис будет такой: -Z device=isofile: user$ growisofs -Z /dev/sr0=data.iso

Формат dvd+rw-format



DVD+RW и DVD-RW (когда использовать режим ограниченной перезаписи, рассказано ниже) перед первым применением необходимо отформатировать. Эту функцию выполняет команда dvd+rw-format:

user$ dvd+rw-format /dev/sr0


Детали процесса форматирования немного отличаются в зависимости от типа носителя.



DVD+RW — в данном случае форматируется только начальная область болванки. Ее размер определяется в зависимости от записывающего устройства. Поэтому когда процесс форматирования завершается на отметке около 11,5 (или любой другой отметке меньше 100) — это не ошибка! Форматирование за пределами начальной области автоматически выполняется приводом, как только информация, записываемая на DVD, заполняет всю начальную область (отформатированную предварительно).

DVD-RW — по умолчанию такие диски форматируются командой dvd+rw-format для ограниченной перезаписи. В этом режиме можно перезаписать на диск новую информацию на место уже имеющейся. При этом не требуется форматировать DVD-RW перед каждой новой сессией записи.

Если DVD-RW имеет параметр -blank, его можно форматировать и для записи в режиме последовательных добавлений. Этот режим особенно хорош для записи Video-DVD и улучшает совместимость с некоторыми программами-плеерами. В таком режиме команда growisofs не может перезаписывать данные. Для этого DVD каждый раз нужно заново форматировать — очень длительный процесс.

Итак, для оптимального взаимодействия с growisofs необходимо обязательно форматировать DVD-RW с помощью команды dvd+rw-format и без параметра -blank!

При форматировании не происходит физического удаления данных. Если вам требуется именно физическое удаление, например из соображений информационной безопасности, лучше выполнить команду вида -Z device=/dev/zero. Таким образом информация на носителе стирается полностью.

Команда dvd+rw-mediainfo



Если у вас есть диск и вы не знаете, какого он типа, заполнен ли уже этот диск информацией, и если да, то в каком режиме и с каким количеством сессий, эту информацию можно узнать с помощью команды dvd+rw-mediainfo:

user$ dvd+rw-mediainfo /dev/sr0

Читайте так же:
Резервное копирование






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать