Mkisofs linux как сделать iso

Обновлено: 06.07.2024

Запись СD в Linux

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

Запись CD из командной строки может быть загадочной и раздражающей на любой платформе - это относится и к Linux. Однако, команды и терминология похожи везде, и будет полезно знать, как можно записать CD в Linux. Множество программ для Linux распространяется через образы .iso, так что если вы знаете, как записать ваш собственный CD, вы сможете загрузить .iso и сделать свой собственный загрузочный диск. Программы для записи CD доступны как для Linux так и для Windows, но в Linux они более мощные и разносторонние, чем их братья из Windows.

В этой статье мы рассмотрим mkisofs и cdrecord, рабочие лошадки Linux для записи CD. mkisofs создает подготовительные образы, чтобы создать гибридную файловую систему ISO9660/JOLIET/HFS. Он создает и заполняет файловую систему. В отличие от других устройств хранения данных (таких, как жесткие диски и дисководы), файловая система на CD не создается отдельно, чтобы заполнить её данными позже. При работе с CD-R есть только одна попытка: если его отформатировать, получится диск с пустой файловой системой. Cdrecord записывает данные на CD-R/RW, которые соответствуют стандарту Orange Book (короче говоря - на любой диск).

Для такой новой технологии, как запись CD, лучше всего использовать новейшие версии программ. mkisofs и cdrecord должны оба быть версии 1.10 или выше. Последняя версия cdrecord (2.0) была переименована в cdrtools. Чтобы узнать версию, установленную на вашей машине, введите:

