Модификация установочного ISO образа
Модификация установочного ISO образа
На примере Альт Рабочая станция 9.0 https://getalt.org/ru/alt-workstation/
Установка пакетов
# apt-get install xorriso squashfs-tools cdrkit-utils genisoimage
Скачивание образа
$ wget https://mirror.yandex.ru/altlinux/p9/images/workstation/x86_64/alt-workstation-9.0-x86_64.iso
Получение информации об образе
Данная информацию необходима для анализа исходного образа и указания соответствующих значений при обратной запаковке образа
$ isoinfo -d -i alt-workstation-9.0-x86_64.iso
Вывод см. ниже:
Вывод команды: |
---|
CD-ROM is in ISO 9660 format System id: LINUX Volume id: ALT Workstation 9.0 x86_64 Volume set id: ALT Publisher id: BASEALT LTD Data preparer id: XORRISO-1.5.4 2021.01.30.150001, LIBISOBURN-1.5.4, LIBISOFS-1.5.4, LIBBURN-1.5.4 Application id: ALT WORKSTATION 9.0 X86_64 2023-01-26 Copyright File id: LICENSE_ALL_HTML Abstract File id: Bibliographic File id: Volume set size is: 1 Volume set sequence number is: 1 Logical block size is: 2048 Volume size is: 3565951 El Torito VD version 1 found, boot catalog is in sector 1172 Joliet with UCS level 3 found Rock Ridge signatures version 1 found Eltorito validation header: Hid 1 Arch 0 (x86) ID '' Key 55 AA Eltorito defaultboot header: Bootid 88 (bootable) Boot media 0 (No Emulation Boot) Load segment 0 Sys type 0 Nsect 4 Bootoff 495 1173 |
$ xorriso -indev alt-workstation-9.0-x86_64.iso -toc -pvd_info
Вывод команды: |
---|
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project. xorriso : NOTE : Loading ISO image tree from LBA 0 xorriso : UPDATE : 4149 nodes read in 1 seconds xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded Drive current: -indev 'alt-workstation-9.0-x86_64.iso' Media current: stdio file, overwriteable Media status : is written , is appendable Boot record : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT Media summary: 1 session, 3565951 data blocks, 6965m data, 229g free Volume id : 'ALT Workstation 9.0 x86_64' Drive current: -indev 'alt-workstation-9.0-x86_64.iso' Drive access : exclusive:unrestricted Drive type : vendor 'YOYODYNE' product 'WARP DRIVE' revision 'FX01' Media current: stdio file, overwriteable Media status : is written , is appendable Media blocks : 3565951 readable , 120293428 writable , 123859380 overall Boot record : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT Boot catalog : '/boot/grub/boot.cat' Boot image : '/boot/grub/bios.img' , boot_info_table=on , grub2_boot_info=on Boot image : '/EFI/.efiboot.img' , platform_id=0xEF ISO offers : Rock_Ridge Joliet ISO loaded : Rock_Ridge TOC layout : Idx , sbsector , Size , Volume Id ISO session : 1 , 0 , 3565951s , ALT Workstation 9.0 x86_64 Media summary: 1 session, 3565951 data blocks, 6965m data, 229g free Media nwa : 3565952s Drive current: -indev 'alt-workstation-9.0-x86_64.iso' PVD address : 16s Volume Id : ALT Workstation 9.0 x86_64 Volume Set Id: ALT Publisher Id : BASEALT LTD Preparer Id : XORRISO-1.5.4 2021.01.30.150001, LIBISOBURN-1.5.4, LIBISOFS-1.5.4, LIBBURN-1.5.4 App Id : ALT WORKSTATION 9.0 X86_64 2023-01-26 System Id : LINUX CopyrightFile: LICENSE_ALL_HTML Abstract File: Biblio File : Creation Time: 2023012610542500 Modif. Time : 2023012610542500 Expir. Time : 0000000000000000 Eff. Time : 0000000000000000 |
Распаковка образа
$ mkdir altcustom $ xorriso -osirrox on -indev alt-workstation-9.0-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-9.0-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 .