Журнал LinuxFormat - перейти на главную

LXF76:Азбука записи

Материал из Linuxformat
Версия от 18:07, 5 февраля 2009; Yaleks (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Азбука записи Linux-основы

Приготовьте ваши бластеры: Петр Семилетов научит вас прожигать диски из любого положения, будь то консоль, KDE или Gnome.

Задолго до того, как Linux стал моей основной операционной системой, я стал использовать его для записи информации на CD. Это было стабильно. Linux для этого дела предоставлял тогда менее развитые, чем сейчас, программы с графическим интерфейсом. Поэтому я использовал консоль.

Точка опоры

Архимед сказал: «Дайте мне точку опоры и я переверну мир». В мире Linux точка опоры – это консоль. Общение с программой посредством командной строки. Сложно? Для тех, кто умеет читать руководства – нет.

Не ошибусь, сказав, что практически все программы под Linux, которые что-то записывают на CD или DVD, задействуют для этой цели консольную утилиту cdrecord. Исключение составляет, пожалуй, только Nero for Linux. Я его не пробовал. Мне хватает того, что есть в Linux. Штатных средств. И раньше хватало.

cdrecord (http://cdrecord.berlios.de) – вот движущая сила записи в Linux. Стандартную версию cdrecord принято называть просто – Vanilla. Vanilla умеет записывать только на обычные CD-R и CD/RW. Записывать DVD она не может. Некоторые дистрибутивы Linux распространяют cdrecord с патчем, который позволяет ей записывать DVD. Разработчик cdrecord, Йорг Шиллинг (J rg Schilling), отзывается о таких версиях нелестно. Он говорит об этом на сайте своей утилиты. Взамен Шиллинг предлагает свою версию cdrecord с поддержкой DVD. Называется она cdrecord-ProDVD и доступна для скачивания в бинарном формате. Без исходных текстов.

Чтобы получить ключ для работы с этой версий, надо послать разработчику специально оформленный запрос по e-mail. Для бесплатного ключа под Linux следует, кроме всего прочего, выслать MAC-адрес вашей Ethernet-карты. Ключи есть коммерческие, частные, а также для использования программы в образовательных целях. Ключи некоторых типов имеют ограниченное время действия. На сайте cdrecord можно прочитать большой текст, описывающий способ получения ключа.

Кроме того, в документе на ftp://ftp.berlios.de/pub/cdrecord/ProDVD/README содержится общий ключ для cdrecord-ProDVD. Этот ключ (некоммерческое частное использование продукта) надлежит прописать в переменной окружения CDR_SECURITY, тогда программа будет работать без ограничений.

Но многие люди пересели за Linux еще и потому, что не желали иметь дел с ключами, активациями и тому подобными вещами. Стоит ли удивляться появлению открытого патча для записи DVD? Патч в свою очередь породил ряд ответвлений cdrecord. Это dvdrecord, cdrecord-dvdhack и другие. Чтобы не запутывать читателя, скажем, что в большинстве случаев «из коробки» работает cdrecord, собранный с патчем для записи DVD, плюс пакет вспомогательных утилит dvd+rwtools. Именно с такой программной связкой работают и многие популярные графические оболочки, например K3b. Фактически, нестандартная версия cdrecord, порицаемая разработчиком оригинального варианта, давно стала стандартом.

Поэтому здесь и далее в статье, говоря о cdrecord, я буду иметь в виду именно модифицированную версию с поддержку DVD. Так будет проще и вам, и мне.

Прежде чем коснуться проблемы самой записи, надо рассмотреть еще один вопрос. Что мы будем записывать? cdrecord умеет записывать образ диска (disk image). Это заранее подготовленный, весьма объемный файл, внутри которого находится файловая система формата ISO9660, наполненная каталогами и файлами, которые вы туда поместили. Такой файл – образ диска – может быть без труда подмонтирован в Linux к какому-нибудь каталогу. И если вы зайдете в этот каталог командой cd или в каком-нибудь файловом менеджере, то «попадете» в содержимое создаваемого вами CD или DVD.

Образ диска для CD

Подготовить образ диска можно разными способами. Сразу замечу, что для записи обыкновенного музыкального CD образ делать не нужно. Позже я коснусь этой темы более подробно. Давайте рассмотрим наиболее распространенные методы создания образа. Самый простой случай – когда вы хотите сделать точную копию диска. Предположим, что носитель уже в дисководе – пусть это будет /dev/cdrom. Даем в консоли команду:

dd if=/dev/cdrom of=mycd.iso

Через некоторое время, в текущем каталоге (важно, чтобы в нем хватило места) создастся точная копия диска, находящегося в приводе CDROM. Этот образ будет записан в файл mycd.iso. Название условно, разумеется. Используйте какое пожелаете. А dd – это стандартная команда Linux, применяемая для копирования и конвертирования файлов. Поскольку любое устройство в Linux (UNIX) – это файл, то мы можем побайтно его скопировать. Что и делает утилита.

Второй способ создания образа подразумевает использование программы mkisofs (для обычных CD) либо growisofs (для DVD). growisofs создает образ и записывает его на DVD-носитель, в то время как mkisofs просто создает образ в виде файла на вашем жестком диске и записывать его не умеет. Как использовать mkisofs? В простейшем случае – так. Вначале создайте рабочую директорию и скопируйте в нее каталоги и файлы, подлежащие записи на CD. Второй вариант – сделайте на них символические ссылки. Затем дайте команду вида:

mkisofs -v -J -o mycd.iso <путь к каталогу с файлами>

Например:

mkisofs -v -f -J -o mycd.iso /mnt/user/music

После этого в файле mycd.iso создастся образ каталога /mnt/user/music, готовый к записи на чистый компакт-диск. Если хотите, можете проверить, верно ли создан образ. Сделайте новый каталог, например test. От имени root дайте команду:

mount -t iso9660 -o loop mycd.iso test

Этим вы смонтируете файл-образ mycd.iso к каталогу test. Теперь, зайдя в каталог test, вы «окажетесь» в структуре файлов подготовленного вами образа.

Файловая система CD может иметь свои расширения (extensions). Расширения дают дополнительные возможности – например, добавляют поддержку прав доступа, обеспечивают более длинные имена файлов, и так далее. Среди наиболее часто используемых расширений – Joliet. Мы включаем его, передав mkisofs параметр -J. Можете включить также специфическое для Linux расширение Rock Ridge, которое поддерживает права доступа и тому подобное. А параметр -f нужен нам, чтобы при создании образа утилита распознавала символические ссылки на файлы, которые вы включаете в образ. Что касается параметра -v, то он служит для подробного вывода информации mkisofs о своей работе.

Образ диска для dvd и его запись

Рассмотрим теперь growisofs (http://fy.chalmers.se/~appro/linux/DVD+RW) и создание DVD. Каим бы странным это не показалось на первый взгляд, занятие это более простое, чем запись обычных CD. Дело в том, что growisofs – это оболчка, хоть и консольная, для обычных mkisofs и cdrecord.

Предположим, что файлы, которые вы хотите записать на DVD, лежат у вас в каталоге /mnt/image. А пишущий DVD-привод у вас – устройство /dev/hdd. Даем команду:

growisofs -Z /dev/hdd -R -J /mnt/image

И growisofs создает образ, попутно записывая его на чистый DVD-диск.

Параметр «-Z» указывает на то, что мы создаем новую сессию, а не продолжаем старую. Если же вы хотите добавить к уже записанной сессии новую, то надо применить команду вида:

growisofs -M /dev/hdd -R -J /mnt/image2

Здесь файлы из каталога /mnt/image2 записываются второй сессией на DVD. Возможно записать и образ, сделанный предварительно: growisofs -Z /dev/hdd=image.iso Здесь image.iso – образ диска.

growisofs поддерживает множество дополнительных параметров. С ключом «-dvd-compat» лучше записывать DVD, содержащие видео. Параметром «-speed=число» можно задать скорость записи. -overburn включает режим записи OverBurn. Прочие параметры совместимы с mkisofs, поскольку ему и передаются.

Образ DVD может быть создан заранее. Во-первых, уже знакомым вам методом, с помощью программы mkisofs. Пример:

mkisofs -v -J -o mydvd.iso /mnt/cdrom

Второй способ (создание копии носителя):

readcd dev=/dev/hdc f=mydvd.iso

Здесь мы копируем побайтно содержимое DVD (в примере это /dev/hdc) в файл mydvd.iso. Разумеется, сработает и команда dd:

dd if=/dev/cdrom of=mydvd.iso

Запись CD и DVD

Теперь, когда образ диска готов, надо записать его на носитель. Некогда, в консольном исполнении, эта задача требовала дополнительных исследований системы. К записывающему устройству можно обращаться по нескольким протоколам – SCSI и ATA. Если у вас ATA-устройство, а в большинстве случаев так оно и есть, то работать с ним в процессе записи все равно можно по протоколу SCSI, посредством эмуляции SCSI на ATA.

Но по большому счету, пользователя не должна заботить техническая сторона дела. Пользователя Nero это не заботит. А чем мы хуже? В ядре Linux версии 2.6 появилась возможность выполнять операции записи на пишущее устройство, общаясь с ним самым что ни есть обычным для UNIX способом. То есть трактуя устройство как файл. Внутри программы это выглядит примерно так. Мы открываем это устройство функцией open, передав ей в качестве параметра имя файла. В случае DVD-привода таким именем может быть, скажем, «/dev/hdc». А затем используем универсальную функцию ioctl, которая, кроме прочего, позволяет производить над открытым файлом такие базовые функции, как чтение, запись и позиционирование.

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

cdrecord -dev=<устройство> <другие опции>

В «старом» способе указания устройства перво-наперво необходимо определить, как именно дисковод подключен к шине. Для этого служила команда:

cdrecord -scanbus dev=ATA:

Или, в случае SCSI: c drecord -scanbus При этом выводится нечто вроде:

scsibus0:
0,0,0 0) «TOSHIBA ‘ »ODD-DVD SD-R1512« »1010« Removable CDROM
0,1,0 1) *
0,2,0 2) *

