Работа с CD/DVD : Записать, прочитать, стереть, дописать под FreeBSD CD, DVD, boot, bootable, GRUB, eltorito
Информация рассчитана в первую очередь на пользователей FreeBSD, но большая её часть справедлива и для других UNIX.
Монтируем диски и образы
Монтируем CD и DVD одинаково:
mount_cd9660 -o ro /mnt /dev/acd0
Смонтировать образ можно в две команды:
mdconfig -a -t vnode -f file.iso -u 0 -o readonly
mount -t cd9660 /dev/md0 /mnt/iso
Размонтировать аналогично:
umount /dev/md0
mdconfig -d -u 0
Часто можно встретить vn-подход, но он устарел, и его лучше не использовать.
Запись CD
Чистим CD:
burncd -f /dev/acd0 blank
Пишем первую сессию на мульти-CD:
mkisofs -J -R -input-charset koi8-r -V "$cd_label" "$src" |
cdrecord -dev=0,1,0 -tao -multi -data —
Номер устройства (в моём случае 0,1,0), можно узнать командой:
cdrecord -scanbus
Дописываем мульти-CD:
info=`cdrecord -dev=$dev -msinfo`
mkisofs -J -R -input-charset koi8-r -V "$cd_label" \
-C "$info" -dev 0,1,0 -root "$dir" "$src" |
cdrecord -dev=0,1,0 -tao -multi -data —
При этом всё дерево, находящееся в каталоге $src, окажется не в корне файловой системы диска, а в директории $dir. Обычно это как раз то, что нужно при дописывании.
Клонируем CD:
dev='0,1,0'
raw='cd.temp.raw'
readcd dev=$dev f=$raw
readcd dev=$dev -w f=$raw
Запись DVD
Чистить DVD-диски не надо.
Пишем первую сессию:
growisofs -Z /dev/cd0 \
-J -R -input-charset koi8-r \
-V "$cd_label" "$src"
Дописываем с ключом -M вместо -Z.
Ключ -dvd-compat, приводимый во множестве рецептов, закрывает диск — дописать диск будет уже нельзя.
Клонируем DVD:
dev='0,1,0'
raw='cd.temp.raw'
readcd dev=$dev f=$raw
growisofs -dvd-compat -Z /dev/cd0=$raw
Сообщения об ошибках
При записи дисков (особенно DVD) иногда можно столкнуться с сообщениями об ошибках вида:
:-[ WRITE@LBA=0h failed with SK=5h/ASC=24h/ACQ=00h]: Input/output error
Подобное сообщение может озадачить кого угодно. На самом деле в нем содержится три кода: SK, ASC и ACQ. Смысл всех кодов расшифрован на странице http://fy.chalmers.se/~appro/linux/DVD+RW/keys.txt. Например, приведённая выше комбинация означает, что вам просто следует отформатировать DVD-RW-носитель. Для этого можно использовать команду:
dvd+rw-format -blank=full /dev/cd0
После форматирования (которое может занять не один час!) диск будет записываться без всяких ошибок.
Кстати, замечено, что иногда диски DVD-RW (именно «-», а не «+») перестают дописываться. В этих случаях тоже помогает полная очистка DVD-диска.
Вторая распространённая проблема: сообщение
:-( growisofs is being executed under sudo, aborting!
See NOTES paragraph in growisofs manual page for further details.
Это сообщение возникает, когда вы работаете под sudo. Быстрое решение: удалить переменную SUDO_COMMAND.
unset SUDO_COMMAND
Про глубинные причины этого предупреждения можно почитать в руководстве. «Быстрое решение», по мнению авторов growisofs, небезопасно. Но мне оно представляется вполне приемлемым, тем более, если речь идёт о рабочей станции.
Если вы записали Video-DVD, а mplayer не хочет его проигрывать, выдавая ошибку вида:
michurin# mplayer dvd://1
MPlayer 1.0rc1-3.4.6 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) D CPU 2.80GHz (Family: 15, Model: 4, Stepping: 7)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Creating config file: /root/.mplayer/configPlaying dvd://1.
libdvdread: Using libdvdcss version 1.2.9 for DVD access
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
Can't open VMG info!
File not found: '1'
Failed to open dvd://1.
Значит, скорее всего, вы забыли указать при записи опцию
-dvd-video