HOWTO Запись CD

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Содержание

[править] Основные программы

Для начала, убедитесь что у вас установлены программы cdrecord и mkisofs, которые входят в пакет cdrtools. Если нет -- установите его:

emerge cdrtools

[править] Конфигурация ядра и загрузчика

Убедитесь, что у вас ядро настроено соответствующим образом.

[править] Ядра серии 2.4.x

Для ядер серии 2.4.x в ядро необходимо включить поддержку SCSI эмуляции:

Linux Kernel Configuration: Конфигурация ядра 2.4.x
ATA/IDE/MFM/RLL Support -->
    IDE, ATA, and ATAPI Block Devices -->
        <M> SCSI Emulation Support
SCSI Support -->
    <M> SCSI Support
    <M> SCSI CDROM Support
    <M> SCSI Generic Support

Теперь, еще необходимо ядру при загрузке передать параметр hdc=ide-scsi (в данном случае предполагается, что ваш CD привод - это hdc).

Т.е. если вы используете grub, то его конфиг должен выглядеть примерно так:

Файл: /boot/grub/grub.conf
title Gentoo Linux
 root (hd#,#)
 kernel (hd#,#)/YOUR_KERNEL_NAME_HERE root=/dev/hdx# hdc=ide-scsi ANY_OTHER_KERNEL_OPTIONS_NEEDED

Если вы ипользуете lilo, то соответсвующая часть конфига:

Файл: /etc/lilo.conf
# Linux bootable partition config
    image  = /boot/YOUR_KERNEL_NAME_HERE
    append = "hdc=ide-scsi"
    root   = /dev/hdx#
    label  = Gentoo
    read-only

[править] Ядра серии 2.6.x

В ядрах серии 2.6.x вам уже нет необходимости включать SCSI (и, следовательно, не надо переконфигурировать загрузчик). Вместо этого, надо указать поддержку ATAPI CDROM:

Linux Kernel Configuration: Конфигурация ядра 2.6.x
Device Drivers  -->
    ATA/ATAPI/MFM/RLL support -->
        <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
            <*> Include IDE/ATAPI CDROM support

[править] Подготовка ISO образа

Для начала, создайте папку: mkdir /tmp/iso

а затем скопируйте все файлы, которые вы хотите записать, в созданную папку. cp *.doc /tmp/iso

Затем создайте image.iso mkisofs -o /tmp/image.iso /tmp/iso

[править] Дополнительные опции при создании ISO образа

  • -r : добавляет (частично) поддержку так называемых расширений Rock Ridge, т.е. сохраняет специфичные для unix аттрибуты файлов. Например, добавляет поддержку длинных имён (до 255 символов, но не для MS Windows), символических ссылок. В отличие от опции -R, которая полностью соответсвует Rock Ridge, права доступа на файлы не сохраняются, они становятся доступны для чтения любому пользователю.
  • -jcharset=koi8-r : подразумевает под собой 2 опции: 1) -J включает поддержку Joliet, которая используется для распознавания длинных имён файлов под MS Windows; 2) -input-charset устанавливает перекодировку символов для корректного отображения русских имён файлов. ("koi8-r" здесь дано для примера - замените на кодироку, используемую в вашей системе)
  • -joliet-long : Возможность использования имён в Joliet длиной до 103 юникодных символов. Это противоречит спецификации Joliet - но тем не менее работает. Используйте данную опцию с осторожностью.
  • -f : следование символическим ссылкам. Если вместо копирования файлов в /tmp/iso, вы просто создаёте в этой директории симлинки на них, то вы должны включить эту опцию.

[править] Определение ATAPI-приводов

Выполните cdrecord --dev=ATAPI --scanbus

Вы должны увидеть нечто похожее на следующее:

Cdrecord-Clone 2.01a25 (i686-pc-linux-gnu) Copyright (C) 1995-2004 J?rg Schilling
scsidev: 'ATAPI'
devname: 'ATAPI'
scsibus: -2 target: -2 lun: -2 
Warning: Using ATA Packet interface.
Warning: The related libscg interface code is in pre alpha. 
Warning: There may be fatal problems. 
Using libscg version 'schily-0.8'.
scsibus0:
       0,0,0     0) 'SONY    ' 'CD-RW  CRX175A1 ' '5YS2' Removable CD-ROM
       0,1,0     1) *
       0,2,0     2) *
       0,3,0     3) *
       0,4,0     4) *
       0,5,0     5) *
       0,6,0     6) *
       0,7,0     7) *