и так далее. Вас должны были заинтересовать первые три числа, разделенные запятыми, в строке с названием вашего дисковода. В нашем примере это 0,0,0. Их и нужно было передавать в параметре -dev в cdrecord. Например:

cdrecord -dev=ATAPI:0,0,0 my_cd_or_dvd.iso

Как легко видеть, первый параметр cdrecord – это записывающее устройство, а второй – записываемый образ диска.

Однако, современный способ указания устройства совсем другой. Просто даем команду:

cdrecord -v -dev=/dev/hdd my_cd_or_dvd.iso

И всё. Итак, в параметре -dev достаточно указать устройство дисковода. Без всяких шин, предварительного их сканирования и прочего. Этот способ указания имени устройства не встретил одобрения у Йорга Шиллинга. Что сообщается в ходе работы cdrecord. Тем не менее, в «неофициальных» версиях cdrecord такой способ можно считать основным. А «неофициальные» версии распространены более, чем стандартная.

Чтобы диск выдвинулся после записи, можно добавить параметр -eject. Можно задать скорость записи: speed=число. При этом параметр speed не предваряется знаком тире. Для фиксирования диска («закрытия» многосессионного диска) надо добавить параметр -fix. А вот так можно очистить носитель CD-RW:

cdrecord -dev=/dev/hdc -blank=fast

