Модификация установочного ISO образа: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 12 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Broken}}
== Модификация установочного ISO образа ==
== Модификация установочного ISO образа ==


На примере Альт Рабочая станция 10.1 https://getalt.org/ru/alt-workstation/
На примере Альт Рабочая станция 9.0 и Альт Рабочая станция 10 https://getalt.org/ru/alt-workstation/


=== Установка пакетов ===
=== Установка пакетов ===
Строка 9: Строка 8:


=== Скачивание образа ===
=== Скачивание образа ===
Скачать Альт Рабочая станция 9.0
$ wget https://mirror.yandex.ru/altlinux/p9/images/workstation/x86_64/alt-workstation-9.0-x86_64.iso
Скачать Альт Рабочая станция 10.1


  $ wget https://mirror.yandex.ru/altlinux/p10/images/workstation/x86_64/alt-workstation-10.1-x86_64.iso
  $ wget https://mirror.yandex.ru/altlinux/p10/images/workstation/x86_64/alt-workstation-10.1-x86_64.iso
Строка 16: Строка 21:
Данная информацию необходима для анализа исходного образа и указания соответствующих значений при обратной запаковке образа
Данная информацию необходима для анализа исходного образа и указания соответствующих значений при обратной запаковке образа


  $ isoinfo -d -i alt-workstation-10.1-x86_64.iso
  $ isoinfo -d -i путь_к_файлу.iso
$ xorriso -indev путь_к_файлу.iso -toc -pvd_info


Вывод см. ниже:
Примеры выводов для Альт Рабочая станция 9.0:


{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
!Вывод команды:
!Вывод команды isoinfo:
|-
|-
|
|
Строка 27: Строка 33:
CD-ROM is in ISO 9660 format
CD-ROM is in ISO 9660 format
System id: LINUX
System id: LINUX
Volume id: ALT Workstation 10.1 x86_64
Volume id: ALT Workstation 9.0 x86_64
Volume set id: ALT
Volume set id: ALT
Publisher id: BASEALT LTD
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
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 10.1 X86_64 2023-01-26
Application id: ALT WORKSTATION 9.0 X86_64 2023-01-26
Copyright File id: LICENSE_ALL_HTML
Copyright File id: LICENSE_ALL_HTML
Abstract File id:  
Abstract File id:  
Строка 56: Строка 62:
</pre>
</pre>
|}
|}
$ xorriso -indev alt-workstation-10.1-x86_64.iso -toc -pvd_info


