Команда cdrecord

Команда cdrecord позволяет задействовать утилиту wodim, предназначенную для записи оптических дисков. Хотя данная утилита формально и способна записывать DVD-диски, она главным образом используется для записи компакт-дисков (CD-R и CD-RW). Она может использоваться как для создания CD с данными на основе ISO-файлов образов дисков, так и для создания аудио-CD на основе наборов звуковых файлов. Для подготовки ISO-файлов пользователи могут использовать утилиту mkisofs, для подготовки звуковых файлов — утилиты mpg123 и sox. Утилита осуществляет непосредственный доступ к аппаратному обеспечению компьютера, поэтому для ее использования необходимы права пользователя root.

Примечание: имя cdrecord принадлежит оригинальной утилите для записи компакт-дисков от Йорга Шиллинга. Ввиду использования автором несовместимых лицензий для ее исходного кода, был создан форк проекта под названием cdrkit с утилитой wodim, заменяющей собой cdrecord.

Базовый синтаксис команды выглядит следующим образом:

# cdrecord [параметры] имя-iso-файла

Команда может принимать огромное количество параметров и имя ISO-файла для записи на оптический диск. Актуальными для обычного пользователя параметрами являются параметр -v, позволяющий выводить максимум отладочных сообщений, параметр -eject для открытия лотка привода по окончании операции записи, параметр speed= для указания скорости записи, параметр dev= для указания пути к файлу устройства привода (обычно /dev/sr0), а также параметр -blank= (обычно используются режимы fast и all) для форматирования многократно перезаписываемых дисков. Необязательными, но полезными параметрами являются такие параметры, как параметр -dao, позволяющий вести запись в режиме disk-at-once, параметр -tao, позволяющий вести запись в режиме tack-at-once, параметр driveropts=burnfree для задействования технологии Burnfree, предотвращающей порчу дисков, а также параметр -atip, позволяющий получить информацию о вставленном в привод диске. Возможность использования параметров -dao, -tao и driveropts=burnfree определяется параметрами привода, с которыми можно ознакомиться путем использования параметра -checkdrive. Ну и для записи аудио-CD предназначен отдельный параметр -audio, причем иногда также может потребоваться параметр -pad, позволяющий выдерживать соответствующую стандарту длину треков.

Примечание: нередко в старых руководствах по работе с cdrecord встречаются советы относительно обязательного использования параметра -scanbus для определения идентификатора шины привода; на сегодня он не актуален — достаточно указать путь к файлу устройства привода.

Установка утилит

В первую очередь вам придется установить рассматриваемую утилиту, а также дополнительные утилиты для записи аудио-CD; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды.

Команды для Linux Mint и Ubuntu

# apt install wodim
# apt install mpg321
# apt install sox

Команда для Fedora Workstation

# dnf install wodim
# dnf install mpg321
# dnf install sox

Примеры использования

Определение параметров привода

Для определения параметров привода следует использовать параметр -checkdrive, а также параметр dev= с именем файла устройства привода оптических дисков. В том случае, если на диске было что-либо записано, его файловую систему следует предварительно размонтировать с помощью утилиты umount:

# umount /dev/sr0
# cdrecord -checkdrive dev=/dev/sr0
Device type : Removable CD-ROM
Version        : 5
Response Format: 2
Capabilities   :
Vendor_info    : 'ASUS '
Identification : 'DRW-24B3ST '
Revision       : '1.00'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R

Любой пользователь без труда может обнаружить в данном выводе информацию о производителе привода (Vendor_info : 'ASUS '), его модели (Identification : 'DRW-24B3ST '), версии прошивки (Revision : '1.00'), поддерживаемых технологиях (Driver flags : MMC-3 SWABAUDIO BURNFREE FORCESPEED), а также поддерживаемых режимах записи (Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R). На основе вывода несложно сделать заключение о том, что параметры -tao и driveropts=burnfree будут поддерживаться, а параметр -dao — не будет.

Форматирование диска

Для форматирования компакт-диска для многократной перезаписи (типа CD-RW) достаточно использовать утилиту с параметром -blank= и параметром dev= с именем файла устройства привода оптических дисков. Наиболее разумным является использование типа форматирования all, хотя использование типа форматирования fast также допустимо. В том случае, если на диске было что-либо записано, его файловую систему следует предварительно размонтировать с помощью утилиты umount:

