Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Операционные системы -> FreeBSD -> Запись CD-R/RW в BSD-системах


Запись CD-R/RW в BSD-системах

Когда я впервые знакомился FreeBSD, запись компактов в ней мне казаласть задачей сложной и интуитивно неясной. Однако - лишь до тех пор, пока я не попробовал это проделать. И оказалось, что, как и все во Free, это - не просто. А - очень просто. В ознаменование чего я и составил себе для памяти этот маленький HOW-TO'й. Может быть, он еще кому-нибудь пригодится. Тем более, что, за исключением одного оговоренного ниже момента, все сказанное может быть использовано в любой BSD-системе - по крайней мере, за DragonFlyBSD ручаюсь.

Запись CD-R/RW во FreeBSD никогда не требовала каких-либо специфических настроек - типа включения эмуляции SCSI через IDE (что до недавнего времени было необходимо в Linux). Хотя и такой подход не возбраняется - он позволит использовать пакет cdrtools и, главное, многочисленные графические надстройки над ним. Однако часто более простым способом выглядит прямая запись диска штатной Free'шной утилитой burncd.

Тем не менее, в любом случае запись CD-диска начинается с создания его образа. Для чего требуется программа mkisofs из все того же пакета cdrtools. В штатном комплекте FreeBSD Distributions ее нет - она устанавливается из отдельного порта или прекомпилированного бинарника (sysutils/cdrtools). В DragonFlyBSD же этот пакет входит в базовый набор, устанавливаемый при первичной инсталляции.

Собственно создание образа диска происходит здесь точно также, как и в Linux'е:

$ mkisofs -R -J -o iso_name path2data

Опция -R обеспечивает поддержку расширения стандарта ISO9660 - Rock Ridge для Unix-систем (длинные имена, множественные точки в именах файлов, атрибуты доступа и принадлежности файлов и каталогов). Опция -J - это поддержка расширения Joliet для систем семейства Windows (то есть длинные имена файлов будут видны и там). Опция -o имеет своим значением имя создаваемого iso-образа. Ну а path2data - путь к каталогу, из которого будет создаваться образ.

Перед записью образ можно смонтировать для проверки. Делается это от лица root'а. Ранее, во FreeBSD 4-й ветки, это требовало поддержки в ядре псевдо-устройства vn. Такой порядок сохранился и в DragonFly. В 5-й же ветке FreeBSD доступ к образу осуществляется через универсальное устройство /dev/md (memory disk - диска в оперативной памяти), поддержка которого включена в ядро GENERIC по умолчанию. Сначала это устройство следует сконфигурировать командой

$ mdconfig -a -t vnode -f path/iso_name

после чего возвращается

md#

где # - номер md-устройства (если оно единственное, будет md0). Собственно монтирование выполняется командой:

$ mount -t cd9660 /dev/md0 /mnt_point

Где /mnt_point - созданный заблаговременно пустой каталог (например, /mnt/iso). После этого этот каталог может быть просмотрен обычным образом, например,

$ ls /mnt/iso

Однако - только в режиме read only (то есть внести изменения в созданный образ простым копированием или удалением не удастся.

По завершении просмотра образа md-устройство следует размонтировать и удалить:

$ umount /mnt/iso;
$ mdconfig -a /dev/md0

Непосредственно запись диска выполняется утилитой burncd, которая входит в штатный комплект Distributions (то есть она доступна сразу после установки FreeBSD). Например, это можно сделать такой командой:

$ burncd -e -s max -f /dev/acd0 data iso_name fixate

Значения опций - следующие:

  • -e обеспечивает выдвижение лотка после записи,
  • -s -скорость записи (по умолчанию - 4, значение max обеспечивает максимально возможную скорость для данных привода и болванки,
  • -f - имя файла устройства (в примере - /dev/acd0),

Команда fixate указывает на фиксирование сессии (подразумевается односессионная запись). Ну а data предписывает запись диска с данными (а не аудиоCD) с образа iso_name.

У burncd есть еще несколько опций, с которыми можно ознакомиться посредством

$ man 8 burncd

В частности, полезной может быть опция -v, выводящая информацию о ходе записи. А опция -t осуществит имитацию записи, что позволяет в случае ошибки избежать порчи болванки.

Для стирания CD-RW в burncd предусмотрены команды blank (быстрая очистка оглавления диска) и erase (полная очистка диска)

$ burncd -e -f /dev/acd0 blank

или

burncd -e -f /dev/acd0 erase

соответственно. Нужно только помнить, что вторая операция займет немало времени - столько же, сколько и запись диска.

Если для целей чисто резервного копирования (например, архива вида *.tar.gz) не требуется запись дисков, доступных из других операционок, burncd можно использовать и без предварительного создания iso-образа (и, соответственно, без пакета mkisofs). Все, что для этого нужно (помимо заблаговременно созданного архива подходящего размера) - директива примерно такого вида:

$ burncd -f /dev/acd1c -s max data archive.tar.gz fixate

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

$ tar xzvf /dev/acd1c

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

$ split --bytes=650m archive.tar.gz [PREFIX]

где в качестве префикса можно указать какое-либо мнемонически полезное значение (дату создания архива, например), после чего последовательно записать кучу образовавшихся файлов (имеющих вид [PREFIX]aa, [PREFIX]ab, и так далее) почти так же, как было сказано выше:

$ burncd -f /dev/acd1c -s max data [PREFIX]?? fixate

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

$ cp /dev/acd1c path2/file#

Затем они сливаются утилитой cat в единый архив:

$ cat file1 ... file# > archive.tar.gz

который и разворачивается обычным образом.

Возможность применения burncd для резервного копирования без предварительного создания iso-образов определяет, по моему мнению, ее предпочтительность перед cdrecord. Тем не менее, и его использование в BSD-системах не возбраняется - тем более, что в этом случае возможным становится и использование графических front-end'ов типа k3b или xcdroast. Но для этого, как и в Linux'е, необходимо включить эмуляцию SCSI через IDE - так называемый CAM (Common Access Model). Этот же CAM необходим для записи DVD-дисков.

Автор: Алексей Федорчук
UNIX4all

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.