Для тех, кто ещё совсем новичок в мире записи дисков, есть несколько терминов, с которыми будет полезно ознакомиться перед началом работы:

  • CD-R: CD-Recordable. Записываемый диск. Также называется WORM (Write Once, Read Many) (Однократная запись, многократное чтение).
  • CD-RW: CD-Rewritable. Перезаписываемый диск - WMRM (Write Many, Read Many) (Многократная запись, многократное чтение).
  • CD-R универсальны и могут быть прочитаны на любом приводе CD-ROM.
  • CD-RW должны читаться на всех современных приводах. Привод должен иметь "multiread", чтобы суметь прочитать CD-R и CD-RW. Старые приводы могут иметь трудности с чтением. Выбросьте старый 4x привод и купите новый; нет ничего хуже раздражения.
  • Коммерческие CD штампуются, а не выжигаются лазером.
  • Какой из CD-R/RW приводов лучше? Прочитайте обзоры и решите.
  • Yellow Book: физический формат для CD с данными
  • Orange Book: физический формат для записываемых CD:
    • Part I: CD-MO (Magneto-Optical) - магнито-оптические
    • Part II: CD-WO (Write-Once(однократная запись); включая "гибриды" для PhotoCD)
    • Part III: CD-RW (Перезаписываемые)

    Вкратце о UDF: UDF даёт возможность копировать файлы прямо на диск. В данный момент это выполняется на программном уровне. Чтение диска требует использования программы, при помощи которой он был создан. UDF подготавливается для включения в ядро Linux (возможно, будет включено в 2.6). CD привод должен иметь CD-MRW ("CD Mount Rainier ReWrite"; не спрашивайте меня, откуда они берут эти имена) для работы, так что эта возможность будет добавлена в новые приводы. Когда это произойдет, копирование файлов на CD-R/RW будет таким же легким, как копирование на флоппи, а диски будут универсально читаемыми. Это предлагается как еще одна замена 3.5" дискетам. Посмотрим. (См. Ресурсы для получения дополнительной информации о Mount Rainier.)

    Используйте либо IDE/ATAPI, либо SCSI CD writer. Параллельный порт приводит к ужасающе большому количеству ошибок, а приводы USB слишком медленны. Кроме того, они не очень хорошо поддерживаются в Linux (хотя вам может повезти с новыми приводами USB 2.0).

    Приводы IDE/ATAPI наиболее распространены, но требуют небольшой настройки для работы. Итак, что происходит, если cdrecord показывает, что нет сконфигурированных приводов? Чтобы проверить это, введите:

    Если он покажет ваш CD-RW привод (см. Запись диска ниже), вы можете пропустить большую часть секции, хотя стоит все же почитать, чтобы иметь больше информации.

    Linux использует подсистему эмуляции SCSI, так что приводы IDE/ATAPI CD-writers требуют драйверов для совместимости. Если в одном компьютере установлены и CD-ROM и CD-R/RW, то для обоих нужно использовать псевдо ide-scsi устройство, чтобы иметь возможность копирования дисков. Нет отличий в эмуляции SCSI для CD-ROM; она работает так же, только имя будет другое. В зависимости от вашего Linux, привод станет вместо /dev/cdrom0, или /dev/hdc, или /dev/scd0 (см. Таблицу 1).

    Таблица 1. Имена устройств IDE/ATAPI

    Имя Устройство
    hda IDE bus/connector 0 master device
    hdb IDE bus/connector 0 slave device
    hdc IDE bus/connector 1 master device
    hdd IDE bus/connector 1 slave device

    Чтобы найти эти устройства в вашей системе, введите:

    hda: IBM-DTLA-305020, ATA DISK drive
    hdb: TOSHIBA DVD-ROM SD-M1202, ATAPI CD/DVD-ROM drive
    hdc: LITE-ON LTR-24102B, ATAPI CD/DVD-ROM drive
    hda: 40188960 sectors (20577 MB) w/380KiB Cache, CHS=2501/255/63, UDMA(66)

    Большинство современных дистрибутивов Linux поставляются с эмуляцией SCSI, уже встроенной в ядро:

    Если в вашей системе эмуляции нет, вам нужно вкомпилировать ее в ядро. Это - слишком обширная тема для того, чтобы описывать её в этой статье, так что смотрите Источники (это не трудно, когда вы знаете, как это делается).

    Вам нужно отредактировать два текстовых файла, чтобы отконфигурировать систему для использования драйвера ide-scsi. Первый - /etc/modules.conf (в Debian, /etc/modules). Моя система имеет CD-ROM и CD-R/RW, hdb и hdc. Добавьте эти строки в /etc/modules.conf (или /etc/modules), используя значения вашей системы:

    ide-cd ignore="hdb hdc"
    ide-scsi

    По умолчанию подсистема IDE исользует все ATA устройства для себя, так что строка ignore позволяет подсистеме SCSI захватить и CD-R/RW, и CD-ROM.

    Теперь отредактируйте конфигурационный файл вашего загрузчика, GRUB или LILO. Для пользователей LILO, добавьте следующие строки в конец lilo.conf:

    Для пользователей GRUB, добавьте следующее в конец строки "kernel" файла /etc/grub.conf (или в Debian - /boot/grub/menu.lst):

    Теперь перезагрузите вашу машину и проверьте, что было загружено:

    Вы получите длинный список, ищите ide-scsi.

    Когда вы выбрали файлы для записи на CD, процесс состоит из двух шагов: создания .iso с помощью mkisofs, и запись на диск при помощи cdrecord. Выполните следующее для создания файла .iso:

    $ mkisofs -o test.iso -Jrv -V test_disk /home/carla/

    • -o имя нового файла образа .iso (test.iso)
    • -J использование записей Joliet, для совместимости с Windows
    • -r использование запистей Rock Ridge для совместимости с UNIX/Linux, и разрешения чтения всех файлов
    • -v установка режима комментарив после создания образа
    • -V обеспечивает идентификатор диска (test_disk); это имя диска будет показано в Windows Explorer
    • Последнее в списке - это файлы, выбранные для упаковки в .iso (все файлы из /home/carla/)

    Теперь монтируем .iso для проверки. Я делаю тестовую директорию:

    $ mkdir /test_iso
    $ mount -t iso9660 -o ro,loop=/dev/loop0 test.iso /test_iso

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

    Запись образа на диск очень проста. Сначала определите адрес SCSI вашего CD-R/RW:

    Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jrg Schilling
    Linux sg driver version: 3.1.24
    Using libscg version 'schily-0.5'
    scsibus0:
    0,0,0 0) 'TOSHIBA ' 'DVD-ROM SD-M1202' '1020' Removable CD-ROM
    0,1,0 1) 'LITE-ON ' 'LTR-24102B ' '5S54' Removable CD-ROM
    0,2,0 2) *
    0,3,0 3) *
    0,4,0 4) *
    0,5,0 5) *
    0,6,0 6) *
    0,7,0 7) *

    Первые три числа для каждого устройства соответствуют шине SCSI, номеру устройства и LUN (Logical Unit Number), соответственно. (Четвертое число - это опять номер устройства). cdrecord требует эти три числа. В этом примере записывающее устройство - это 0,1,0. Все, что есть на шине SCSI 0, может быть сокращено до 1,0, отбросив первый 0. Это общее условие. Дополнительные шины, если они есть, должны быть указаны полностью - никаких сокращений.

    Теперь запишем на диск:

    $ cdrecord -v -eject speed=8 dev=0,1,0 test.iso

    • -v отладочная информация
    • -eject выдвинуть диск по окончании записи
    • -speed устанавливает скорость записи (8)
    • -dev номер устройства (0,1,0), определенный cdrecord -scanbus
    • Последнее - имя образа, который будет записан (test.iso)

    Это - простой и действенный способ создания дисков для публичного распространения, так как он создает диски, которые могут быть прочитаны на любой Windows или Linux системе. mkisofs хорош для создания .iso, а также позволяет создать файловые системы для многих платформ. За более подробной информацией обращайтесь к mkisofs man page.

    На быстрой машине с большим количеством памяти вы можете выполнять во время записи задачи, которые слабо загружают процессор, но лучше в это время ничего не делать. Лазер не может остановиться, а потом продолжить запись с того места, так что любое прерывание процесса - фатально.

    cdrecord будет пытаться запустить рекордер на максимальной скорости, так что необходимо указать скорость, стоит поэкспериментировать в этом. Установка низкой скорости полезна для уменьшения ошибок и предотвращения буфера. Современные рекордеры с технологией "burn-proof" (опять же - кто придумывает эти названия?) не подвержены опустошению буфера, в отличие от старых моделей.

    Чтобы просто скопировать исходный диск на записываемый, используйте команду:

    $ cdrecord -v dev=0,1,0 speed=4 -isosize /dev/scd0

    Эта команда направляет поток содержимого CD-ROM, /dev/scd0, на CD рекордер, dev=0,1,0. Не делайте этого на старой и медленной машине. Прямое копирование быстро, но очень велика вероятность ошибок. Лучше сначала сделать копию исходного диска на жесткий диск, а затем копировать с жесткого диска на CD рекордер:

    $ mount /cdrom
    $ dd if=/dev/scd0 of=/tmp/diskfile.iso
    $ cdrecord dev=0,1,0 speed=8 fs=8m -v -eject -dummy /tmp/diskfile.iso

    Обратите внимание на пару новых опций, fs=8m и -dummy. fs=8m определяет размер кольцевого буфера: чем больше, тем лучше. Помните, прерывание фатально; fs=8m создает достаточно большой буфер, чтобы не оставить рекордер без работы, если что-то замедлит передачу данных. Если 8 MB не достаточно, вам нужен компьютер получше. С другой стороны, больше, чем 8 MB ставить не стоит, так как операционная система будет тратить много времени на перезагрузку таблиц MMU (Memory Management Unit). По умолчанию 4 MB.

    -dummy -- это отличная опция для проверки перед рискованием реальным диском. Рекордер проделает всё с выключенным лазером, давая пользователю шанс выловить все ошибки перез записью на диск.

    CD построен из сессий, а сессии разделены на треки. Но односессионном диске есть начало, одна TOC (table of contents - таблица содержания), данные, и окончание, которое заканчивает диск и предотвращает дальнейшую запись на диск. mkisofs соединяет несколько сессий вместе. Создание мультисессионного диска может быть легче в программах с графическим интерфейсом типа X-CD-Roast или KonCD, но здесь будет рассказано, как сделать это из командной строки.

    Сначала вы записываете сессию на диск, используя опцию -multi в cdrecord:

    $ cdrecord -v -eject speed=8 dev=0,1,0 -multi test.iso

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

    $ cdrecord dev=0,1,0 -msinfo
    0,27139

    Убедитесь, что диск, на который вы будете добавлять данные, уже в рекордере. Затем добавьте две новых опции -C и -M:

    $ mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,1,0 /files/path/

    Ещё лучше дать это сделать оболочке:

    $ mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,1,0 -msinfo` -M 0,1,0 /files/path/

    Мультисессионные приводы читают последнюю записанную сессию. Эта команда берет TOC с последней сессии и комбинирует ее с новой TOC. Для последней сессии на диске не ставьте опцию -multi.

    Запись CD в Linux мощна и гибка. Рекордеры могут быть установлены в сети и использоваться для автоматического резервирования данных. mkisofs и cdrecord также работают и с DVD. Существует множество отличных графических программ для записи CD, но полная функциональность обеспечивается только с помощью командной строки.

    mount

    Сегодня в статье поговорим о том, как создать iso файл в linux. Рассмотрим несколько примеров по формированию образов iso с CD-диcка, с USB флеш диска, и из файлов и директорий расположенных на вашем ПК.

    iso файл – это своего рода архив, который целиком сохраняет структуру файловой системы носителя, указанного при его копировании/создании.

    Как создать ISO-файл из файлов на ПК

    Скопируйте нужные файлы, из которых будет создан ISO-файл, в какой-нибудь каталог .

    Откройте терминал. В Desktop Ubuntu/Debian нажмите ctrl+shift+T

    Введите следующую команду, которая создаст из файлов ISO-образ.

    • iso-directory — название директории, в которой хранятся файлы, на основе которых будет создан ISO-файл.
    • my_files.iso — название вашего будущего ISO-файла

    Имена файлов и директорий чувствительны к регистру, поэтому не забудьте про прописные буквы (если они есть).

    Как создать ISO-файл из компакт-диска

    Вставьте компакт-диск, который нужно скопировать на компьютер. Имейте в виду, что нельзя создать ISO-файл из компакт-диска с защитой от копирования (например, из аудио-компакт-диска или DVD-диска с фильмами).

    Для создания iso-образа воспользуемся командой dd. Создание ISO образов, это лишь малая часть возможностей этой утилиты. Итак, чтобы создать ISO образ диска в Linux выполните команду:

    • /dev/cdrom — стандартный путь в Linux к компакт-диску. Если у вас путь отличается, то вводим свой.
    • my_cd.iso – имя будущего ISO-файла.

    Если на компьютере есть несколько оптических приводов, они будут помечены цифрами, например, первый привод будет называться «cd0», второй – «cd1» и так далее.

    Возможно, система предложит вам ввести пароль, перед тем как создать ISO-файл. В этом случае введите пароль и нажмите ↵ Enter .

    Советы

    • В большинстве дистрибутивов Linux есть файловый менеджер, с помощью которого можно создать ISO-файл, используя контекстное меню (открывается щелчком правой кнопки мыши).
    • Для того чтобы примонтировать созданный Вами ISO образ, достаточно использовать команду:
    • /home/username/my_cd.iso — путь до iso-файла.
    • /mnt/myiso — путь куда монтируем наш iso-образ.

    Если есть вопросы, то пишем в комментариях.

    Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
    Заранее всем спасибо.

    Для удобства, я решил поделить всю статью на две части. А именно:

    Часть 1: Создание образа с диска или локальной папки.

    Часть 2: Запись\очистка CD\DVD

    * ISO-9660: Старый стандарт расположения данных, позволяющий использовать только стандарт 8.3 для имен файлов (т.е. 8 символов - имя файла и 3 — расширение).

    * Rock Ridge: Расширение ISO-9660, предполагающее использование длинных имен для файлов и UNIX-подобных ссылок. Позволяет сохранить все атрибуты файла, такие как владелец и права доступа. Атрибуты UNIX-файлов при чтении диска в Windows не отображаются.

    * Joliet: Расширение ISO-9660, разработанное Microsoft, которое позволяет использовать символы Unicode в именах файлов, так же как и использовать длинные имена файлов. Кроме того, Joliet предоставляет возможность создания урезанных имен для совместимости с MS-DOS, выглядящих наподобие FILENA

    1.TXT. Позволяет использовать имена файлов длиной до 64 символов, включая пробелы.

    ЧАСТЬ 1: Создание образа с диска или локальной папки.\n Так уж получилось, что в Linux создать образ можно несколькими разными способами, например используя утилиты, которые есть в любой современной сборке, или же встроенные средства самой ОС.

    Утилита Genisoimage (другое название mkisofs входит в состав пакета утилит под названием cdrtools) — Программа создания образа файловой системы для последующей записи на носитель. Утилита поддерживает расширенные форматы файловых систем для компакт дисков: Rock Ridge, Joliet, Blu-ray Disc и прочее.

    • Программы для записи компакт-дисков с графическим интерфейсом обычно неявно используют mkisofs. На основе mkisofs создан усовершенствованный пакет программ dvd+rw-tools, позволяющий дописывать перезаписываемые компакт-диски без необходимости создания образа диска.

    Позволяет создать такие типы образов как:

    • Загрузочные (boot).
    • С расширениями Rock Ridge. Эти расширения необходимы именно для ОС GNU\Linux, а точнее для работы с правами доступа пользователей.
    • С расширениями Joliet. Joliet-расширения не являются частью стандарта ISO9660.

    Эти расширения, в основном, используются в ОС Windows-подобных при записи дисков. Характерным для Joliet-расширений является: unicode-имена файлов и директорий, длина одного компонента пути может быть до 64 unicode-символов. Часто бывает полезно.

    Создание образа из папки Создать образ из папки можно, выполнив следующую команду.

    где, - iso-level 4 указывает не накладывать ограничения на длину имени файла и вложенность директорий. - o задаёт имя конечного образа. - J указывает использовать Joliet-расширения (если диск будет использоваться на ОС Windows). - yourname.iso /home/alex/doom3 задаёт папку, которая будет рекурсивно включена в образ.

    Можно поступить и проще, выполнив команду

    Для того чтобы смонтировать файл нам нужно выбрать точку монтирования, например

    Но прежде, создаем точку монтирования:

    Производим монтирования iso файла:

    где iso_file.iso — это наш образ; /media/iso/file_name/ — точка монтирования;

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

    и выполнить команду

    Чтобы образ монтировался автоматически при загрузке, добавьте следующую строку в /etc/fstab/

    Т.е. Сам процесс достаточно понятен и логичен. Создаем образ из необходимой нам папки, далее создаем точку монтирования (папку) после, монтируем образ и переходим в точку монтирования, где просматриваем содержимое образа.

    Аналогичным способом выше описанному, является метод использования mkisofs Не стоит забывать как и в первом случае, что если диск должен быть совместим с windows системами об этом надо позабоиться, включив в команду необходимые опции, а именно -r которая включает расширение RockRidge стандартной iso9660

    Образ будет сохранен в текущей директории.

    Создание образа с носителя Почему в заголовке, я написал создание образа «с носителя» а не с диска. Ответ прост, как не странно многие забывают, что образ это своего рода архив в котором целиком сохраняется структура файловой системы того носителя который был указан при создании самого образа, соответственно это может быть и диск и Flash-карта и много что еще.

    Тут все просто, что-бы создать образ CD\DVD выполняем следующую команду.

    /dev/cdrom — наше устройство /media/my_iso/name.iso — путь для сохранения образа. loopback устройства в ядре должны быть включены. Но об этом можно не париться, если конечно вы не сами собирали ядро.

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

    Стоит отметить этот способ не очень надежен. где /mnt/…/my.iso путь куда будет сделан образ. не забудьте, что папка /media/disk/ уже должна существовать.

    Для создания образа с диска, так же, можно поступить так.

    Утилита и опции нам уже известны.

    Для создания образа с Flash-карты мы можем использовать все те же команды и опции. Например выполнив вот эту команду, вы получите образ флэшки

    ЧАСТЬ 2: Запись\очистка оптических дисков в консоли. (CD-R\RW) Сама процедура делиться на два этапа, на первом этапе мы создаем образ с помощью mkisofs, на втором записываем этот образ на диск используя программу cdrecord. Все просто и понятно. Я опишу полностью весь процесс, от начала до конца. И так, поехали…

    Первым этапом копирования оптических дисков в консоли (как уже было сказано выше) является создания ISO-образа данных. Если в качестве источника выступает оптический носитель (не Audio CD), то достаточно выполнить команду:

    Система задумывается на какое-то время (это нормально, никаких внешних признаков вы не увидите), будет только гореть лампочка активности оптического привода и жесткого диска , что и говорит о том, что создается образ. Через 3-5 минут в текущей директории появиться новый файл test.iso, являющийся точной копией оптического диска в приводе /dev/cdrom.

    Если же исходные данные находятся на жестком диске (т.е. в директории или в нескольких), то необходимо собрать их все в одной папке. Например, в домашнем каталоге создаем папку burn и в нее перемещаем данные, необходимые для переноса на оптический носитель. Для создания ее образа необходимо в консоли набрать команду:

    В этом примере следующие обозначения:

    -o — имя создаваемого iso-файла (test.iso) -J — используем записи Joliet для совместимости с системой Windows -r — Rock Ridge расширение для совсестимости с *nix -v — так называемый verbose-режим. В этом случае в процессе создания образа будет выводиться различная дополнительная информация -V — указываем имя тома (test_disk); Это имя будет отображаться при просмотре в Windows

    Система вновь уходит в долгие раздумья, после чего создает новый файл folder_image.iso. Можно проверить, насколько корректно был создан образ. Для этого необходимо смонтировать наш ISO-файл, для этого создаем папку /media/iso_image/new и монтируем туда наш образ

    Зайдя в папку new, можно увидеть содержимое образа folder_image.iso. Этот же образ можно записать на оптический носитель. Но сперва нам необходимо узнать параметры вашего привода. Для этого можно воспользоваться командой:

    выводом команды будет что-то в роде:

    Выделенная жирным строка — это и есть наш привод, а цифры 0,0,0 — его адрес.

    Результаты работы данной команды будет необходимо использовать во время указания параметров ключа dev команды cdrecord. А именно адрес нашего оптического накопителя. Для записи оптического диска наберите команду:

    Обозначения здесь следующие: -v — verbose-режим. Обозначает тоже, что и в предыдущем случае -eject — выдвигает лоток привода после окончания процесса записи -speed — указываем скорость записи диска. В нашем случае — 48х -dev — записывающее устройство. Числа взяты из вывода программы cdrecord с параметром scanbus

    Параметр speed указывает скорость записи, -eject заставит привод выдвинуть лоток после окончания записи, fs определяет размер буфера FIFO, а -v указывает утилите выводить подробную информацию о ходе записи.

    Опции speed в качестве параметра так же можно передать ноль, speed=0 в таком случае программа сама выберет оптимальную скорость для записи диска, это конечно если вы не хотите указывать ее в ручную или вам это просто не нужно.

    Стоит сказать, что процесс можно полностью автоматизировать, написав скрипт, что будет сводить весь процесс к одному нажатию кнопки enter (о пути к файлу я молчу) Еще один интересный момент, это то, что все необходимые вам параметры можно занести в конфиг /etc/cdrecord/cdrecord и в будущем просто забыть о них.

    Запись CD-RW дисков В данном случае, есть несколько вариантов, диск может уже содержать данные, и нам либо надо дописать новые на диск, либо удалить старые и записать все по новой. Очистка диска может проводить как быстрая так полная. Быстрая выполняется командой:

    Через несколько секунд диск будет готов для записи. Oпции: blank=all — очистить весь диск blank=disc — то же самое blank=fast — быстрая очистка диска blank=session — очистить последнюю сессию blank=unclose — открыть последнюю записанную сессию

    Для прямого копирования содержимого с одного диска на другой можно воспользоваться командой:

    Эта команда перенаправляет поток данных с привода CD-ROM (/dev/scd1) на записывающий привод, dev=0,0,0. Прямое копирование достаточно удобная процедура, однако в случае возникновения ошибок вы можете испортить болванку. Для избежания печальных последствий лучше вначале сделать образ CD-ROM’a и сохранить его на жестком диске и лишь потом уже писать на болванку. Эта процедура будет иметь следующий вид:

    отвечают за следующее. С помощью fs=8m мы указываем программе размер буфера, чем больше, тем лучше. Важно также, чтобы он не опустошался во время записи. Указанных 8 мегабайт в обычных условиях вполне достаточно для качественной записи диска даже на слабых машинах. Опция -dummy позволяет протестировать привод прежде чем приступить непосредственно к записи данных.

    Создание мультисессийного диска Диски создаются сессиями, а сами сессии деляться на треки. Структура одной сессии такова: вводная часть, содержание сессии(TOC — Table Of Contents), непосредственно данные, и закрывающая часть, которая делает невозможным дальнейшее добавление данных на диск. Используя режим мультисессии несколько сессий можно объединить, слинковав их содержания. Создание многосессионых дисков очень просто с помощью графических программ, таких как X-CD-Roast или K3b. Но такая же процедура выполняется не намного сложнее и в консоли.

    Так создается первая сессия на диске. Опция -multi позволяет сделать диск открытым для добавления других сессий, оставляя диск читаемым. Для того, чтобы добавить еще одну сессию, программе mkisofs необходимо знать номера начального и конечного секторов диска. Узнать это можно следующим образом:

    Результат будет правильным, только в том случае, если диск записан с возможностью добавления данных. Теперь к уже известным параметрам программы mkisofs, рассмотренным ранее, добавим еще два — -C и -M

    В результате, команда для создания iso-образа будет иметь следующий вид:

    Можно так же эту команду объединить с предыдущей. В итоге, получим следующее:

    Теперь привод считает информацию о последней записанной сессии и объединит ее содержание с содержанием новой сессии. Предполагается, что последняя сессия записана с опцией -multi

    Запись DVD-R/RW Для этого необходим пакеты dvd+rw-tools, которые содержаться практически в любом современном дистрибутиве и включают в себя программы для записи и форматирования DVD-дисков. Для выполнение записи мы будем использовать утилиту growisofs, а так же dvd+rw-format для очистки DVD+RW. Запись DVD не намного отличается от записи CD-болванок. В этом легко убедиться.

    Запись DVD-/+R дисков Для этого нам потребуется утилита growisofs, которая входит к комплект dvd+rw-toots. Для записи используем команду

    для DVD+R или DVD-R Эта же команда может использоваться с опцией speed

    Для записи образа используем

    В процессе записи будет постоянно выводиться вся полезная информация о ходе записи. Надо отметить, что сам процесс весьма ресурсоемкий, так что могут наблюдаться торможения.

    Запись DVD-/+RW дисков Очистить диск можно выполнив команду

    Теперь диск готов, что-бы записать на него данные

    Пару слов Что сказать, запомнить все это, включая все опции, операнды, команды и т.п. тяжело, но оно и не к чему, если конечно вы не работаете исключительно с серверами, да еще и удаленно, в таки случаях вам нужно знать намного больше описанного. Суть в том, что часто выполняемые задачи можно автоматизировать, или же запомнить необходимые команды, не так уж сложно, это важно, так как в таком случае вы не будете иметь не малейших проблем с качеством записи и проблемами ресурсов системы. К тому же умея использовать эти окманды, выполнять все операции с дисками и образами вы будете еще и быстрее нежели в GUI. Приятной работы!

    Иногда возникает необходимость добавить, удалить или изменить файлы на iso образе. Например вы хотите добавить несколько треков на образ диска с музыкой или отредактировать параметры загрузки для Live CD. В Windows эта задача решалась очень просто, существует большое количество как известных так и не очень утилит с подобной функциональностью таких например Alcohol, UltraISO и т д. Но в Linux дела обстоят немного странным образом.

    С одной стороны в Linux работа с образами дисков поддерживается на уровне системы, без каких либо дополнительных утилит, но с другой файловая система iso не поддерживает редактирование данных. Поэтому все операции по изменению содержимого образов сводятся к распаковке, редактированию и обратной упаковке образа. Из этой статьи вы узнаете как отредактировать ISO образ в Linux.

    Редактирование iso образов в Linux

    Этот процесс немного трудоемкий, но он раскрывает суть работы с образами, будь то в Windows или Linux все происходит именно таким способом, только если вы используете дополнительные утилиты все действия будут автоматизированы и скрыты от пользователя. Вы будете чувствовать что редактируете образ напрямую внося изменения в его файловую систему, но это не так, это лишь видимость создаваемая утилитой.

    Шаг 1. Распаковка образа

    Монтируем образ, копируем из него содержимое во временную папку, вносим необходимые изменения и собираем образ обратно. Монтируем:


    Создаем временную папку и копируем данные:

    sudo mkdir /tmp/isowork

    sudo cp -R /mnt/* /tmp/isowork/


    Для примера был создан каталог в папке /tmp, но вы можете копировать в любое другое место на жестком диске.

    Шаг 2. Редактирование образа

    Переходим в временную папку и вносим изменения:

    Или можно открыть папку в графическом файловом менеджере и работать там:

    sudo nautilus /tmp/isowork

    Шаг 3. Сборка обычного образа

    Теперь разберемся как сделать ISO Linux. Когда редактирование закончено можно собрать образ обратно:

    mkisofs /tmp/isowork --iso-level 4 -J -R -o

    Здесь нам нужно использовать именно эти опции чтобы утилита применяла максимально современную файловую систему ISO и все файлы обрабатывались нормально.

    Шаг 4. Сборка загрузочного iso образа

    Если вы распаковали загрузочный образ, то и паковать его надо как загрузочный. Для этого придется использовать ещё несколько опций:

    mkisofs -o output.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -cache-inodes -no-emul-boot -boot-load-size 4 -boot-info-table -J -l -R -V "Новый образ" /tmp/isowork/


    Файлы isolinux/isolinux.bin и isolinux/boot.cat должны реально существовать на диске чтобы этот образ был собран без ошибок. Вам надо будет найти верные пути к ним.

    Чтобы полностью ответить на вопрос как iso образ сделать загрузочным Linux нам понадобится утилита isohybrid:

    Теперь с этого диска можно загрузить систему. Утилиту isohybrid можно установить вместе с пакетом syslinux-utils:

    sudo apt install syslinux-utils

    Если нужно чтобы образ грузился и в UEFI, то следует добавить опцию -u.

    Шаг 5. Проверка загрузочного ISO

    Прежде чем записывать полученный ISO образ его надо проверить на работоспособность. Для этого можно использовать набор эмуляторов qemu:

    sudo apt install qemu

    Для проверки образа выполните в терминале:

    qemu-system-x86_64 -boot d -cdrom /tmp/output.iso -m 512


    Если образ загрузился, значит всё хорошо. Если же он не работает - обратитесь к официальному руководству дистрибутива, для которого вы собираетесь редактировать iso образ. Обычно там будут описано как это делать верно, чтобы всё работало.

    Выводы

    В этой статье мы разобрались не только как выполняется редактирование iso образа в Linux, но и как происходит создание загрузочного iso образа linux. Конечно, этот метод будет работать не для всех дистрибутивов и не всегда, но он может послужить для вас отправной точкой.

    Читайте также: