Запись CD


 * Запись DVD-R и DVD-RW дисков
 * Graveman
 * k3b
 * Handbook
 * http://forums.freebsd.org/showthread.php?t=1195

Какую использовать команду зависит от типа устройства. Есть определенные нюансы с перезаписываемыми дисками.

burncd для ATA-устройств, а для USB-устройств cdrecord (из cdrtools) позволяет писать CD и DVD, burncd только CD. Обе команды работают только с образами файлов в формате ISO, некий набор файлов на диске посредством их напрямую записать не получится.

USB-устройство cd0 at umass-sim1 bus 1 scbus1 target 0 lun 0 cd0:  Removable CD-ROM SCSI-0 device cd0: 40.000MB/s transfers cd0: cd present [293197 x 2048 byte records]

Запись CD-R
Все файлы из текущей директории просто так не запишешь на CD-R с использованием burncd, утилита предполагает, что указанные файлы (а можно указать несколько) содержат в себе файловую систему ISO9660. Т.е. сначала нужно сделать образ диска, который и записывать.

Запись с закрытием сессии (без возможности дописывать данные на свободное место).  next writeable LBA 0 writing from file 7.2-RELEASE-i386-disc1.iso size 573734 KB written this track 573734 KB (100%) total 573734 KB fixating CD, please wait..  Fixate по какой-то причине достаточно долго выполняется; до нескольких минут. При этом interrupt storm не всегда наблюдается.
 * 1) burncd data 7.1-RELEASE-amd64-disc1.iso fixate

Запись CD-RW (перезаписываемые диски)
Прозрачно никто не умеет работать (?), надо вручную очищать диски.

При попытке записать данные на диск, которые уже содержит сессию, получим ошибку: "burncd: ioctl(CDRIOCNEXTWRITEABLEADDR): Input/output error" После очистки диска следующей командой, все нормально запишется: "blanking CD - 100 % done"
 * 1) burncd data 7.2-RELEASE-amd64-disc1.iso fixate
 * 1) burncd blank

DVDRW-привод
Привод с SATA-интерфейсом %dmesg | grep Optiarc "acd0: DVDR  at ata8-master SATA150" Привод с IDE-интерфейсом %dmesg | grep Optiarc "acd0: DVDR  at ata4-master UDMA66"

Создание ISO-образа на основе содержимого указанной директории: %mkisofs -o kafedra.iso /home/roxy/photos/kafedra/  65.44% done, estimate finish Fri Apr 3 07:57:39 2009 Total translation table size: 0 Total rockridge attributes bytes: 0<BR> Total directory bytes: 0<BR> Path table size(bytes): 10<BR> Max brk space used 3b524<BR> 7664 extents written (14 MB) </I>

Если это ATAPI (IDE) CD-ROM, единственный в системе (имя acd0), то команда будет выглядеть: С помощью её можно записать обычный CD-R. Хотя и на CDRW будет писать и ставиться с него будет, но какой-то он странный получается.
 * 1) burncd data 7.1-RELEASE-amd64-disc1.iso fixate

Для записи на чистый CD-RW нужно отформатировать его и пр. (?)

Если устройств несколько, то надо указать одно из них явно: <Blockquote>next writeable LBA 0<BR> writing from file kafedra.iso size 15328 KB<BR> written this track 15328 KB (100%) total 15328 KB<BR> fixating CD, please wait.. </I>
 * 1) burncd -f /dev/acd0 data kafedra.iso fixate


 * 1) cdcontrol eject

Проблема при fixate
В момент выполнения fixate на 1-3 минуты использование interrupt достигает 90%. По сути interrupt storm. На трёх машинах такое наблюдал при <Blockquote>CPU states: 3.1% user,  0.0% nice,  7.3% system, 87.5% interrupt,  2.1% idle </I>

Эмуляция SCSI - CAM
kldload atapicam Появляется устройство /dev/cd0 camcontrol devlist "<Optiarc DVD RW AD-5170A 1.11>   at scbus5 target 0 lun 0 (cd0,pass0)"

cdrecord

Создание ISO-образа диска

 * 1) dd if=/dev/acd0 of=diskcopy.iso bs=2048

По Ctrl+T можно следить за прогрессом load: 0.13 cmd: dd 2064 [physrd] 0.20u 3.50s 1% 760k<BR> 148957+0 records in<BR> 148957+0 records out<BR> 305063936 bytes transferred in 152.533828 secs (1999976 bytes/sec)<BR>