Запис CD-R/RW в BSD-системах, Unix, Операційні системи, статті

Олексій Федорчук

Коли я вперше знайомився 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, як це описано у відповідному мікро-How-to. У 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

Значення опцій – наступні:



Команда 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-дисків.


 

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*