Здесь показано, что на шине 0,0,0 есть CD-RW привод.

Предупреждение: В новых версиях cdrtools (2.01.01) и ядра 2.6.x надо писать cdrecord --dev=ATA --scanbus

[править] Запись ISO образа

cdrecord --dev=ATA:0,0,0 /tmp/image.iso

(Замените шину 0,0,0 на необходимую)

Примечание: Вместо dev=ATA:0,0,0 можно указывать просто имя устройства, напирмер, dev=/dev/cdrw

[править] Дополнительные возможности

  • Используйте опцию --speed=# для указания скорости записи

cdrecord --dev=ATAPI:0,0,0 --speed=4 /tmp/image.iso

  • Используйте --blank=fast для быстрой очистки CD-RW диска.

cdrecord --dev=ATAPI:0,0,0 --blank=fast

  • Большинство современных записывающих устройств поддерживает технологию BURN-free. К сожалению она не включена по умолчанию при запуске cdrecord. Для включения, добавьте опцию --driveropts=burnfree. Вы можете посмотреть, какие ещё опции поддерживает ваш CD-ROM посредством команды cdrecord dev=/dev/cdrw driveropts=help -checkdrive
  • Если в файле /etc/default/cdrecord установить переменную CDR_DEVICE=ATAPI:0,0,0 (можно и CDR_DEVICE=/dev/hdc), то не придется каждый раз указывать устройство (ключ --dev=ATAPI:0,0,0) и тогда для очистки CD-RW диска понадобится набрать только следуюшее:

cdrecord --blank=fast

  • Если нужно разрешить пользователю запись на CD, то включите его в группу cdrom.

[править] Копирование дисков

Если у вас всего один CD-ROM, то необходимо вначале создать файл-образ диска. Это можно сделать многими способами (с помощью dd, cat, cdrdao, readcd и т.д.). Лучше воспользоваться readcd, т.к. он уже входит в пакет cdrtools, и имеет множество интересных опций (смотри man readcd): readcd dev=/dev/cdrw -clone f=/tmp/image.iso

После этого запишем образ на болванку с помощью cdrecord: cdrecord -v -eject dev=/dev/cdrw -raw96r -clone /tmp/image.iso

ВАЖНО: Ключи -raw96r и -clone необходимы ТОЛЬКО если вы создавали файл-образ с помощью команды readcd -clone.

[править] Как дописывать диски

Прежде всего, при создании и последующем дописывании мульти-сессионных дисков, необходимо всегда для cdrecord указывать опцию -multi, а для mkisofs использовать ключ -r или -R (т.е. включать расширение Rock Ridge). Таким образом создание первой сессий будет выглядить примерно так:

Code: Запись первой сессии

mkisofs -r -f -jcharset=koi8-r -o /tmp/image.iso /tmp/iso/

cdrecord -v -multi driveropts=burnfree -eject dev=/dev/cdrw /tmp/image.iso

Для создания последующих сессий, нам нужна информация о номере начального сектора последней сессии и о номере сектора с которого будет начинаться новая сессия. Эта пара чисел выводится командой cdrecord -msinfo dev=/dev/cdrw. После этого данные числа указываются в команде mkisofs в качетстве аргументов к опции -C. Также, чтобы были видны файлы из предыдущей сессии, необходим ключ -M, аргументом к ключу -М служит имя устройства вашего CD-ROM (т.е. в нашем примере - это /dev/cdrw). Команда cdrecord остаётся такой же. Резюмируя вышесказанное получаем для записи последующей сессии:

Code: Запись последующих сессий

mkisofs -r -f -jcharset=koi8-r -C $(cdrecord dev=/dev/cdrw -msinfo) -M /dev/cdrw -o /tmp/image.iso /tmp/iso/

cdrecord -v -multi driveropts=burnfree -eject dev=/dev/cdrw /tmp/image.iso

[править] Полезные ссылки

Личные инструменты
На других языках