Модификация установочного ISO образа: различия между версиями
Нет описания правки |
Нет описания правки |
||
(не показано 14 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
== Модификация установочного ISO образа == | == Модификация установочного ISO образа == | ||
На примере Альт Рабочая станция 9 https://getalt.org/ru/alt-workstation/ | На примере Альт Рабочая станция 9.0 и Альт Рабочая станция 10 https://getalt.org/ru/alt-workstation/ | ||
=== Установка пакетов === | === Установка пакетов === | ||
apt-get install xorriso squashfs-tools cdrkit-utils genisoimage | # 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 | Скачать Альт Рабочая станция 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 | |||
=== Получение информации об образе === | === Получение информации об образе === | ||
Строка 16: | Строка 21: | ||
Данная информацию необходима для анализа исходного образа и указания соответствующих значений при обратной запаковке образа | Данная информацию необходима для анализа исходного образа и указания соответствующих значений при обратной запаковке образа | ||
isoinfo -d -i alt-workstation-9.0-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" | |||
!Вывод команды isoinfo: | |||
|- | |||
| | |||
<pre> | |||
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 | |||
</pre> | |||
|} | |||
{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em" | |||
!Вывод команды xorriso: | |||
|- | |||
| | |||
<pre> | |||
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 | |||
</pre> | |||
|} | |||
=== Распаковка образа === | === Распаковка образа === | ||
mkdir altcustom | Распаковка образа осуществляется в указанную нами директорию (в примере altcustom), где мы сможем править содержимое нашего будущего образа. | ||
xorriso -osirrox on -indev | |||
$ mkdir altcustom | |||
$ xorriso -osirrox on -indev путь_к_файлу.iso -extract / altcustom | |||
Разрешаем правку владельцу: | |||
$ chmod 700 -R ~/altcustom | |||
=== Содержимое образа === | === Содержимое образа === | ||
Строка 28: | Строка 127: | ||
<source lang="Bash"> | <source lang="Bash"> | ||
altinst | altinst <-- Файл образа | ||
ALTLinux | ALTLinux | ||
boot | |||
docs | docs | ||
EFI | EFI | ||
Строка 35: | Строка 135: | ||
license.all.html | license.all.html | ||
license.ru.html | license.ru.html | ||
live | live <-- Файл образа | ||
Metadata | Metadata | ||
rescue | rescue <-- Файл образа | ||
syslinux | syslinux | ||
</source> | </source> | ||
Строка 58: | Строка 158: | ||
Для примера, распакуем образ altinst: | Для примера, распакуем образ altinst: | ||
unsquashfs altcustom/altinst | $ su - | ||
# cd /home/user <-- куда мы скопировали каталоги | |||
# unsquashfs altcustom/altinst | |||
При этом в текущем каталоге будет создан дополнительный каталог <tt>squashfs-root/</tt> с содержимым этого образа. | При этом в текущем каталоге будет создан дополнительный каталог <tt>squashfs-root/</tt> с содержимым этого образа. | ||
Запаковать образ обратно можно так, предварительно удалив существующий образ: | Запаковать образ обратно можно так, предварительно удалив существующий образ: | ||
rm -f altcustom/altinst | # rm -f altcustom/altinst | ||
mksquashfs squashfs-root/ altcustom/altinst | # mksquashfs squashfs-root/ altcustom/altinst | ||
Добавить свои пакеты в набор устанавливаемых пакетов можно | Добавить свои пакеты в набор устанавливаемых пакетов можно по специальному [[Autoinstall#Делаем_«собственный»_дистрибутив|разделу из статьи Autoinstall]]. | ||
=== Создание ISO === | === Создание ISO === | ||
Строка 73: | Строка 175: | ||
Чтобы новый ISO сохранил возможность запускаться с флешек, необходимо из исходного ISO получить гибридный MBR: | Чтобы новый ISO сохранил возможность запускаться с флешек, необходимо из исходного ISO получить гибридный MBR: | ||
dd if= | # 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> на свои, полученные на этапе анализа исходного образа}} | ||
cd altcustom/ | '''Создание образа на основе Альт Рабочая станция 9.0''' | ||
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 . | # 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 . | |||
{{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/ — содержит набор пакетов для установки системы
Изменение содержимого образа
Для примера, распакуем образ 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 образ:
Создание образа на основе Альт Рабочая станция 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 .
- Команда проверялась на "Альт Рабочая станция 10.1" и "Альт рабочая станция К 10.3"
- Для --grub2-mbr вместо "syslinux/isohdpfx.bin" можно указать путь до исходного ISO образа.