Cdrecord
используется для записи цифровых или музыкальных компакт дисков
на пишущие приводы компакт-дисков (Orange Book CD-Recorder).
устройство
определяет параметры
scsibus/target/lun
привода. Связь с
SunOS
сделана через общий драйвер SCSI
scg.
Остальные операционные системы используют библиотеку, эмулирующую
этот драйвер. В этом случае синтаксис такой:
dev=scsibus,target,lun
или
dev=target,lun.
В последнем случае привод должен быть присоединен к шине SCSI
компьютера по умолчанию.
Scsibus,
target
и
lun
должны быть целыми числами.
Некоторые операционные системы или реализации транспортов SCSI
могут дополнительно требовать указания имени файла устройства.
В этом случае синтаксис для устройства будет таким:
dev=devicename:scsibus,target,lun
или
dev=devicename:target,lun.
Если имя указываемого устройства в системе явно указывает на
одно устройство SCSI, то может быть использована краткая форма
dev=devicename:@
или
dev=devicename:@,lun
вместо длинной команды
dev=devicename:scsibus,target,lun.
Для доступа к удаленным устройствам SCSI необходимо предварять имя
устройства SCSI индикатором удаленного устройства. Таким индикатором
может быть либо
REMOTE:user@host:
либо
.BIREMOTE:host:
Корректным именем удаленного устройства SCSI может быть:
REMOTE:user@host:
для разрешения удаленного сканирования шины SCSI, или
REMOTE:user@host:1,0,0
для доступа к устройству SCSI на
host
присоединенному к шине SCSI bus # 1,target 0 lun 0.
Для создания
cdrecord
портируемым на все платформы UNIX , синтаксис
dev=devicename:scsibus,target,lun
более предпочтителен, так как он скрывает имя устройства,
специфичное для ОС, от пользователя. Другие ОС могут и не
поддерживать методы определения имени устройства, либо
не иметь метода переопределения
scsibus,target,lun.
Scsibus
Шина 0 является шиной SCSI по умолчанию на машине. Для более подробной
информации смотрите сообщения при загрузке или смотрите в
/var/log/messages
информацию о настройках SCSI вашей машины.
Если у вас есть проблемы с определением используемых значений
scsibus,target,lun,
то попробуйте использовать опцию
-scanbus
команды
cdrecord
описанную ниже.
Если существует файл /etc/cdrecord.conf, то параметром для опции
dev=
может быть метка имени привода, указанная в файле (смотрите раздел ФАЙЛЫ).
На совместимых с
SVr4
системах
cdrecord
использует класс реального времени для получения наивысшего возможного
приоритета (выше всех процессов ядра).
На системах с
POSIX real time scheduling
cdrecord также использует распределение реального времени, но может
и не получить приоритет выше, чем все процессы ядра.
В режиме
Track At Once
каждый
трек
соответствует одному файлу, содержащему подготовленные данные для
этого трека. Если аргументом является
`-',
то для трека используется стандартный ввод.
Только один трек может быть принят с
stdin.
ОБЩИЕ ОПЦИИ
Общие опции должны указываться до опций или названий имен файлов для треков.
-version
Выдать информацию о версии и завершить работу.
-v
Повысить уровень вывода информации. Используется, например, для
показа продвижения процесса записи (отображения процентов записи).
-V
Повышение уровня выводимой информации относительно транспорта
команды SCSI. Помогает при решении проблем с приводом,
возникающих во время процесса записи. Если вы получаете непонятные
сообщения об ошибках, то установите этот флаг для получения более
подробных сообщений.
-VV
Дополнительно показывает содержимое буфера данных.
Использование
-V
или
-VV
замедляет процесс и может быть причиной опустошения буфера.
debug=#, -d
Устанавливает значение отладки в # (при debug=#) или увеличивает
уровень на единицу (при -d). Если вы укажите
-dd,
то это будет соответствовать
debug=2.
Это может помочь при поиске проблем во время использования драйвера
для libscg, или при указании некорректных размеров или типов секторов.
Использование
-debug
замедляет процесс и может быть причиной опустошения буфера.
kdebug=#, kd=#
Указывает
scg-driver
на изменение значения отладки ядра во время работы команд SCSI.
-silent, -s
Не выводить данные о статусе для команд SCSI с ошибками.
-force
Принудительно продолжать работу, даже при наличии некоторых ошибок.
Эта опция пока позволяет реализовывать несколько методов,
позволяющих очищать плохие (сбойные) перезаписываемые диски RW.
-dummy
Привод будет выполнять все шаги процесса записи, но с выключенным лазером.
Рекомендуется выполнить несколько таких тестов перед действительной
записью на компакт-диск, если неизвестны возможности и ресурсы системы.
-dao
Определяет режим
Disk At Once
(весь-диск-за-один-раз).
Работает только с приводами MMC, поддерживающими режим
Session At Once
(запись-сессии-за-один-раз).
-multi
Позволяет записывать много-сессионные диски. Этот флаг должен
присутствовать на всех сессиях записи много-сессионных дисков,
за исключением последней (завершающей) сессии, закрывающей диск.
Запись будет производиться таким образом, что в дальнейшем привод
сможет записать дополнительный трек. Это достигается созданием
таблицы содержимого диска TOC со ссылкой на следующую за треком область.
Носители, созданные таким образом, не на 100% совместимы с фабрично
изготовляемыми дисками (за исключением CDplus). Используйте эту
опция только для создания много-сессионных дисков. Если указана
эта опция, то тип трека по умолчанию станет типом
CD-ROM XA mode 2.
Приводы
Sony
не имеют фабричной поддержки для
CD-ROM XA mode 2.
Поэтому вам придется указывать опцию
-data
с этими приводами для создания много-сессионных дисков. Так как
cdrecord не имеет кодека для преобразования секторов данных
в звуковые сектора, то вам придется принудительно указать сектора
CD-ROM ,
указав опцию
-data ,
если вы хотите записать много-сессионный диск в режиме DAO/SAO.
Не все приводы позволяют создавать много-сессионные диски в режиме DAO/SAO.
-msinfo
Получает информацию о много-сессионных дисках в форме, подходящей для
mkisofs-1.10
или более поздних версий.
Использовать эту опцию имеет смысл только на дисках, содержащих по меньшей
мере одну закрытую сессию и доступном для дополнения (не закрытом окончательно).
Некоторые приводы выводят сообщение об ошибках, если вы попытаетесь получить
информацию о много-сессионном диске для диска, не подходящем по смыслу.
-toc
Получает и выводит таблицу содержания или PMA для компакт диска.
С этой опцией
cdrecord
будет работать и с приводами CD-R, и с приводами CD-ROM.
-atip
Получает и выводит информацию ATIP (absolute Time in Pregroove) о носителях
CD-R или CD-RW.
С этой опцией,
cdrecord
будет пытаться получить информацию ATIP. Если в действительности приводы не
поддерживают считывание информации ATIP, то может получиться так, что вам
выведется уменьшенный набор данных, или вообще ничего не покажется. Только
ограниченное количество приводом, совместимых с MMC поддерживает
чтение информации ATIP.
Если
cdrecord
может получить время начала записи lead-in для первой сессии, то он попытается
декодировать его и вывести информацию о производителе носителя.
-fix
Диск будет просто завершен (fix), то есть будет записана TOC для CD-R.
Это может использоваться в случаях, если по каким-то причинам диск был записан,
но не завершен. Эта опция сейчас не работает со старыми приводами TEAC
(CD-R50S и CD-R55S).
-nofix
Не завершать диск после записи треков. Может использоваться для поэтапного
создания музыкальных дисков. Незавершенный диск не сможет использоваться в
приводах "не-CD-RW", но существует несколько типов аудио CD-плейеров,
умеющих понимать и воспроизводить такие диски.
-waiti
Ожидать, что появятся доступные данные на стандартном входе, перед попыткой
активации драйвера SCSI. Это позволяет
cdrecord
считывать данные со входа даже при записи дополнительных сессий на
много-сессионный диск. При записи другой сессии на много-сессионный диск
mkisofs
требует прочтения предыдущей сессии с устройства перед записью результата
своей работы. Это может быть сделано, если
cdrecord
одновременно откроет драйвер SCSI.
-load
Загружает носитель в привод и завершает работу. Работает только при наличии
механизма загрузки, но может быть полезным при использовании переносчика
дисков Kodak.
-eject
Выгружает носитель после завершения работы. Некоторым устройствам (например
Philips) требуется явное указание команды на извлечение носителя после
записи. На таких приводах создание настоящего диска сразу
после выполнения тестового создания -dummy не сработает.
speed=#
Устанавливает фактор скорости процесса записи в #.
# является целым числом, представляя множитель для скорости воспроизведения
музыкальных дисков (то есть около 150Кб/с для CD-ROM и около 172Кб/с для CD-Audio).
Если не указана опция
speed ,
то
cdrecord
попытается получить значение скорости из переменной окружения
CDR_SPEED .
Если ваш привод выводит ошибки при указании
speed=2
или
speed=4,
то попытайтесь указать опцию
speed=0.
blank=type
Очистка диска CD-RW и завершение работы, или очистка диска CD-RW перед записью.
Тип очистки может быть таким:
help
Показать список возможных типов очистки.
all
Очистить весь диск полностью. Это может занять длительное время.
fast
Быстро и минимально зачистить диск.
Это достигается уничтожением только записей PMA, TOC и pregap.
track
Очистить только трек.
unreserve
Разрезервировать зарезервированный трек.
trtail
Очистить конец трека.
unclose
Открыть последнюю (закрытую) сессию.
session
Очистить последнюю сессию.
Если опции используются вместе с флагом
-force ,
то можно будет очистить диски CD-RW, никаким другим образом больше не очищаемые.
Заметим, что нужно указать
blank=all
так-как некоторые приводы не будут продолжать работу с некоторыми типами плохих
дисков CD-RW. Заметим также, что
cdecord
пытается работать максимально эффективно с установленным флагом
-force ,
но в конечном итоге успешная очистка диска зависит от производителя и параметров
привода.
fs=#
Установить размер fifo (кольцевого буфера) в #.
Можно использовать метод, как и в
dd(1),
sdd(1)
или
star(1).
Число, представляющее размер, берется в байтах, если не указано другое.
Если за числом указан символ `b', `k', `m', `s' или `f', то размер умножается
на 512, 1024, 1024*1024, 2048 или 2352. Если размер состоит из чисел,
разделенных `x' или `*', то берется число, равное их произведению.
Таким образом,
fs=10x63k
будет определять размер fifo в 630 килобайт.
Размер, указанный в аргументе
fs=
включает в себя разделяемую память, требуемую для администрирования. По меньшей
мере это одна страница памяти.
Если не указана опция
fs=,
то
cdrecord
будет пытаться получить размер fifo из переменной окружения
CDR_FIFOSIZE .
В текущий момент размер fifo по умолчанию равен 4 Мб.
fifo используются для ускорения процесса записи.
Это позволяет перенаправлять данные из
mkisofs
прямо в
cdrecord.
Если fifo активно и используется перенаправление из
mkisofs
в
cdrecord
при создании дисков, то
cdrecord
не будет выполнять никаких действий с диском, пока
mkisofs
не закончит свою работу.
Рекомендуемый размер буфера fifo находится в диапазоне от
4 до 32 мегабайтов. Для простоты определения размера буфера fifo можно
устанавливать его в размер внутреннего буфера привода CD-ROM, но не больше,
чем половина оперативной памяти компьютера. Если размер буфера fifo слишком
велик, то статистика определит низкий уровень заполненности буфера и
выведет ошибку. Неразумно использовать слишком много пространства для fifo.
Если требуется более 8 Мб для записи диска на не загруженной работой
машине, то либо существуют проблемы с настройками оборудования, либо у вас
некорректны программные настройки. Архитектура sun4c (например, Sparcstation-2)
имеет разбивку страниц MNY для элементов таблицы по 16Мб на процесс.
Поэтому использование более 14 Мб для fifo приведет к тому, что операционная
система будет больше времени уделять постоянной перезагрузке таблиц MMU.
В новых машинах от Sun, не имеющих таблиц MNU, нет таких проблем.
Для PC-совместимых машин подобной информации нет.
Если вы наблюдаете проблемы с незаполнением буфера, или видите
fifo empty count,
равное нулю, то у вас проблемы с оборудованием. В этом случае
важен размер буфера fifo.
dev=target
Устанавливает устройство SCSI для записи, смотри примечания выше.
Типичным определением устройства будет являться
dev=6,0
.
Если вместе с числовыми определениями привода должно быть передано имя файла,
то оно будет зависеть от реализации. Корректное имя файла в этом случае
может быть найдено в руководстве по операционной системе.
На системах
FreeBSD
без поддержки
CAM
вам понадобится использовать управляющее устройство (например,
/dev/rcd0.ctl).
В этом случае корректными параметрами устройства могут быть
dev=/dev/rcd0.ctl:@
.
В Linux диски, присоединенные к адаптеру параллельного порта, размечены по
виртуальной шине SCSI. Разные адаптеры соответствуют разным точкам назначения
на этой виртуальной шине SCSI.
Если не указана опция
dev
то
cdrecord
попытается получить имя устройства из переменной окружения
CDR_DEVICE.
Если аргумент к опции
dev=
не содержит символов ',', '/', '@' or ':', то он интерпретируется как метка
имени, которую можно найти в файле /etc/cdrecord.conf (смотрите раздел ФАЙЛЫ).
timeout=#
Устанавливает таймер окончания действия команд SCSI по умолчанию в
# секунд.
Таймер окончания действия команд SCSI по умолчанию является максимально
допустимым временем для отправки команд SCSI.
Если команда SCSI выводит ошибку окончания таймера, то возможно стоит
увеличить значение таймера окончания действия команд SCSI.
Если команда корректно работает с увеличенным таймером, то сообщите
об этой ситуации автору программы, как об ошибке.
Если не указана опция
timeout
то по умолчанию используется значение таймера в 40 секунд.
driver=name
Позволяет использовать устройство name, указанное пользователем.
Для получения списка возможных драйверов используйте команду
driver=help.
Смысл этой опции заключается в том, что она позволяет пользователю использовать
cdrecord
с приводами, похожими на поддерживаемые, но не сразу распознаваемые
cdrecord.
Используйте эту опцию максимально осторожно. Если будет использован
некорректный тип привода, то возможно создание поврежденных дисков.
Как минимум могут возникнуть проблемы с использованием опций
-speed
или
-dummy.
В списке существуют две особых записи драйвера:
cdr_simul
и
dvd_simul.
Эти записи предназначены для проведения проверочных тестов
на любой скорости, или тестов для приводом, не поддерживающих опцию
-dummy.
Виртуальные драйвера реализуют привод с буфером в 1Мб, изменяемый
через переменную окружения
CDR_SIMUL_BUFSIZE.
Виртуальный драйвер корректно эмулирует даже состояние внезапного опустошения
буфера. Если присутствует опция
-dummy
то симуляция записи не прерывается в случае опустошения буфера.
driveropts=option list
Определяет опции, специфичные для драйвера. Опции задаются списком,
разделяются запятыми. Для получения списка корректных опций используйте
driveropts=help
вместе с опцией
-checkdrive .
На текущий момент только опция
burnproof
реализована с поддержкой записи "Buffer Underrun Proof" с
приводами, использующих технологию Sanyo BURN-Proof.
-checkdrive
Проверка привода на наличие диска внутри и завершение работы.
Если приводя является известным, то
cdrecord
завершит работу с кодом 0.
-prcap
Выводит список возможностей для приводом, совместимых с SCSI-3/mmc,
получаемый со страницы режимов 0x2A. Значения
kB
обозначают 1000 байтов (килобайт), значения
KB
обозначают 1024 байтов (Килобайт).
-inq
Сделать запрос на привод, вывести информацию и завершить работу.
-scanbus
Просканировать все устройства SCSI на всех шинах SCSI и вывести итоговую
информацию. Эта опция полезна для обнаружения неизвестного адреса привода
SCSI в системе. Выводимые как метки числа рассчитываются, как:
bus * 100 + target
-reset
Попытка сбросить шину SCSI, на которой расположен привод. Не работает на
некоторых системах.
-ignsize
Игнорировать известный размер носителя. Используйте опцию максимально осторожно,
опция предназначена только для отладки, она не предназначена для записи дисков
размером больше номинальной емкости.
-useinfo
Использовать файлы *.inf для переопределения параметров музыки.
Если используется эта опция, то информация размера pregap считывается из
файлов *.inf, ассоциированного с файлом, содержащим аудио данные для трека.
defpregap=#
Устанавливает размер pre-gap по умолчанию для всех треков, исключая первый.
Эта опция имеет значение только с приводами TEAC при создании дисков методом
track-at-once без двухсекундной задержки перед каждым треком.
Эта опцию в будущем, возможно, уберут.
-packet
Устанавливает режим пакетной записи
Packet .
Это экспериментальный параметр.
pktsize=#
Устанавливает размер пакета в #, принудительно управляя режимом пакетной записи.
Это экспериментальный параметр.
-noclose
Не закрывать текущий трек, полезно только в режиме пакетной записи.
Это экспериментальный параметр.
mcn=med_cat_nr
Определить номер каталога
Media Catalog Number
диска в
med_cat_nr.
ОПЦИИ ТРЕКОВ
Опции трека могут быть указаны вместе с именами файлов треков.
isrc=ISRC_number
Определить число
International Standard Recording Number
для следующего трека в
ISRC_number.
index=list
Определить индексный список для следующего трека.
Список является перечислением номеров, разделяемых запятой.
Первый элемент в списке должен содержать 0, следующие номера
должны увеличиваться (эти числа обозначают 1/75 часть секунды) и
обозначать точки начала собственно индексов. Индексный список в виде:
0,7500,15000 определяет первый индекс в начало трека, второй - в 100 секундах
от начала трека, третий - в 200 секундах от начала трека.
-audio
Если есть этот флаг, то все треки за ним записываются в формате
CD-DA
(похожем на Red Book).
Файлы с данными для этих треков должны содержать 16-битный цифровой
стереозвук качеством в 44100 сэмплов/сек.
Порядок байтов должен быть следующим: MSB левый, LSB правый,
MSB правый, LSB правый, MSB левый и т.д. Размер трек должен быть кратен
2352 байтам. Нельзя размещать основной образ музыкального трека на
неформатированном диске , так как данные будут считываться блоками,
кратными 2152 байтам во время процесса записи.
Если файл имеет расширение
.au
или
.wav
то предполагается, что это файл в формате структурированных аудио данных.
Cdrecord
предполагает, что в этом случае файл является звуковым файлом
Sun или файлом .wav от Microsoft и извлекает аудио данные из файлов,
пропуская начальные заголовки. Во всех других случаях cdrecord будет
работать корректно только если в файлах нет начальных (не относящихся
к музыке) заголовков.
Так как почти все структурированные аудио файлы не имеют размер, кратный
целому числу блоков (по 1/75 секунды), то часто требуется указывать
еще и опцию
-pad.
cdrecord
распознает, что данные в файлах .WAV хранятся в порядке байтов Intel
(little-endian), и будет автоматически менять местами байты в данных,
если проигрыватель требует данные в порядке байтов big-endian.
Cdrecord
откажется обрабатывать любые аудио файлы, не соответствующие требованиям
Red Book для 16-битного стереозвука в кодировке PCM качеством 44100 сэмплов/с.
Использование других форматов структурированных аудио данных в качестве
входящих данных для
cdrecord
срабатывает только если данные соответствуют структурам, описанным выше
(данные raw pcm в порядке байтов big-endian).
Однако, если форматы данных содержат заголовок, то в начале трека вы
услышите щелчок.
Если не указаны ни
-data
ни
-audio,
то
cdrecord
по умолчанию устанавливает опцию
-audio
для всех имен файлов, оканчивающихся на
.au
или на
.wav
и устанавливает опцию
-data
для всех остальных файлов.
-swab
Если присутствует этот флаг, то аудио данные считаются в порядке байтов
little-endian. Некоторые типы приводов, например Yamaha, Sony и новые
приводы SCSI-3/mmc требуют аудио данные в порядке байт little-endian,
в то время как другие приводы требуют представления аудио данных в порядке
байтов big-endian (в сетевом порядке), обычно используемого протоколом SCSI.
Cdrecord
распознает требуемый приводу формат аудио данных (big- или little-endian),
и соответственно предоставляет ему данные в нужном формате.
Вам нужно всего лишь указать флаг
-swab
если ваш поток данных имеет порядок байтов Intel (little-endian).
Заметим, что подробный вывод
cdrecord
покажет вам потребность в смене порядка байтов входящих данных.
Cdrecord
не покажет вам, был ли флаг
-swab
применен для трека.
-data
Если указан этот флаг, то все последующие треки записываются в формате
CD-ROM mode 1
(Yellow Book). Данные кратны 2048 байтам.
Файл с треком данных должен содержать образ файловой системы в формате
ISO-9660 или Rock Ridge
(смотрите руководство по
mkisofs
для более подробной информации). Если трек данных является образом файловой системы
ufs
то размер ее части должен быть установлен в 2Кб или более для разрешения приводам
с размером сектора 2Кб считывать данные.
По умолчанию считается определенным флаг -data, если только не указаны другие флаги.
Если не указаны ни
-data,ни-audio,тоcdrecord
по умолчанию определяет флаг
-audio
для всех имен файлов, имеющих расширение
.au
или
.wav
и определяет флаг
-data
для всех остальных файлов.
-mode2
Если указан этот флаг, то все следующие треки будут записаны в формате
CD-ROM mode 2 .
Данные кратны 2048 байтам.
-xa1
Если указан этот флаг, то все следующие треки будут записаны в формате
CD-ROM XA mode 1 .
Данные кратны 2048 байтам.
-xa2
Если указан этот флаг, то все следующие треки будут записаны в формате
CD-ROM XA mode 2 .
Данные кратны 2048 байтам.
-cdi
Если указан этот флаг, то все следующие треки будут записаны в формате
CDI .
Данные кратны 2048 байтам.
-isosize
Использовать размер файловой системы
ISO-9660
в качестве размера следующего трека. Эта опция необходима, если вы
хотите считать образ трека с неформатированного раздела диска или с
исходного образа на компакт диске. В первом случае опция
-isosize
нужна для ограничения размера диска до размера файловой системы ISO.
Во втором случае опция
-isosize
нужна для предотвращения чтения программой
cdrecord
двух блоков, добавляемых каждый приводом в режиме track-at-once.
Эти два блока не могут быть считаны и могут привести к ошибке незаполнения
буфера, что приведет к созданию некорректной копии диска.
Не используйте опцию, если
cdrecord
считывает данные трека с
stdin.
Эта опция в данный момент не может использоваться для определения размера
файловой системы, если используется режим записи нескольких треков.
-pad
Если трек является обычным треком данных, то в конец его и всех последующих
секторов будут добавлены 15 секторов, заполненные нулями.
В этом случае опция
-pad
переопределяется опцией
padsize=.
Однако, она будет оставаться эквивалентом для
padsize=15s.
Если опция
-pad
ссылается на музыкальный трек, то
cdrecord
дополнит аудио данные до размера, кратного 2352 байтам.
Дополнение аудио данных выполняется двоичными нулями, что соответствует
в музыкальном треке полной тишине.
-pad
имеет силу, пока не отменено опцией
-nopad.
padsize=#
Устанавливает размер данных, добавляемых к следующему треку в #.
Противоположно по поведению опции
-pad,
значения для
padsize=
сбрасывается в ноль для каждого нового трека.
Смотрите опцию
fs=
для списка возможных аргументов.
Используйте эту опцию, если ваш привод не умеет считывать последние сектора
треков, или если вы хотите считывать диск на системе
Linux
с файловой системой ISO-9660 с ошибкой упреждающего чтения.
Если для трека данных используется пустой файл, то эта опция может использоваться
для создания диска, полностью заполненного дополнением.
-nopad
Не дополнять последующие треки - по умолчанию.
-shorttrack
Разрешает всем последующим трекам нарушить правило длины трека Read Book, требующее
минимальной длины трека в 4 секунды. Эта опция полезна только при использовании
режима DAO. Не все приводы поддерживают эту возможность. Привод должен уметь
воспринимать итоговый список CUE.
-noshorttrack
Восстанавливает правила длины трека Red Book. Минимальная длина треков равна 4 с.
pregap=#
Устанавливает размер pre-gap для следующего трека.
Эта опция в данный момент имеет значение только для приводов TEAC при создании
дисков методом track-at-once, без двух секунд тишины перед каждым треком.
Эта опция в будущем исчезнет.
-preemp
Если установлен этот флаг, то все элементы TOC для последовательных аудио треков
будут показывать, что аудио данные были сэмплированы с предискажением 50/15 мс.
Однако, данные не изменяются в процессе передачи из файла на диск.
Эта опция не влияет на треки данных.
-nopreemp
Если указан этот флаг, то все записи TOC для последующих аудио треков
будут помечены, как созданные из линейных последовательных данных.
По умолчанию этот флаг считается установленным.
tsize=#
Если исходный образ для следующего трека хранится на неформатированном диске,
то используйте эту опцию для указания корректного количества данных на диске.
Если образ для следующего трека хранится в обычном файле, то размер этого файла
определяет длину нового трека.
Если трек содержит образ файловой системы ISO 9660, то используйте опцию
-isosize
для определения размера образа файловой системы.
В режиме Disk-at-Once, а с некоторыми приводами, использующих интерфейс
программирования TEAC, также и в режиме Track-at-Once
cdrecord
должен знать размер каждого трека перед записью всего диска.
Теперь cdrecord проверяет это и отменяет запись.
Если это случается, то вам необходимо исполнить
mkisofs -print-size
перед этим и использовать вывод как аргумент для опции
tsize=
для
cdrecord.
Смотрите опцию
fs=
для более подробной информации о возможных аргументах.
ПРИМЕРЫ
Для всех приводимых примеров считаем, что привод присоединен к первичной
шине SCSI компьютера. Идентификатор SCSI target id установлен в 2.
Для записи на чистый диск с двойной скоростью, используя данные из файла
cdimage.raw:
cdrecord -v speed=2 dev=2,0 cdimage.raw
Для создания образа файловой системы ISO 9660 с расширениями Rock Ridge:
mkisofs -R -o cdimage.raw /home/joerg/master/tree
Для проверки файла перед его записью на диск в Solaris:
mount -r -F fbk -o type=hsfs /dev/fbk0:cdimage.raw /mnt
В ОС Linux:
mount cdimage.raw -r -t iso9660 -o loop /mnt
После этого проверить:
ls -lR /mnt
umount /mnt
Если критична общая скорость работы системы, а структура файловой системы
не слишком сложна, то можно запускать cdrecord без создания образа
файловой системы ISO 9660. Просто перенаправьте вывод:
Рекомендуемый минимальный размер буфера fifo для работы этого перенаправления
равен 4Мб. Так как по умолчанию размер буфера равен 4Мб, то опцию
fs=
нужно использовать только если вы хотите использовать другой размер буфера.
Если ваша система перегружена, то запустите mkisofs отдельно.
Для повышения приоритета
mkisofs
замените команду
mkisofs -R /master/tree
на
priocntl -e -c RT -p 59 mkisofs -R /master/tree
на Solaris и на
nice --18 mkisofs -R /master/tree
в операционных системах, не имеющих системы изменения приоритета,
совместимого с
UNIX International .
Cdrecord запускается с приоритетом 59 на Solaris, поэтому mkisofs нужно
запускать с приоритетом не больше 58. На других системах mkisofs нужно
запускать не меньше чем с приоритетом nice --18.
Процесс создания компакт диска без образа файловой системы на диске проверялся
на Sparcstation-2 с приводом Yamaha CDR-400. При записи на скорости 4х процесс
нормально отработал, при этом машина в целом была не загружена заданиями.
Хорошая быстрая машина сможет писать на скорости 4х и при загруженной работой машине.
Для записи простого диска CD-DA (музыкального диска) на скорости 1х,
где каждый трек содержится в файлах с именами
track01.cdaudio,
track02.cdaudio,
и т.п., используйте команду:
cdrecord -v speed=1 dev=2,0 -audio track*.cdaudio
Для проверки возможности записи на скорости 2х в примере выше,
используйте опцию dummy:
Для записи диска в комбинированном режиме с файловой системой ISO 9660 с образа
cdimage.raw
для первого трека, а остальных треков из файлов
track01.cdaudio,
track02.cdaudio,
и т.п., используйте команду:
где
XXX
заменяется на вывод данных из предыдущего запуска mkisofs.
Для копирования музыкального диска самым тщательным и аккуратным образом, сначала исполните
cdda2wav -v255 -D2,0 -B -Owav
и затем исполните
cdrecord -v dev=2,0 -dao -useinfo *.wav
ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
CDR_DEVICE
Может содержать идентификатор устройства, подходящий для вызова из
транспортной библиотеки SCSI или метку в файле /etc/cdrecord.conf.
CDR_SPEED
Определяет скорость записи по умолчанию (также смотрите опцию
-speed).
CDR_FIFOSIZE
Определяет размер буфера FIFO по умолчанию (также смотрите опцию
fs=#).
ФАЙЛЫ
/etc/cdrecord.conf
Для следующих опций могут быть определены значения по умолчанию в
файле /etc/cdrecord.conf. Например:
CDR_FIFOSIZE=8m
или
CDR_SPEED=2
CDR_DEVICE
Может содержать идентификатор устройства, подходящий для вызова из
транспортной библиотеки SCSI или метку в файле /etc/cdrecord.conf,
позволяющую определить привод в системе.
CDR_SPEED
Определяет скорость записи по умолчанию (также смотрите опцию
-speed).
CDR_FIFOSIZE
Определяет размер буфера FIFO по умолчанию (также смотрите опцию
fs=#).
Любые другие метки являются идентификаторами для разных приводов
в системе. Такой идентификатор не может содержать в названии
символов ',', '/', '@' or ':'.
Каждая строка за меткой содержит разделенный символами табуляции TAB
список элементов. На данный момент они воспринимаются так:
идентификатор привода SCSI ID, скорость по умолчанию для привода и
размер буфера FIFO по умолчанию. Значения
speed
и
fifosize
могут быть установлены в -1 для указания cdrecord на использование
общих глобальных настроек по умолчанию. Обычно строки выглядят так:
teac1= 0,5,048m
yamaha= 1,6,0-1-1
Эти строки указывают
cdrecord
на привод
teac1
на шине scsibus 0, target 5, lun 0 со скоростью записи 4х и размер
буфера FIFO 8Мб. Второй привод находится на шине scsibus 1, target 6, lun 0
со скоростью записи привода и размером буфера FIFO по умолчанию.
В системе Solaris вам нужно остановить управление томами, если вы хотите
использовать нейтрализацию неисправностей USCSI для кода транспорта SCSI.
Даже такие вещи, как
cdrecord -scanbus
не будут работать при активном управлении томами.
Диски, созданные в режиме
Track At Once
не подходят как мастер-диски для фабричного производства дисков. Для записи
таких дисков используйте опцию
disk at once.
Тем не менее диски, записанные в режиме
Track At Once
будут нормально воспроизводиться во всех проигрывателях дисков. Некоторые
старые проигрыватели просто будут воспроизводить двухсекундный щелчок
между аудио треками.
Минимальный размер трека равен 4 секундам или 300 секторов. Если вы
записываете трек размером менее этих значений, то привод добавит
в конец трека пустые дополнения. Это не является ошибкой, даже если
появится сообщение об ошибке SCSI.
Cdrecord
тестировался на обновленных приводах Philips CDD-521 на скорости 1х и 2х
на SparcStation 20/502, никаких проблем не выявлено, более медленные
системы также должны нормально работать.
Более новые приводы Philips/HP/Plasmon/Grundig, а также Yamaha CDR-100 и
CDR-102 также должны работать.
Plasmon RF-4100 работает, но не проверялась запись много-сессионных дисков.
Не обновленные Philips CDD-521 работать не будут.
Sony CDU-924 проверялся, но не поддерживает аппаратно режим XA-mode2.
Приводы sony не могут создавать корректные много-сессионные диски.
Ricoh RO-1420C работает, но иногда проявляются проблемы при использовании
скорости speed=2, в таких случаях попробуйте указать speed=0.
Yamaha CDR-400 и все новые приводы, соответствующие формату SCSI-3/mmc
поддерживают и обычные, и много-сессионные диски.
Обязательно проведите несколько тестов на всех поддерживаемых скоростях
вашего привода с помощью опции
-dummy
при использовании
cdrecord
на новой или неизвестной системе. Дальнейшее создание дисков будет
идти в режиме реального времени.
NFS
не всегда передает данные с требуемой и постоянной скоростью.
Если вы хотите использовать
cdrecord
с образами дисков, расположенных на подключенных сетевых ресурсах
NFS,
то убедитесь в достаточно большом размере буфера fifo.
cdrecord
использовался на средней загрузке системы SS20/502 и даже для записи
на скорости 4х на серьезно загруженном Sparcstation-2,
но все равно рекомендуется не загружать систему дополнительными и лишними
заданиями во время записи дисков. Если вы хотите быть уверенными в том,
что не случится ошибки незаполнения буфера, то используйте команду
cdrecord -dummy dev=2,0 padsize=600m /dev/null
для создания диска, полностью созданного из случайных данных.
Cdrecord
нужно исполнять от суперпользователя root для получения доступа к устройствам
/dev/scg?
и для возможности блокировки себя в памяти.
Если вы не хотите выделять пользователю права суперпользователя, то
cdrecord
может легко исполняться через suid root. Это позволяет всем пользователям
или группе пользователей без привилегий суперпользователей использовать
cdrecord.cdrecord
в этом случае проверяет возможность пользователя на чтение указанных файлов.
Для предоставления всем пользователям возможность использования
cdrecord,
исполните следующие команды:
chown root /usr/local/bin/cdrecord
chmod 4711 /usr/local/bin/cdrecord
Для выделение отдельной группе пользователей доступа к cdrecord исполните:
chown root /usr/local/bin/cdrecord
chgrp cdburners /usr/local/bin/cdrecord
chmod 4710 /usr/local/bin/cdrecord
и добавьте группу
cdburners
в вашу систему.
Никогда не выдавайте права на запись для обычных пользователей на устройства
/dev/scg?
если только вы не хотите, чтобы все считывали/писали/форматировали все ваши диски.
Не стоит подключать старые диски, не поддерживающие подключение/отключение
либо к шине SCSI, присоединенной к приводу, либо к диску с исходными данными.
Любой компакт диск не может содержать более 99 треков.
При создании диска, содержащего и обычные, и музыкальные треки, данные
обязательно должны быть именно на треке 1, иначе вам придется создавать
диск формата CDplus, являющийся много-сессионным диском, первая сессия
которого содержит музыкальные треки, а остальные сессии содержат треки данных.
Многие операционные системы не умеют считывать более одного трека,
или требуют особое программное обеспечение для этого.
Более подробную информацию о наборе команд SCSI для привода HP CD-Recorder ищите тут:
Если у вас есть информация или руководства по командам SCSI для приводов,
не поддерживаемый cdrecord в данный момент - обратитесь, пожалуйста, к автору cdrecord.
Привод Philips CDD 521 (даже в обновленной версии) все равно имеет несколько
заводских ошибок. Некоторые из них приводят к перезапуску привода и машины.
При использовании
cdrecord
с некорректным
Linux SCSI generic driver.
Помните, что
cdrecord
использует трюк с эмуляцией функциональности драйвера scg.
К сожалению, сам по себе драйвер sg в
Linux
имеет несколько проблем:
*
Не умеет распознавать, может ли вообще быть отправлена команда SCSI.
*
Не умеет получать байт статуса SCSI.
Cdrecord
по этой причине не может создать сообщение о сбое команд SCSI
в некоторых ситуациях.
*
Не умеет получать настоящий счетчик передач DMA.
Cdrecord
не может выдать вам информацию о наличии остатка счетчика DMA.
*
Не умеет получать число байтов, корректных в данных автоопределения.
Cdrecord
не может сообщить вам, вообще передает ли устройство sense данные.
*
Переносит данные при автозапросе sense (CCS/SCSI-2/SCSI-3 требует >= 18).
Процент заполнения fifo вычисляется сразу после записи блока данных на привод.
Поэтому, никогда не будет 100% заполнения буфера fifo, если он находится в потоковом режиме.
ДИАГНОСТИКА
У вас есть 9 секунд для нажатия ^C для отмены работы
cdrecord
после того, как вы увидите сообщение:
Starting to write CD at speed %d in %s mode for %s session.
Обычное сообщение об ошибках для команд SCSI выглядит так:
cdrecord: I/O error. test unit ready: scsi sendcmd: no error
CDB: 00 20 00 00 00 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
Sense Key: 0x5 Illegal Request, Segment 0
Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.002s timeout 40s
Первая строка выдает информацию о передаче команды.
Текст за первым двоеточием выдает сообщение об ошибке для системного
вызова со стороны ядра. Обычно оно имеет вид:
I/O error,
если только не происходят другие ошибки. Следующее слово содержит короткое
описание для той команды SCSI, что выдала ошибку. Остаток строки сообщает
о проблемах передачи команды по шине SCSI.
fatal error
означает что передать команду не получилось (например, такого устройства
вообще нет среди адресов SCSI).
Вторая строка выдает блок описания команды SCSI для сбойной команды.
Третья строка выдает информацию о коде статуса SCSI, возвращаемого командой,
если передача команды успешно завершилась. Это сообщение об ошибке
от устройства SCSI.
Четвертая строка является шестнадцатеричным дампом автозапроса для команды.
Пятая строка является сообщением об ошибке для sense key, сопровождаемая
номером единственного корректного сегмента, если командой была команда
copy.
Если сообщение об ошибке напрямую не связано с текущей командой,
то в конец добавляется текст
deferred error.
Шестая строка является текстом сообщения для sense code и для определителя sense.
Если тип устройства известен, то данные sense декодируются из таблиц в
scsierrs.c .
Текст сопровождается значением ошибки для поля.
Седьмая строка выводит номер блока, связанного с командой, выдавшей ошибку, и
текст для нескольких флагов ошибок. Номер блока тут может быть некорректным числом.
Восьмая строка сообщает о таймере для этой команды и времени до окончания работы.
Следующее сообщение не является сообщением об ошибке:
Track 01: Total bytes read/written: 2048/2048 (1 sectors).
cdrecord: I/O error. flush cache: scsi sendcmd: no error
CDB: 35 00 00 00 00 00 00 00 00 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: F0 00 05 80 00 00 27 0A 00 00 00 00 B5 00 00 00 00 00
Sense Key: 0x5 Illegal Request, Segment 0
Sense Code: 0xB5 Qual 0x00 (dummy data blocks added) Fru 0x0
Sense flags: Blk -2147483609 (valid)
cmd finished after 0.002s timeout 40s
Оно просто уведомляет, что трек меньше минимально допустимого размера
был расширен до 300 секторов.
НАЙДЕННЫЕ ОШИБКИ
Cdrecord
имеет больше опций, чем
ls.
Cdrecord
в данный момент только предупреждает в случае, если входящие данные переполнят
записываемый диск. Если вы при этом сразу не отмените выполнение команды, то
результаты будут непредсказуемыми.
Должна быть опция для записи номеров индексов для музыкальных треков.
Должна быть опция восстановления для дисков, во время записи которых произошли сбои
питания и процесс записи которых был прерван.
За создание экспериментального пакета поддержки записи,
за поддержку первой реализации очистки CD-RW дисков,
первого декодера файлов .wav
и многие другие советы по cdrecord.