Модификация установочного ISO образа
Модификация установочного ISO образа
На примере Альт Рабочая станция 10.1 https://getalt.org/ru/alt-workstation/
Установка пакетов
# apt-get install xorriso squashfs-tools cdrkit-utils genisoimage
Скачивание образа
$ wget https://mirror.yandex.ru/altlinux/p10/images/workstation/x86_64/alt-workstation-10.1-x86_64.iso
Получение информации об образе
Данная информацию необходима для анализа исходного образа и указания соответствующих значений при обратной запаковке образа
$ isoinfo -d -i alt-workstation-10.1-x86_64.iso
Вывод см. ниже:
развернутьВывод команды: |
---|
$ xorriso -indev alt-workstation-10.1-x86_64.iso -toc -pvd_info
развернутьВывод команды: |
---|
Распаковка образа
$ mkdir altcustom $ xorriso -osirrox on -indev alt-workstation-10.1-x86_64.iso -extract / altcustom
Разрешаем правку владельцу:
$ chmod 700 -R ~/altcustom
Содержимое образа
В каталоге altcustom/ можно увидеть содержимое распакованного образа:
altinst <-- Файл образа
ALTLinux
boot
docs
EFI
index.html
license.all.html
license.ru.html
live <-- Файл образа
Metadata
rescue <-- Файл образа
syslinux
Для перепаковки, в первую очередь, интерес представляют squash-образы:
altinst live rescue
и каталог:
ALTLinux/
altinst — базовый образ для установки системы
live — образ для запуска LiveCD
rescue — образ для запуска RescueCD
ALTLinux/ — содержит набор пакетов для установки системы
Изменение содержимого образа
Для примера, распакуем образ altinst:
$ su - # cd /home/user <-- куда мы скопировали каталоги # unsquashfs altcustom/altinst
При этом в текущем каталоге будет создан дополнительный каталог squashfs-root/ с содержимым этого образа.
Запаковать образ обратно можно так, предварительно удалив существующий образ:
# rm -f altcustom/altinst # mksquashfs squashfs-root/ altcustom/altinst
Добавить свои пакеты в набор устанавливаемых пакетов можно по специальному разделу из статьи Autoinstall.
Создание ISO
Когда все манипуляции с образом будут выполнены, убедитесь, что в каталоге не осталось лишних файлов, и приступайте к сборке образа.
Чтобы новый ISO сохранил возможность запускаться с флешек, необходимо из исходного ISO получить гибридный MBR:
# dd if=alt-workstation-10.1-x86_64.iso of=altcustom/syslinux/isohdpfx.bin bs=512 count=1
После этого можно создавать гибридный ISO образ:
# cd altcustom/ # xorriso -as mkisofs -joliet -partition_cyl_align "off" -partition_offset 16 -iso-level 3 -full-iso9660-filenames -sysid "LINUX" -volid "ALT Workstation 9.0 x86_64" -volset "ALT" -publisher "BASEALT LTD" -appid "ALT WORKSTATION 9.0 X86_64 2019-10-22" -copyright "LICENSE_ALL_HTML" -eltorito-boot syslinux/isolinux.bin -eltorito-catalog syslinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -isohybrid-mbr syslinux/isohdpfx.bin -eltorito-alt-boot -efi-boot EFI/.efiboot.img -no-emul-boot -isohybrid-gpt-basdat -output ../alt-custom.iso .
xorriso -follow param -read_mkisofsrc ${UUID_ISO_SHRT:+-volume_date uuid "$UUID_ISO_SHRT"} -as mkisofs $verbose -J -l -r -exclude-list /tmp/.exclude -eltorito-boot boot/grub/bios.img -no-emul-boot -boot-load-size 4 -boot-info-table -partition_offset 16 --eltorito-catalog boot/grub/boot.cat --grub2-boot-info --grub2-mbr \$libdir/grub/i386-pc/boot_hybrid.img --mbr-force-bootable $efi_opts "\$imgdir/" || rc=\$?