OpenWay|POSIX-saga|FreeBSD etc.|All Linux|Apps|POSIX-live|SiteMap
FreeBSD и другие
(C) Указанные авторы, 2004, отныне и вовек
Links|Install|System|Use|Admin|DFBSD|BSD|Other

Болваним из Free

Алексей Федорчук

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

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

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

$ mkisofs -R -J -o iso_name path2data

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

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

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

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

Команда 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

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

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

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


Обсуждение проекта