
ISO-образ позволяет собрать набор файлов в единый образ для записи на диск, использования в виртуальных машинах или передачи другим системам. В Linux одним из стандартных инструментов для этой задачи является утилита mkisofs, входящая в пакет cdrtools. Она поддерживает создание загрузочных образов и настройку метаданных ISO.
Перед сборкой важно организовать файлы в отдельный каталог, соблюдая структуру, которую необходимо сохранить в образе. Например, для загрузочных ISO системных дистрибутивов требуется наличие каталога boot и загрузочного файла isolinux.bin. Некорректное размещение файлов приведет к ошибкам при монтировании или загрузке ISO.
mkisofs предоставляет ключи для управления параметрами ISO: -o для указания имени образа, -V для метки тома, -b для загрузочного сектора и -R или -J для поддержки расширений Rock Ridge и Joliet. Знание этих опций позволяет точно формировать образ с требуемыми свойствами.
После создания ISO важно проверить его корректность. Это можно сделать, смонтировав образ через mount -o loop или запустив его в виртуальной машине. Проверка гарантирует, что файлы доступны, структура сохранена, а загрузка проходит без ошибок.
Подготовка каталога с файлами для последующей сборки ISO
Перед созданием ISO важно правильно организовать каталог с файлами. Рекомендуется создать отдельный рабочий каталог, например ~/iso_source, и скопировать туда все необходимые данные, сохраняя структуру подкаталогов. Для загрузочных образов необходимо разместить файлы загрузчика в каталоге boot и проверить наличие файла isolinux.bin или аналогичного.
Для удобства контроля можно составить таблицу с содержимым каталога, указав путь, размер и права доступа. Это позволит выявить лишние файлы или отсутствующие компоненты до сборки ISO.
| Путь | Размер | Права доступа | Назначение |
|---|---|---|---|
| ~/iso_source/boot/isolinux.bin | 120 KB | 644 | Загрузочный сектор |
| ~/iso_source/boot/isolinux.cfg | 3 KB | 644 | Конфигурация загрузчика |
| ~/iso_source/docs/manual.pdf | 1.2 MB | 644 | Документация |
| ~/iso_source/data/ | – | 755 | Основные файлы приложения |
Перед запуском mkisofs рекомендуется проверить права доступа и наличие скрытых файлов. Символьные ссылки можно включать с помощью опции -R для сохранения структуры каталогов. Удаление временных и резервных файлов снижает размер конечного образа и предотвращает ошибки при монтировании.
Проверка наличия mkisofs и установка нужного пакета
Для создания ISO в Linux необходимо наличие утилиты mkisofs, входящей в пакет cdrtools или genisoimage в современных дистрибутивах. Проверку можно выполнить через команду:
which mkisofs– возвращает путь к исполняемому файлу, если утилита установлена.mkisofs -version– отображает версию и подтверждает работоспособность.
Если утилита отсутствует, следует установить пакет через системный менеджер:
- Для Debian/Ubuntu:
sudo apt updatesudo apt install genisoimage- Для CentOS/RHEL:
sudo yum install genisoimage- Для Fedora:
sudo dnf install genisoimage- Для Arch Linux:
sudo pacman -S cdrtools
После установки рекомендуется снова выполнить mkisofs -version, чтобы убедиться в корректной установке. При работе с ISO образами, требующими загрузочного сектора, наличие последних версий mkisofs или genisoimage важно для поддержки современных форматов файловой системы и параметров загрузки.
Базовая команда mkisofs для создания простого ISO-образа
Для создания простого ISO-образа используется команда mkisofs с указанием исходного каталога и имени конечного файла. Простейший вариант выглядит так:
mkisofs -o ~/image.iso ~/iso_source
Где:
- -o ~/image.iso – путь и имя создаваемого ISO-образа.
- ~/iso_source – каталог с подготовленными файлами и подкаталогами.
Для сохранения прав доступа и символических ссылок рекомендуется использовать опции -R (Rock Ridge) и -J (Joliet для Windows):
mkisofs -o ~/image.iso -R -J ~/iso_source
Эта команда создаёт ISO, который сохраняет права пользователей, поддерживает длинные имена файлов и совместим с Windows. После завершения сборки образ можно проверить командой file ~/image.iso или смонтировать через mount -o loop ~/image.iso /mnt для проверки структуры и содержимого.
Добавление загрузочной области с помощью параметра -b

Чтобы ISO-образ был загрузочным, необходимо указать файл загрузочного сектора с помощью параметра -b. Обычно используется файл isolinux.bin или другой загрузчик, размещённый в каталоге boot.
Пример базовой команды для создания загрузочного ISO:
mkisofs -o ~/bootable.iso -b boot/isolinux.bin -c boot/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ~/iso_source
Описание ключей:
- -b boot/isolinux.bin – путь к загрузочному файлу внутри исходного каталога.
- -c boot/boot.cat – создаёт таблицу загрузочных каталогов (обязательна для El Torito).
- -no-emul-boot – указывает, что загрузка выполняется без эмуляции дискеты.
- -boot-load-size 4 – размер загрузочного сегмента в 512-байтовых блоках.
- -boot-info-table – добавляет таблицу информации о загрузке в ISO.
Для проверки работоспособности загрузочного ISO рекомендуется смонтировать его в виртуальной машине и убедиться, что процесс загрузки начинается корректно. Неправильный путь к файлу или отсутствие boot.cat приведёт к невозможности загрузки.
Настройка метаданных ISO через параметры -V и -publisher
Для присвоения метаданных ISO-образу используются параметры -V и -publisher. Метка тома через -V отображается при монтировании ISO и помогает идентифицировать образ.
Пример команды с настройкой метаданных:
mkisofs -o ~/custom.iso -V "MyLinuxISO" -publisher "CompanyName" -R -J ~/iso_source
Описание ключей:
- -V «MyLinuxISO» – задаёт метку тома, ограничение до 32 символов для совместимости с Rock Ridge.
- -publisher «CompanyName» – указывает издателя ISO, информация сохраняется в метаданных.
- -R – сохраняет права и символические ссылки.
- -J – поддержка длинных имён файлов для Windows.
Настройка метаданных особенно важна для корпоративных и дистрибутивных образов, чтобы обеспечить корректное отображение информации о томе и издателе при использовании на разных системах. После сборки ISO метку и издателя можно проверить командой isoinfo -d -i ~/custom.iso.
Обработка символьных ссылок и прав доступа при создании ISO

