11.4. Создание компакт-диска с данными для распространения
Проблема
Требуется записать компакт-диск с данными, который будет читаться в Linux и Windows. Диск может содержать текстовые файлы, документы, программы или графические изображения.
Решение
Воспользуйтесь командами mkisofs, mount и cdrecord. Сначала упакуйте все файлы в единый файл .iso командой mkisofs, затем смонтируйте .iso для проверки правильности файловой системы. Затем запишите данные на диск командой cdrecord.
В нашем примере файл .iso называется data.iso, компакт-диску присвоено имя data_disk, а все файлы копируются из каталога /disk_data. Точка монтирования для .iso — /test-iso.
# mkisofs -J -r -v -V data_disk -o data.iso /diskdata
# mkdir /test-iso
# mount -t iso9660 -o ro,loop data.iso /test-iso
# ls /test-iso
# umount /test-iso
# cdrecord -v eject dev=0,1,0 data.iso
Комментарий
В представленном решении все команды выполняются пользователем root. Это сделано для простоты, потому что команды mount, mkisofs и cdrecord требуют привилегий root. Чтобы пользователи могли выполнять команду mount, используйте sudo. Для выполнения команд mkisofs и cdrecord можно создать группу cdrecord, назначить ей владельцем эти программы и включить пользователей в эту группу.
В ядре 2.6 эмуляция IDE-SCSI не нужна, поэтому в командной строке cdrecord можно просто указать имя /dev:
# cdrecord dev=/dev/hdc data.iso
Команда mkisofs собирает все файлы и упаковывает их в один файл .iso. Если вам приходилось загружать дистрибутив Linux для записи на компакт-диск, вы, вероятно, уже работали с такими файлами. Основная проблема для новичков — это то, что они ожидают увидеть дерево файлов, а получают один большой файл.
Рассмотрим параметры команды mkisofs:
- -J — поддержка схемы имен Joliet для совместимости с Windows;
- -r — использование схемы имен Rock Ridge для совместимости с Unix/Linux;
- -v — расширенный вывод;
- -V data_disk — определение идентификатора тома (data_disk);
- -o data.iso /disk_data — создание образа .iso с файлами из каталога /disk_data.
Перед записью компакт-диска обязательно смонтируйте созданный образ .iso для проверки. Если все файлы отображаются корректно, можно приступать к записи.
# mkdir /test-iso
# mount -t iso9660 -o ro,loop data.iso /test-iso
# ls /test-iso
Если файлы отображаются неверно, исправьте ошибки и пересоздайте .iso.
См. также
cdrecord(1), mount(8), mkisofs(8); раздел 9.12; раздел 11.2.