Этот совет я где-то нашёл, но детально не проверял. |
Как записать компакт-диск (CD-R/CD-RW/DVD-RW)?
Можно записывать диск из консоли, можно воспользоваться программой с графическим интерфейсом. Во втором случае обычно используются программы K3B или XCDroast, отличающиеся дружественным интерфейсом, посему вопросов по их использованию почти не возникает.
Запись из консоли немного сложнее.
Для начала определимся - можно писать "налету", а можно сначала собрать образ, а потом записать его.
При работе с cdrtools, чтобы записать компакт-диск с русскими названиями файлов, чтобы MS Windows видела русские буквы, нужно собрать образ следующим образом:
mkisofs -jcharset koi8-r /one_of_your_folder | cdrecord -опции
# или
mkisofs -r -jcharset koi8-r -o /path/to/image.iso /one_of_your_folder
cdrecord -опции /path/to/image.iso
Вышеприведенный пример работает для локали koi8-r. Если у вас иная локаль, подставьте свое название!
У mkisofs опция -o указывает файл, в который будет записан образ. Опция -r почти наверняка нужна, без нее диск будет читабелен только под MS Windows. Опция -J при использовании -jcharset не нужна. Параметр у опции -jcharset - это кодировка (набранная в нижнем регистре), в которой "хранятся" имена записываемых файлов. Список поддерживаемых кодировок можно узнать из вывода mkisofs -jcharset help.
После создания образа его нужно записать с помощью программы cdrecord. Например, так:
cdrecord dev=1,1,0 -dao -v image.iso
Если вы хотите писать налету, то делаете простой конвейер:
mkisofs -v -jcharset koi8-r -r /one_of_your_folder |
cdrecord -dao -v fs=6m speed=24 dev=1,1,0 -
Обратите внимание на "лишний" знак -. Он нужен для того, чтобы программа брала данные из потока, а не из конкретного файла.
Рекомендуем прочесть man cdrecord - там хорошее и подробное описание с объяснением команд.
Как сделать, чтобы mkisofs писал файлы вместе с папками, а не скидывал все в корень?
Чтобы mkisofs сохраняя структуру, например, папки images и htmls, выполните:
mkisofs -v -J -r -graft-points images=~/images htmls=~/htmls | cdrecord
Как смонтировать имидж в формате .img .bin .cue .nrg .ccd? Как сконвертировать имидж из формата .img, .bin .cue .nrg .ccd в iso9660?
Для начала давайте разберемся с форматами.
Формат .img понятие относительное, потому что в .img пишет и Nero и K3B, но в случае K3B это обычный iso9660 (часто такие файлы имеют расширения .iso).
Закрытые форматы .bin или .cue можно сконвертировать с помощью программы bchunk.
Формат .nrg можно сконвертировать с помощью программы nrg2iso.
Соответственно, чтобы подмонтировать такой образ, его нужно сконвертировать и дальше действовать как обычно.
Небольшое дополнение от Valerius:
Можно смонтировать nrg-образ вообще без никаких дополнительных утилит (высмыкнуто из mount-iso-image):
mount -t udf,iso9660 -o loop,ro,offset=307200 file.nrg /каталог/монтирования
Отсюда вытекает, что конвертацию nrg → iso можно вообще сделать тривиальным dd с опцией skip.
Образы с clonecd (ccd) можно преобразовать с помощью утилиты ccd2iso.
Как считать файлы с битого компакт-диска?
Если на диске фильм, например, и потеря некоторых данных не критична, можно снять образ с него вот такой командой:
dd if=/dev/cdrom of=~/cd-image.iso bs=4b conv=noerror
# Или подробнее,
dd if=/dev/cdrom of=~/cd.iso conv=noerror,sync
mkdir ~/iso
mount -o loop ~/cd.iso ~/iso
cp ~/iso/ruleznyi_film.avi ~
umount ~/iso
del cd.iso
mplayer -ao arts ~/ruleznyi_film.avi
Для надежности можно выставить скорость чтения с CD-ROM поменьше.
Как мне установить скорость CDROM?
Если это IDE-устройство и не используется ide-scsi (в ядрах 2.4 для записи CDR/RW), то можно пользоваться hdparm (команда -E):
hdparm -E 8 /dev/cdrom
Аргумент команды -E - желаемая скорость (в данном случае 8x)
Вместо hdparm можно использовать eject:
eject -x 8 /dev/cdrom
Если CDROM SCSI-устройство или используется ide-scsi, то hdparm не сработает. В этом случае можно попробовать программу cdspeed. Она работает с любым CDROM (IDE/SCSI), но часто сбрасывается при remount. :( Использование:
cdspeed -s 8
Cкорость 8х, устройство по умолчанию /dev/cdrom, если устройство, например, /dev/hdc, то:
cdspeed -s 8 -d /dev/hdc
Появились сообщения о том, что программа не работает с приводами, подключенными по USB.