# umount /dev/sr0
# cdrecord -blank=all dev=/dev/sr0
Device type : Removable CD-ROM
Version        : 5
Response Format: 2
Capabilities   :
Vendor_info    : 'ASUS '
Identification : 'DRW-24B3ST '
Revision       : '1.00'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Speed set to 1765 KB/s
Starting to write CD/DVD at speed 10.0 in real BLANK mode for single session.
Last chance to quit, starting real write in 0 seconds. Operation starts.
# eject /dev/sr0

Я не использовал параметр -v для вывода максимального объема диагностических сообщений. Завершение процесса форматирования несложно обнаружить — завершится работа утилиты (будет выведено приглашение командной оболочки # или $), а также погаснет индикатор работы, расположенный непосредственно на приводе.

По завершению операции следует использовать команду eject для открытия лотка привода или же, что еще удобнее, передать параметр -eject утилите для того, чтобы она открыла лоток самостоятельно.

В результате система обнаружит в приводе чистый диск.

Cdrecord Blank Cd

Запись данных на диск

Для записи данных на диск следует в первую очередь подготовить файл образа диска (ISO-файл). Если у вас уже есть готовый ISO-файл (к примеру, с файлами ОС), вы можете записывать его на диск, если нет — вы можете воспользоваться утилитой mkisofs. Она вызывается следующим образом:

$ mkisofs -r -J -V "Метка тома" "директория-с-файлами-для-записи"/

Вы должны будете собрать предназначенные для записи файлы в отдельной директории, после чего воспользоваться рассматриваемой утилитой для создания ISO-файла, например:

$ mkisofs -r -J -V "Stefan Großmann" -o image.iso "Stefan Großmann - 33 Free Tracks"/
I: -input-charset not specified, using utf-8 (detected in locale settings)

9.09% done, estimate finish Wed May 10 19:27:36 2023
18.18% done, estimate finish Wed May 10 19:27:36 2023
27.26% done, estimate finish Wed May 10 19:27:36 2023
36.36% done, estimate finish Wed May 10 19:27:36 2023
45.44% done, estimate finish Wed May 10 19:27:36 2023
54.52% done, estimate finish Wed May 10 19:27:36 2023
63.62% done, estimate finish Wed May 10 19:27:36 2023
72.69% done, estimate finish Wed May 10 19:27:36 2023
81.76% done, estimate finish Wed May 10 19:27:36 2023
90.86% done, estimate finish Wed May 10 19:27:36 2023
Total translation table size: 0
Total rockridge attributes bytes: 4352
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
55040 extents written (107 MB)

В результате будет создан файл образа диска с файлами из указанной директории с заданной меткой тома и именем image.iso.

Для записи файла образа (ISO-файла) на оптический диск достаточно использовать параметр speed= для установки скорости записи, параметр dev= для передачи пути к файлу устройства привода для оптических дисков, и, разумеется, передать утилите имя самого ISO-файла для записи:

# cdrecord speed=4 dev=/dev/sr0 image.iso
wodim: No write mode specified.
wodim: Assuming -tao mode.
wodim: Future versions of wodim may have different drive dependent defaults.
Device type : Removable CD-ROM
Version        : 5
Response Format: 2
Capabilities   :
Vendor_info    : 'ASUS '
Identification : 'DRW-24B3ST '
Revision       : '1.00'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Speed set to 1765 KB/s
Starting to write CD/DVD at speed 10.0 in real TAO mode for single session.
Last chance to quit, starting real write in 0 seconds. Operation starts.
Track 01: Total bytes read/written: 112721920/112721920 (55040 sectors).
# eject /dev/sr0

По окончании записи утилита выведет количество записанных на оптический носитель байтов данных, а также количество занятых для их хранения секторов. Диск корректно определится системой.

Cdrecord Data Cd

Запись аудио-CD

Для записи аудио-CD в первую очередь следует подготовить звуковые файлы. Они должны быть преобразованы в специальный формат CDR перед записью на диск.

Для преобразования файлов формата Mp3 в этот формат используется утилита mpg123:

$ mpg123 --cdr - "имя-файла.mp3" > "имя-файла.cdr"

Для преобразования файлов форматов wav и Ogg/Vorbis в этот формат используется утилита sox:

$ sox "имя-файла.mp3" "имя-файла.cdr"

Для примера возьмем 8 файлов — 5 из них преобразованы из формата Ogg/Vorbis с помощью утилиты SoX, 3 — из формата MP3 с помощью утилиты mpg123.

$ sox "Stefan Großmann - 33 Free Tracks - 01 At Night.ogg" "track1.cdr"
$ sox "Stefan Großmann - 33 Free Tracks - 02 Beautiful Day.ogg" "track2.cdr"
$ sox "Stefan Großmann - 33 Free Tracks - 03 Blithe.ogg" "track3.cdr"
$ sox "Stefan Großmann - 33 Free Tracks - 04 Carefree.ogg" "track4.cdr"
$ sox "Stefan Großmann - 33 Free Tracks - 05 Continuum.ogg" "track5.cdr"
$ mpg123 --cdr - "01 statusq - 3 am West End.mp3" > "track6.cdr"
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.

[4:51] Decoding of 01 statusq - 3 am West End.mp3 finished.
$ mpg123 --cdr - "02 statusq - All in a Silver Line.mp3" > "track7.cdr"
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.

[3:26] Decoding of 02 statusq - All in a Silver Line.mp3 finished.
$ mpg123 --cdr - "03 statusq - Cheerleader's Manual.mp3" > "track8.cdr"
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.

[3:45] Decoding of 03 statusq - Cheerleader's Manual.mp3 finished.

Далее нужно передать утилите скорость записи с помощью параметра speed=, имя файла устройства привода оптических дисков с помощью параметра dev=, указание на необходимость записи аудио-CD с помощью параметра -audio, а также список звуковых файлов формата CDR. Обратите внимание на то, что в случае преобразования файлов из формата MP3 наверняка не было соблюдено условие кратности размера файла 2352 байтам, поэтому дополнительно следует использовать параметр -pad, благодаря которому утилита дополнит необходимый хронометраж треков тишиной.

# cdrecord speed=4 dev=/dev/sr0 -audio -pad track1.cdr track2.cdr track3.cdr track4.cdr track5.cdr track6.cdr track7.cdr track8.cdr
wodim: No write mode specified.
wodim: Assuming -tao mode.
wodim: Future versions of wodim may have different drive dependent defaults.
Device type : Removable CD-ROM
Version        : 5
Response Format: 2
Capabilities   :
Vendor_info    : 'ASUS '
Identification : 'DRW-24B3ST '
Revision       : '1.00'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Speed set to 1765 KB/s
Starting to write CD/DVD at speed 10.0 in real TAO mode for single session.
Last chance to quit, starting real write in 0 seconds. Operation starts.
Track 01: Total bytes read/written: 13502832/13502832 (5741 sectors).
Track 02: Total bytes read/written: 35522256/35522256 (15103 sectors).
Track 03: Total bytes read/written: 20102544/20102544 (8547 sectors).
Track 04: Total bytes read/written: 20610576/20610576 (8763 sectors).
Track 05: Total bytes read/written: 23294208/23294208 (9904 sectors).

WARNING: padding up to secsize.
Track 06: Total bytes read/written: 51360768/51362976 (21838 sectors).

WARNING: padding up to secsize.
Track 07: Total bytes read/written: 36412416/36413664 (15482 sectors).

WARNING: padding up to secsize.
Track 08: Total bytes read/written: 39697920/39699408 (16879 sectors).
# eject /dev/sr0

В результате было записано 8 треков. Длина 3 последних треков была скорректирована силами утилиты. Диск корректно определяется системой.

Cdrecord Audio Cd

Кроме того, его без проблем можно прослушать с помощью приложения Rhythmbox.

Cdrecord Audio Cd Rhythmbox

Получение информации о диске

Для получения информации о вставленном в привод записываемом диске следует использовать параметр -atip. Если на диске имеются какие-либо данные, соответствующая файловая система должна быть предварительно размонтирована:

# umount /dev/sr0
# cdrecord -atip dev=/dev/sr0
Device type : Removable CD-ROM
Version        : 5
Response Format: 2
Capabilities   :
Vendor_info    : 'ASUS '
Identification : 'DRW-24B3ST '
Revision       : '1.00'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
ATIP info from disk:
  Indicated writing power: 3
  Reference speed: 6
  Is not unrestricted
  Is erasable
  Disk sub type: High speed Rewritable (CAV) media (1)
  ATIP start of lead in:  -11745 (97:25/30)
  ATIP start of lead out: 359848 (79:59/73)
  1T speed low:  4 1T speed high: 10
  2T speed low:  4 2T speed high:  0 (reserved val 6)
  power mult factor: 1 5
  recommended erase/write power: 5
  A1 values: 24 1A D8
  A2 values: 26 B2 4A
Disk type:    Phase change
Manuf. index: 40
Manufacturer: INFODISC Technology Co., Ltd.

Полезной информацией из вывода является диапазон скоростей записи 4x - 10x (1T speed low: 4 1T speed high: 10), а также информация о производителе (Manufacturer: INFODISC Technology Co., Ltd.).