При создании ISO через mkisofs важно учитывать символьные ссылки и права доступа к файлам. По умолчанию ссылки могут быть проигнорированы, что нарушит структуру каталога внутри образа. Для сохранения ссылок используется опция -R, которая включает поддержку расширений Rock Ridge.
Пример команды с обработкой ссылок и прав:
mkisofs -o ~/secure.iso -R -J ~/iso_source
Важные моменты:
- Опция -R сохраняет права доступа, владельца, группу и символические ссылки.
- Опция -J обеспечивает поддержку длинных имён файлов и совместимость с Windows.
- Перед сборкой ISO рекомендуется проверить права через ls -lR ~/iso_source, чтобы выявить файлы с неправильными правами.
- Для удаления лишних временных файлов можно использовать find ~/iso_source -type f -name «*.tmp» -delete, чтобы снизить размер образа и исключить ошибки.
Соблюдение этих правил гарантирует, что структура каталога и права доступа в ISO совпадут с исходными, что особенно важно для системных или корпоративных образов.
Проверка получившегося ISO-образа в эмуляторе или виртуальной машине

После создания ISO необходимо убедиться в корректности структуры и загрузки. Для проверки можно использовать монтирование через loop или запуск в виртуальной машине.
Монтирование образа в Linux выполняется командой:
sudo mount -o loop ~/image.iso /mnt
Это позволяет просмотреть содержимое ISO и убедиться, что все каталоги и файлы на месте. Проверка особенно важна для загрузочных образов, чтобы убедиться в доступности boot/isolinux.bin и корректной работе конфигурации загрузчика.
Для тестирования загрузки рекомендуется использовать эмулятор или виртуальную машину:
- QEMU:
qemu-system-x86_64 -boot d -cdrom ~/image.iso -m 1024 - VirtualBox: создать новую виртуальную машину, выбрать ISO в качестве загрузочного диска и запустить.
- VMware: аналогично, подключить ISO к виртуальному CD/DVD-приводу и запустить виртуальную машину.
Во время теста нужно убедиться, что процесс загрузки проходит без ошибок, меню загрузчика отображается корректно, а файлы доступны для чтения и копирования. Любые проблемы выявляются на этом этапе и позволяют внести изменения до записи на физический носитель.
Вопрос-ответ:
Как проверить, установлен ли mkisofs на Linux и какую версию я использую?
Для проверки наличия mkisofs выполните команду which mkisofs. Если утилита установлена, команда вернёт путь к исполняемому файлу. Для уточнения версии используйте mkisofs -version. В современных дистрибутивах утилита может входить в пакет genisoimage, поэтому при отсутствии mkisofs установите его через пакетный менеджер вашей системы.
Какая структура каталога нужна для создания загрузочного ISO?
ISO-образ должен содержать каталог с подготовленными файлами и подкаталогами. Для загрузочных образов необходимо создать папку boot и поместить туда файл загрузчика, например isolinux.bin, а также конфигурационный файл isolinux.cfg. Остальные файлы можно организовать по тематике или разделам приложения. Проверка структуры выполняется командой ls -lR.
Как сохранить права доступа и символические ссылки при создании ISO?
Используйте параметр -R при запуске mkisofs. Эта опция сохраняет права файлов, владельца, группу и символические ссылки. Для совместимости с Windows добавьте -J, чтобы поддерживались длинные имена файлов. Пример команды: mkisofs -o ~/image.iso -R -J ~/iso_source. Перед сборкой рекомендуется проверить права файлов командой ls -lR.
Как сделать ISO загрузочным через mkisofs?
Для создания загрузочного ISO используется параметр -b, указывающий путь к загрузочному файлу внутри каталога ISO. Дополнительно применяются -c для создания таблицы загрузки, -no-emul-boot для загрузки без эмуляции дискеты, -boot-load-size и -boot-info-table. Пример: mkisofs -o ~/bootable.iso -b boot/isolinux.bin -c boot/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table ~/iso_source. Проверку загрузки лучше выполнять в виртуальной машине или эмуляторе.
Как проверить созданный ISO перед записью на диск или передачей?
Проверить ISO можно несколькими способами. Первый — монтирование через loop: sudo mount -o loop ~/image.iso /mnt, чтобы убедиться в правильности структуры и доступности файлов. Второй способ — запуск в виртуальной машине через QEMU, VirtualBox или VMware, чтобы проверить загрузку и работоспособность загрузчика. Это позволяет выявить ошибки до записи на физический носитель.
