Болваним из Free

Алексей Федорчук
[email protected]

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

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

Запись CD-диска начинается с создания его образа. Для чего требуется программа mkisofs. В штатном комплекте ее нет - устанавливается из портов или пакетов), причем необходимости в прочих компонентах пакета cdrtools не возникает. Собственно создание образа происходит также, как и в Linux'е:

$ mkisofs -R -J -o iso_name path2data-dir

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

Рекомендуемый объем образа для записи на 80-минутную болванку - 708 000 000-710 000 000 байт.

Перед записью образ можно смонтировать для проверки. Делается это от лица root'а. Ранее это требовало поддержки в ядре псевдо-устройства vn. Ныне (в 5-й ветке) доступ к образу осуществляется через универсальное устройство md (диска в оперативной памяти), поддержка которого включена в ядро 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. Например, это можно сделать такой командой:

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

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

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

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

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

$ man 8 burncd

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

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

С помощью burncd можно записывать и мультисессионные диски, но я этого еще не пробовал.

Во FreeBSD можно использовать и стандартный Unix'овый пакет cdrtools, который имеется в портах и пакетах. Но для этого, как и в Linux'е, необходимо включить эмуляцию SCSI через IDE (в ядре GENERIC версии 5.1 она по умолчанию отсутствует).