Полное руководство по записи ваших данных на компакт-диски
Полное руководство по записи ваших данных на компакт-диски
Сегодня многие являются счастливыми обладателями устройств CD-R. И цены на эти замечательные устройства снижаются с каждым днем. На компакт-дисках удобно хранить архивы данных и программ. Все ваши старые архивы, занимающие уйму дискет, можно уместить на одном диске, уменьшив риск потери информации. Можно собрать и записать свой собственный вариант любимого дистрибутива Linux, который будет полностью удовлетворять вашим персональным запросам. Или перенести на компакт архивы любого FTP-сервера и сделать его достоянием своих друзей, значительно уменьшив время на загрузку этой информации по сети.
Выбор и настройка CD-R
Если вы стоите перед выбором лучшего устройства для записи CD, хочу посоветовать SCSI. SCSI CD-R появились задолго до ATAPI (IDE) устройств, и, в результате, лучше поддерживаются системой. Но если у вас уже есть ATAPI CD-R или вы не можете позволить себе купить дорогой SCSI, не волнуйтесь - вы можете записывать компакт-диски.
Для работы с устройством SCSI в кернел должна быть встроена поддержка:
- SCSI support;
- SCSI CD-ROM support;
- SCSI generic support;
- Loopback device support;
- ISO9660 cdrom filesystem support.
Я предполагаю, что читатель этой статьи знаком с процессом настройки кернела, если нет, то рекомендую прочитать Kernel-HOWTO.
ATAPI CD-R требует больше усилий. Версия кернела не ниже 2.0.35, любую предыдущую нужно модернизировать при помощи патчей. При компиляции кернела отключите IDE/ATAPI CD-ROM support и включите SCSI Emulation support. Также включите поддержку всех устройств, перечисленных выше (да, даже SCSI support). В результате ваш CD-R будет выглядеть и вести себя как SCSI устройство, даже будучи ATAPI. Учтите, что при использовании эмуляции SCSI все ваши устройства чтения компакт дисков IDE изменят свои названия на префикс SCSI, имя первого привода CD-ROM будет теперь /dev/scd0.
Необходимые программы
Для записи CD под ОС Linux нужны всего две утилиты: mkisofs и cdrecord. Первая, mkisofs, требуется для создания файла с образом записываемого диска. Она входит в состав почти всех дистрибутивов Linux, но в любом случае будет разумным найти свежую версию по адресу ftp://tsx-11.mit.edu/pub/ linux/packages/mkisofs/.
Вторая утилита, cdrecord, переносит этот образ на чистую матрицу. По адресу http://metalab.unc.edu/ pub/Linux/utils/disk-management/ можно также найти последнюю версию программы, и я очень рекомендую это сделать (на момент написания этой статьи это была версия 1.6.1). Для записи дисков служит и программа cdwrite, доступная по этому же URL.
Кроме того, существуют другие бесплатные и коммерческие и даже снабженные графическим пользовательским интерфейсом программы, самая популярная из которых X-CD-Roast, но ее работа основана на той же утилите cdwrite. Прочие графические программы тоже всего-навсего предоставляют пользователю удобный интерфейс для взаимодействия с программами, выполняющими реальную работу.
Собираем файлы
После установки необходимых программ можно заняться записью компакт-дисков. Но сначала соберите все файлы, предназначенные для копирования, в один каталог. Для примера в этой статье я опишу процесс загрузки и записи на CD дистрибутива Linux. Предположим, что вы используете анонимный доступ к FTP-серверу ftp.some_server.com и открываете каталог /pub/linux. Этот воображаемый каталог содержит три различных дистрибутива, вот листинг выданный командой ls:
total 5
drwxrwxr-x 5 root wheel 1024 Jan 5 17:05./
drwxrwxr-x 8 root wheel 1024 Jul 31 1994../
drwxr-xr-x 2 root ftp-adm 1024 Jan 5 17:04 distribution_a/
drwxr-xr-x 2 root ftp-adm 1024 Jan 5 17:05 distribution_b/
drwxr-xr-x 2 root ftp-adm 1024 Jan 5 17:05 distribution_c/
Допустим, что distribution_b - это именно то, что вам нужно, загружаем его командой get distribution_b.tar. Разумеется, этот дистрибутив содержит все, что вам необходимо и ничего лишнего. Вы не хотите загружать все версии дистрибутива для различных платформ. Для пущей уверенности можно проверить систему каталогов дистрибутива. Например, если вы хотели получить дистрибутив системы Red Hat для i386 с сервера ftp.cdrom.com, нужно скачать все файлы с /pub/linux/redhat/redhat-6.0/i386 и последующие директории.
После завершения загрузки создайте каталог для хранения новых файлов. В этом примере я создал каталог cdimage и перенес содержимое дистрибутивного архива в этот каталог следующими командами:
mkdir cdimage
tar vxf distribution_b.tar -C cdimage
Так как будет включен параметр verbose (v), перечень содержимого distribution_b.tar пролетит перед вашими глазами на экране монитора, и все файлы появятся в каталоге cdimage. Если все прошло нормально, то можно удалить файл с архивом distribution_b.tar для экономии дискового пространства.
Если вы хотите записать на CD другой набор файлов, просто скопируйте их в каталог cdimage.
Создание образа компакт-диска
При создании диска помните, что корневой каталог CD-диска соответствует созданному вами каталогу, в нашем случае - cdimage. Как только вы собрали все файлы, предназначенные для записи, в этом каталоге, можно приступить к созданию образа CD в формате ISO9660, используя команду mkisofs. Итак, создаем образ диска командой:
mkisofs -r -o cdimage.iso cdimage
Параметр -r позволяет включать в образ диска дополнительные параметры описания файлов согласно протокола Rock Ride, сохраняя оригинальные имена файлов и параметры доступа к ним, оптимизированные для CD-ROM, например, доступ по чтению/выполнению становится всеобщим, а доступ по записи очищается, и специальные биты также очищаются, они не применимы к компакт-дискам. Опция -о указывает результирующий файл (cdimage.iso). Последний параметр - это название каталога с исходными файлами.
Многие компакт-диски промышленного изготовления с ОС Linux, например, Red Hat, загружаемые. Это нетрудно сделать с помощью стандарта "El Torito". BIOS современных компьютеров поддерживает загрузку с CD, и большинство загрузочных компакт-дисков для РС основаны именно на этом стандарте. El Torito превращает ваш CD в дискету, которую BIOS может использовать при загрузке.
Если вы хотите получить загрузочный компакт-диск, вам понадобится образ загрузочной дискеты на 1.44МВ. В примере с нашим дистрибутивом мы можем взять загрузочный образ, используемый при установке. Для distribution_b название этого файла boot.img. Процесс, который делает cd-диски загружаемыми, описан в спецификации на стандарт iso9660. Перед созданием образа компакт-диска нам нужно создать подкаталог внутри нашего директория cdimage, который будет содержать образ загрузочной дискеты, имя boot подойдет для этого лучше всего. Скопируем файл boot.img в каталог cdimage/boot и создадим образ компакт-диска командой:kg94812b.br>
mkisofs -r -b boot/boot.img -c boot/boot.cat -o cdimage.iso cdimagekg94812c.br>
Здесь мы добавили два новых параметра, которые делают наш компакт-диск загрузочным. Опция -b с именем файла образа загрузочной дискеты. Учтите, что путь к этому файлу указан относительно корневого каталога CD-диска. Параметр -с с именем загрузочного каталога необходим стандарту El Torito, этот файл создается автоматически командой mkisofs. Но такой автоматизм доступен только последним версиям mkisofs, если вы используете ранние версии, придется создать его вручную.
Перед записью компакт-диска можно проверить файл с образом CD, замонтировав его. Для этого понадобится устройство loopback и его поддержка кернелом. Выполнить монтирование можно командой:
mount -r -t iso9660 -o loop cdimage.iso /mnt
Bыпекаем CD
После того, как Вы создали образ CD-диска, загружаемый или нет, вы готовы непосредственно к выполнению главной процедуры записи на чистую матрицу командой cdrecord или cdwrite. Но перед началом несколько советов:
- Убедитесь, что ваш компьютер не подвергается внешним вибрациям.
- Убедитесь, что образ CD-диска находится на вашем винчестере.
- Убедитесь, что ваш компьютер не сильно загружен другими задачами.
Все это поможет вам избежать ошибок при записи. Можно перевести CD-R в режим тестирования и программа отработает процесс записи без записи как таковой. Для этого используется опция -dummy в программе cdrecord и -y в программе cdwrite. Ну и теперь уже можно вставить чистый CD-диск и запустить команду записи.
cdrecord -eject -v -isosize speed=2 dev=0,0 cdimage.iso
cdwrite -ev -device /dev/??? -s cdimage.iso
Первые два параметра для обеих программ это eject и verbose. Компакт-диск будет извлечен из дисковода после завершения процесса записи и программы будут работать в режиме verbose. Опция isosize для cdrecord ограничивает объем диска стандартным размером ISO9660. Параметры speed=2 и -s 2 указывают скорость записи, в нашем случае это 2. И последние опции -device, dev=0,0 и /dev/??? указывают записывающее устройство, ваш CD-R (например, /dev/scd0) и 0,0 это SCSI ID и адрес шины.
Заключение
Если все работает хорошо, поздравляю. Вы стали обладателем свеже-испеченного iso9660 CD. Можно записывать диски и других форматов. Утилита mkhybrid, поставляемая с mkisofs, может создавать образы дисков форматов Joliet и HFS. Также возможна запись CD в формате файловой системы EXT2. Удачной "выпечки"!
Игорь Грень
Сегодня многие являются счастливыми обладателями устройств CD-R. И цены на эти замечательные устройства снижаются с каждым днем. На компакт-дисках удобно хранить архивы данных и программ. Все ваши старые архивы, занимающие уйму дискет, можно уместить на одном диске, уменьшив риск потери информации. Можно собрать и записать свой собственный вариант любимого дистрибутива Linux, который будет полностью удовлетворять вашим персональным запросам. Или перенести на компакт архивы любого FTP-сервера и сделать его достоянием своих друзей, значительно уменьшив время на загрузку этой информации по сети.
Выбор и настройка CD-R
Если вы стоите перед выбором лучшего устройства для записи CD, хочу посоветовать SCSI. SCSI CD-R появились задолго до ATAPI (IDE) устройств, и, в результате, лучше поддерживаются системой. Но если у вас уже есть ATAPI CD-R или вы не можете позволить себе купить дорогой SCSI, не волнуйтесь - вы можете записывать компакт-диски.
Для работы с устройством SCSI в кернел должна быть встроена поддержка:
- SCSI support;
- SCSI CD-ROM support;
- SCSI generic support;
- Loopback device support;
- ISO9660 cdrom filesystem support.
Я предполагаю, что читатель этой статьи знаком с процессом настройки кернела, если нет, то рекомендую прочитать Kernel-HOWTO.
ATAPI CD-R требует больше усилий. Версия кернела не ниже 2.0.35, любую предыдущую нужно модернизировать при помощи патчей. При компиляции кернела отключите IDE/ATAPI CD-ROM support и включите SCSI Emulation support. Также включите поддержку всех устройств, перечисленных выше (да, даже SCSI support). В результате ваш CD-R будет выглядеть и вести себя как SCSI устройство, даже будучи ATAPI. Учтите, что при использовании эмуляции SCSI все ваши устройства чтения компакт дисков IDE изменят свои названия на префикс SCSI, имя первого привода CD-ROM будет теперь /dev/scd0.
Необходимые программы
Для записи CD под ОС Linux нужны всего две утилиты: mkisofs и cdrecord. Первая, mkisofs, требуется для создания файла с образом записываемого диска. Она входит в состав почти всех дистрибутивов Linux, но в любом случае будет разумным найти свежую версию по адресу ftp://tsx-11.mit.edu/pub/ linux/packages/mkisofs/.
Вторая утилита, cdrecord, переносит этот образ на чистую матрицу. По адресу http://metalab.unc.edu/ pub/Linux/utils/disk-management/ можно также найти последнюю версию программы, и я очень рекомендую это сделать (на момент написания этой статьи это была версия 1.6.1). Для записи дисков служит и программа cdwrite, доступная по этому же URL.
Кроме того, существуют другие бесплатные и коммерческие и даже снабженные графическим пользовательским интерфейсом программы, самая популярная из которых X-CD-Roast, но ее работа основана на той же утилите cdwrite. Прочие графические программы тоже всего-навсего предоставляют пользователю удобный интерфейс для взаимодействия с программами, выполняющими реальную работу.
Собираем файлы
После установки необходимых программ можно заняться записью компакт-дисков. Но сначала соберите все файлы, предназначенные для копирования, в один каталог. Для примера в этой статье я опишу процесс загрузки и записи на CD дистрибутива Linux. Предположим, что вы используете анонимный доступ к FTP-серверу ftp.some_server.com и открываете каталог /pub/linux. Этот воображаемый каталог содержит три различных дистрибутива, вот листинг выданный командой ls:
total 5
drwxrwxr-x 5 root wheel 1024 Jan 5 17:05./
drwxrwxr-x 8 root wheel 1024 Jul 31 1994../
drwxr-xr-x 2 root ftp-adm 1024 Jan 5 17:04 distribution_a/
drwxr-xr-x 2 root ftp-adm 1024 Jan 5 17:05 distribution_b/
drwxr-xr-x 2 root ftp-adm 1024 Jan 5 17:05 distribution_c/
Допустим, что distribution_b - это именно то, что вам нужно, загружаем его командой get distribution_b.tar. Разумеется, этот дистрибутив содержит все, что вам необходимо и ничего лишнего. Вы не хотите загружать все версии дистрибутива для различных платформ. Для пущей уверенности можно проверить систему каталогов дистрибутива. Например, если вы хотели получить дистрибутив системы Red Hat для i386 с сервера ftp.cdrom.com, нужно скачать все файлы с /pub/linux/redhat/redhat-6.0/i386 и последующие директории.
После завершения загрузки создайте каталог для хранения новых файлов. В этом примере я создал каталог cdimage и перенес содержимое дистрибутивного архива в этот каталог следующими командами:
mkdir cdimage
tar vxf distribution_b.tar -C cdimage
Так как будет включен параметр verbose (v), перечень содержимого distribution_b.tar пролетит перед вашими глазами на экране монитора, и все файлы появятся в каталоге cdimage. Если все прошло нормально, то можно удалить файл с архивом distribution_b.tar для экономии дискового пространства.
Если вы хотите записать на CD другой набор файлов, просто скопируйте их в каталог cdimage.
Создание образа компакт-диска
При создании диска помните, что корневой каталог CD-диска соответствует созданному вами каталогу, в нашем случае - cdimage. Как только вы собрали все файлы, предназначенные для записи, в этом каталоге, можно приступить к созданию образа CD в формате ISO9660, используя команду mkisofs. Итак, создаем образ диска командой:
mkisofs -r -o cdimage.iso cdimage
Параметр -r позволяет включать в образ диска дополнительные параметры описания файлов согласно протокола Rock Ride, сохраняя оригинальные имена файлов и параметры доступа к ним, оптимизированные для CD-ROM, например, доступ по чтению/выполнению становится всеобщим, а доступ по записи очищается, и специальные биты также очищаются, они не применимы к компакт-дискам. Опция -о указывает результирующий файл (cdimage.iso). Последний параметр - это название каталога с исходными файлами.
Многие компакт-диски промышленного изготовления с ОС Linux, например, Red Hat, загружаемые. Это нетрудно сделать с помощью стандарта "El Torito". BIOS современных компьютеров поддерживает загрузку с CD, и большинство загрузочных компакт-дисков для РС основаны именно на этом стандарте. El Torito превращает ваш CD в дискету, которую BIOS может использовать при загрузке.
Если вы хотите получить загрузочный компакт-диск, вам понадобится образ загрузочной дискеты на 1.44МВ. В примере с нашим дистрибутивом мы можем взять загрузочный образ, используемый при установке. Для distribution_b название этого файла boot.img. Процесс, который делает cd-диски загружаемыми, описан в спецификации на стандарт iso9660. Перед созданием образа компакт-диска нам нужно создать подкаталог внутри нашего директория cdimage, который будет содержать образ загрузочной дискеты, имя boot подойдет для этого лучше всего. Скопируем файл boot.img в каталог cdimage/boot и создадим образ компакт-диска командой:kg94812b.br>
mkisofs -r -b boot/boot.img -c boot/boot.cat -o cdimage.iso cdimagekg94812c.br>
Здесь мы добавили два новых параметра, которые делают наш компакт-диск загрузочным. Опция -b с именем файла образа загрузочной дискеты. Учтите, что путь к этому файлу указан относительно корневого каталога CD-диска. Параметр -с с именем загрузочного каталога необходим стандарту El Torito, этот файл создается автоматически командой mkisofs. Но такой автоматизм доступен только последним версиям mkisofs, если вы используете ранние версии, придется создать его вручную.
Перед записью компакт-диска можно проверить файл с образом CD, замонтировав его. Для этого понадобится устройство loopback и его поддержка кернелом. Выполнить монтирование можно командой:
mount -r -t iso9660 -o loop cdimage.iso /mnt
Bыпекаем CD
После того, как Вы создали образ CD-диска, загружаемый или нет, вы готовы непосредственно к выполнению главной процедуры записи на чистую матрицу командой cdrecord или cdwrite. Но перед началом несколько советов:
- Убедитесь, что ваш компьютер не подвергается внешним вибрациям.
- Убедитесь, что образ CD-диска находится на вашем винчестере.
- Убедитесь, что ваш компьютер не сильно загружен другими задачами.
Все это поможет вам избежать ошибок при записи. Можно перевести CD-R в режим тестирования и программа отработает процесс записи без записи как таковой. Для этого используется опция -dummy в программе cdrecord и -y в программе cdwrite. Ну и теперь уже можно вставить чистый CD-диск и запустить команду записи.
cdrecord -eject -v -isosize speed=2 dev=0,0 cdimage.iso
cdwrite -ev -device /dev/??? -s cdimage.iso
Первые два параметра для обеих программ это eject и verbose. Компакт-диск будет извлечен из дисковода после завершения процесса записи и программы будут работать в режиме verbose. Опция isosize для cdrecord ограничивает объем диска стандартным размером ISO9660. Параметры speed=2 и -s 2 указывают скорость записи, в нашем случае это 2. И последние опции -device, dev=0,0 и /dev/??? указывают записывающее устройство, ваш CD-R (например, /dev/scd0) и 0,0 это SCSI ID и адрес шины.
Заключение
Если все работает хорошо, поздравляю. Вы стали обладателем свеже-испеченного iso9660 CD. Можно записывать диски и других форматов. Утилита mkhybrid, поставляемая с mkisofs, может создавать образы дисков форматов Joliet и HFS. Также возможна запись CD в формате файловой системы EXT2. Удачной "выпечки"!
Игорь Грень
Компьютерная газета. Статья была опубликована в номере 48 за 1999 год в рубрике soft :: linux