Иногда возникает необходимость добавить, удалить или изменить файлы на iso образе. Например вы хотите добавить несколько треков на образ диска с музыкой или отредактировать параметры загрузки для Live CD. В Windows эта задача решалась очень просто, существует большое количество как известных так и не очень утилит с подобной функциональностью таких например Alcohol, UltraISO и т д. Но в Linux дела обстоят немного странным образом.
С одной стороны в Linux работа с образами дисков поддерживается на уровне системы, без каких либо дополнительных утилит, но с другой файловая система iso не поддерживает редактирование данных. Поэтому все операции по изменению содержимого образов сводятся к распаковке, редактированию и обратной упаковке образа. Из этой статьи вы узнаете как отредактировать ISO образ в Linux.
Содержание статьи:
Создаем временную папку и копируем данные:
Для примера был создан каталог в папке /tmp, но вы можете копировать в любое другое место на жестком диске.
Или можно открыть папку в графическом файловом менеджере и работать там:
Здесь нам нужно использовать именно эти опции чтобы утилита применяла максимально современную файловую систему ISO и все файлы обрабатывались нормально.
Файлы isolinux/isolinux.bin и isolinux/boot.cat должны реально существовать на диске чтобы этот образ был собран без ошибок. Вам надо будет найти верные пути к ним.
Чтобы полностью ответить на вопрос как iso образ сделать загрузочным Linux нам понадобится утилита isohybrid:
Теперь с этого диска можно загрузить систему. Утилиту isohybrid можно установить вместе с пакетом syslinux-utils:
Если нужно чтобы образ грузился и в UEFI, то следует добавить опцию -u.
Для проверки образа выполните в терминале:
Если образ загрузился, значит всё хорошо. Если же он не работает - обратитесь к официальному руководству дистрибутива, для которого вы собираетесь редактировать iso образ. Обычно там будут описано как это делать верно, чтобы всё работало.
С одной стороны в Linux работа с образами дисков поддерживается на уровне системы, без каких либо дополнительных утилит, но с другой файловая система iso не поддерживает редактирование данных. Поэтому все операции по изменению содержимого образов сводятся к распаковке, редактированию и обратной упаковке образа. Из этой статьи вы узнаете как отредактировать ISO образ в Linux.
Содержание статьи:
РЕДАКТИРОВАНИЕ ISO ОБРАЗОВ В LINUX
Этот процесс немного трудоемкий, но он раскрывает суть работы с образами, будь то в Windows или Linux все происходит именно таким способом, только если вы используете дополнительные утилиты все действия будут автоматизированы и скрыты от пользователя. Вы будете чувствовать что редактируете образ напрямую внося изменения в его файловую систему, но это не так, это лишь видимость создаваемая утилитой.ШАГ 1. РАСПАКОВКА ОБРАЗА
Монтируем образ, копируем из него содержимое во временную папку, вносим необходимые изменения и собираем образ обратно. Монтируем:
Код:
sudo mount ~/file.iso /mnt/
Создаем временную папку и копируем данные:
Код:
sudo mkdir /tmp/isowork
Код:
sudo cp -R /mnt/* /tmp/isowork/
Для примера был создан каталог в папке /tmp, но вы можете копировать в любое другое место на жестком диске.
ШАГ 2. РЕДАКТИРОВАНИЕ ОБРАЗА
Переходим в временную папку и вносим изменения:
Код:
cp /tmp/isowork
Или можно открыть папку в графическом файловом менеджере и работать там:
Код:
sudo nautilus /tmp/isowork
ШАГ 3. СБОРКА ОБЫЧНОГО ОБРАЗА
Теперь разберемся как сделать ISO Linux. Когда редактирование закончено можно собрать образ обратно:
Код:
mkisofs /tmp/isowork --iso-level 4 -J -R -o ~/file.iso
Здесь нам нужно использовать именно эти опции чтобы утилита применяла максимально современную файловую систему 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 /tmp/output.iso
Теперь с этого диска можно загрузить систему. Утилиту 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 образ. Обычно там будут описано как это делать верно, чтобы всё работало.