Запись обычного аудио-CD выглядит так. В каталоге с подготовленным заранее WAV-файлами (формат PCM, 44.1 КГц, 16 бит) даем примерно такую команду:

cdrecord dev=/dev/hdc -eject speed=2 -pad -audio *.wav

Графические оболочки

Если консоль кажется вам адом наяву, то самое время обратить внимание на графические оболочки для утилит подготовки образа диска и записи его на носитель. Впрочем, хотя у меня нет предубеждения к консоли, диски я чаще всего записываю в K3b (http://www.k3b.org).

K3b трудно назвать просто «графическим интерфейсом». Это очень мощная программа для рабочего стола KDE. Для достижения своих целей K3b использует целый арсенал внешних утилит: cdrdao, cdrecord, dvd+rw-format, growospfs, mkisofs, readcd, sox, transcode, vcdxbuild и другие. С помощью K3b вы можете записывать CD, DVD, аудио-CD и даже VideoCD. В случае последних достаточно создать в K3b новый проект VideoCD и перетащить в его список файлов заранее подготовленный файл (сжатый в MPEG1) с характеристиками, присущими стандарту VideoCD. Это всё же удобнее, чем пользоваться консольными утилитами. Кто пробовал – знает. Аудио-CD тоже «пекутся» в K3b с комфортом. Хотите – используйте в качестве входного формата файлы в WAV. А хотите – MP3 или Ogg Vorbis.

В K3b есть свой файловый менеджер, хотя зачастую удобнее перетаскивать файлы из Konqueror. При создании образа диска K3b использует концепцию проекта. MDI-интерфейс с о вкладками (tabs) позволяет работать с несколькими проектами одновременно. Проект может быть сохранен на диске в виде XML-файла, чтобы позже загрузить его и дополнить или изменить. K3b умеет также работать напрямую с образами дисков – создавать их, загружать и записывать. В отдельные пункты меню вынесены очистка и форматирование.

Отмечу, что существует всего две программы, которые я обновляю регулярно, с выходом каждой новой версии. Это плейер Amarok и утилита K3b. И не потому, что в них много ошибок и каждая новая версия становится более стабильной. Нет, они и так стабильны и хороши. Но постоянное совершенствование этих программ и добавление в них новых функций вызывают желание их устанавливать.

Между прочим, в Amarok есть большая степень интеграции с K3b. В окне списка песен Amarok, в контекстном меню присутствует пункт «Записать на диск». Выбрав его, попадаем в подменю, где надо указать, что будем записывать: «Выбранные композиции», «Этот альбом» или «Песни исполнителя». Затем появится окно с запросом, в каком режиме будем записывать – обычный аудиодиск или же диск с данными, куда песни будут записаны как файлы. После выбора вами нужного режима запускается K3b с автоматически созданным проектом, содержащим песни из Amarok.

Из параллельного мира Gnome и Gtk мне очень нравился Eroaster, но его разработка, кажется, прекратилась и сайт более не работает. Могу также обратить ваше внимание на две программы – GnomeBaker (http://gnomebaker.sourceforge.net/v2/) и Graveman (http://graveman.tuxfamily.org/index.php). Покамест Graveman не умеет обращаться с DVD, хотя такое планируется. Но это хорошая GTK2-утилита для записи обычных CD/CD-RW со встроенным конвертором звуковых файлов и прочими удобствами. А GnomeBaker подойдет тем пользователям, которые предпочитают простоту интерфейса и не любят вникать в подробности, общаясь с десятками разных опций. Перетащил файлы, нажал кнопку – записал. Это путь Gnomebaker. GnomeBaker умеет записывать и CD, и DVD, но хочется пожелать ему большей стабильности в работе.

Заключение

Эта статья не претендует на исчерпывающий обзор средств записи на CD/DVD. Например, из программ с графическим интерфейсом я успел описать лишь те, что кажутся мне наиболее удобными и идущими в ногу со временем – за бортом осталось много других замечательных приложений, однако, чтобы описать их все, понадобится бы целая книга. Диски можно писать и в консоли, и в графической среде – кому как нравится. И в большинстве случаев все это работает «из коробки», а интерфейсы у графических оболочек ничуть не сложнее, чем у Nero. Наслаждайтесь!

Персональные инструменты
купить
подписаться
Яндекс.Метрика