{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
!Вывод команды:
!Вывод команды xorriso:
|-
|-
|
|
Строка 69: Строка 73:
xorriso : UPDATE :    4149 nodes read in 1 seconds
xorriso : UPDATE :    4149 nodes read in 1 seconds
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
xorriso : NOTE : Detected El-Torito boot information which currently is set to be discarded
Drive current: -indev 'alt-workstation-10.1-x86_64.iso'
Drive current: -indev 'alt-workstation-9.0-x86_64.iso'
Media current: stdio file, overwriteable
Media current: stdio file, overwriteable
Media status : is written , is appendable
Media status : is written , is appendable
Boot record  : El Torito , MBR protective-msdos-label grub2-mbr cyl-align-off GPT
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
Media summary: 1 session, 3565951 data blocks, 6965m data,  229g free
Volume id    : 'ALT Workstation 10.1 x86_64'
Volume id    : 'ALT Workstation 9.0 x86_64'
Drive current: -indev 'alt-workstation-10.1-x86_64.iso'
Drive current: -indev 'alt-workstation-9.0-x86_64.iso'
Drive access : exclusive:unrestricted
Drive access : exclusive:unrestricted
Drive type  : vendor 'YOYODYNE' product 'WARP DRIVE' revision 'FX01'
Drive type  : vendor 'YOYODYNE' product 'WARP DRIVE' revision 'FX01'
Строка 88: Строка 92:
ISO loaded  : Rock_Ridge
ISO loaded  : Rock_Ridge
TOC layout  : Idx ,  sbsector ,      Size , Volume Id
TOC layout  : Idx ,  sbsector ,      Size , Volume Id
ISO session  :  1 ,        0 ,  3565951s , ALT Workstation 10.1 x86_64
ISO session  :  1 ,        0 ,  3565951s , ALT Workstation 9.0 x86_64
Media summary: 1 session, 3565951 data blocks, 6965m data,  229g free
Media summary: 1 session, 3565951 data blocks, 6965m data,  229g free
Media nwa    : 3565952s
Media nwa    : 3565952s
Drive current: -indev 'alt-workstation-10.1-x86_64.iso'
Drive current: -indev 'alt-workstation-9.0-x86_64.iso'
PVD address  : 16s
PVD address  : 16s
Volume Id    : ALT Workstation 10.1 x86_64
Volume Id    : ALT Workstation 9.0 x86_64
Volume Set Id: ALT
Volume Set Id: ALT
Publisher Id : BASEALT LTD
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
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 10.1 X86_64 2023-01-26
App Id      : ALT WORKSTATION 9.0 X86_64 2023-01-26
System Id    : LINUX
System Id    : LINUX
CopyrightFile: LICENSE_ALL_HTML
CopyrightFile: LICENSE_ALL_HTML
Строка 110: Строка 114:


=== Распаковка образа ===
=== Распаковка образа ===
Распаковка образа осуществляется в указанную нами директорию (в примере altcustom), где мы сможем править содержимое нашего будущего образа.


  $ mkdir altcustom
  $ mkdir altcustom
  $ xorriso -osirrox on -indev alt-workstation-10.1-x86_64.iso -extract / altcustom
  $ xorriso -osirrox on -indev путь_к_файлу.iso -extract / altcustom
 
Разрешаем правку владельцу:
$ chmod 700 -R ~/altcustom


=== Содержимое образа ===
=== Содержимое образа ===
Строка 166: Строка 175:


Чтобы новый ISO сохранил возможность запускаться с флешек, необходимо из исходного ISO получить гибридный MBR:
Чтобы новый ISO сохранил возможность запускаться с флешек, необходимо из исходного ISO получить гибридный MBR:
  # dd if=alt-workstation-10.1-x86_64.iso of=altcustom/syslinux/isohdpfx.bin bs=512 count=1
  # dd if=путь_к_файлу.iso of=altcustom/syslinux/isohdpfx.bin bs=512 count=1


После этого можно создавать гибридный ISO образ:
После этого можно создавать гибридный ISO образ:
{{Note|Замените значения параметров <tt>volid</tt> и <tt>appid</tt> на свои, полученные на этапе анализа исходного образа}}
{{Note|Замените значения параметров <tt>volid</tt> и <tt>appid</tt> на свои, полученные на этапе анализа исходного образа}}
'''Создание образа на основе Альт Рабочая станция 9.0'''
  # cd altcustom/
  # 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 -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 .
'''Создание образа на основе Альт Рабочая станция 10'''
# cd altcustom/
# xorriso -as mkisofs -joliet -iso-level 3 -full-iso9660-filenames -sysid "LINUX" -volid "ALT Workstation 10" -volset "ALT" -publisher "BASEALT LTD" -appid "ALT WORKSTATION" -copyright "LICENSE_ALL_HTML" -eltorito-boot boot/grub/bios.img --eltorito-catalog boot/grub/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info --protective-msdos-label --grub2-mbr syslinux/isohdpfx.bin -eltorito-alt-boot -e EFI/.efiboot.img -efi-boot-part EFI/.efiboot.img -no-emul-boot -output ../my-alt-custom.iso .
{{Note|
# Команда проверялась на "Альт Рабочая станция 10.1" и "Альт рабочая станция К 10.3"
# Для '''--grub2-mbr''' вместо "syslinux/isohdpfx.bin" можно указать путь до исходного ISO образа.}}


== Ссылки ==
== Ссылки ==
# https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO_(Русский)
# https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO_(Русский)
# https://linuxconfig.org/legacy-bios-uefi-and-secureboot-ready-ubuntu-live-image-customization
# https://linuxconfig.org/legacy-bios-uefi-and-secureboot-ready-ubuntu-live-image-customization

Текущая версия от 09:26, 29 сентября 2024

Модификация установочного ISO образа

На примере Альт Рабочая станция 9.0 и Альт Рабочая станция 10 https://getalt.org/ru/alt-workstation/

Установка пакетов

# apt-get install xorriso squashfs-tools cdrkit-utils genisoimage

Скачивание образа

Скачать Альт Рабочая станция 9.0

$ wget https://mirror.yandex.ru/altlinux/p9/images/workstation/x86_64/alt-workstation-9.0-x86_64.iso

Скачать Альт Рабочая станция 10.1

$ wget https://mirror.yandex.ru/altlinux/p10/images/workstation/x86_64/alt-workstation-10.1-x86_64.iso

Получение информации об образе

Данная информацию необходима для анализа исходного образа и указания соответствующих значений при обратной запаковке образа

$ isoinfo -d -i путь_к_файлу.iso
$ xorriso -indev путь_к_файлу.iso -toc -pvd_info

Примеры выводов для Альт Рабочая станция 9.0:

Вывод команды isoinfo:
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:
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

Распаковка образа

Распаковка образа осуществляется в указанную нами директорию (в примере altcustom), где мы сможем править содержимое нашего будущего образа.

$ mkdir altcustom
$ xorriso -osirrox on -indev путь_к_файлу.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/ — содержит набор пакетов для установки системы

Изменение содержимого образа

Примечание: Распаковку и упаковку squash-образов следует проводить исключительно от пользователя root


Для примера, распакуем образ 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=путь_к_файлу.iso of=altcustom/syslinux/isohdpfx.bin bs=512 count=1

После этого можно создавать гибридный ISO образ:

Примечание: Замените значения параметров volid и appid на свои, полученные на этапе анализа исходного образа

Создание образа на основе Альт Рабочая станция 9.0

# 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 .

Создание образа на основе Альт Рабочая станция 10

# cd altcustom/
# xorriso -as mkisofs -joliet -iso-level 3 -full-iso9660-filenames -sysid "LINUX" -volid "ALT Workstation 10" -volset "ALT" -publisher "BASEALT LTD" -appid "ALT WORKSTATION" -copyright "LICENSE_ALL_HTML" -eltorito-boot boot/grub/bios.img --eltorito-catalog boot/grub/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info --protective-msdos-label --grub2-mbr syslinux/isohdpfx.bin -eltorito-alt-boot -e EFI/.efiboot.img -efi-boot-part EFI/.efiboot.img -no-emul-boot -output ../my-alt-custom.iso .
Примечание:
  1. Команда проверялась на "Альт Рабочая станция 10.1" и "Альт рабочая станция К 10.3"
  2. Для --grub2-mbr вместо "syslinux/isohdpfx.bin" можно указать путь до исходного ISO образа.


Ссылки

  1. https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO_(Русский)
  2. https://linuxconfig.org/legacy-bios-uefi-and-secureboot-ready-ubuntu-live-image-customization