=====Создание гибридного linux live ISO,средствами GRUB2-EFI=====
Статья в стадии доработки
*[[https://www.altlinux.org/Модификация_установочного_ISO_образа]]
*https://forum.rosalinux.ru/viewtopic.php?t=8526
====1.Подготовка ресурсов.====
Для создания гибридного Linux Live ISO нам нужно воссоздать необходимую структуру.
Создадим для этого в домашнем каталоге $Home каталог с именем LIVE.
Скачиваем [[https://disk.yandex.ru/d/8J99quPrQpgmYw|архив]]
и распаковываем в каталог LIVE.
после распаковки , в каталоге ~/LIVE должны появится два каталога :
~/LIVE/boot
~/LIVE/EFI
и скрипт с названием gen_iso-gr2.sh
Также каталог с ресурсами linux пусть это будет условно live необходимо скопировать в ~/LIVE/ рядом с ~/LIVE/boot
~/LIVE/EFI
====2. Структура.====
===Каталог ~/LIVE/boot обладает такой структурой===
внутри ~/LIVE/boot находится каталог /grub
внутри которого
core.img
grub.cfg
grub-mkimage.sh
/iso
loopback.cfg
содержимое конфигурационного grub.cfg
#This file is for compatibility to Linux's uEFI secure boot.
#The real config file for grub is /EFI/boot/grub.cfg.
configfile /EFI/BOOT/grub.cfg
в котором указано что конфигурационный файл загрузки в EFI/boot/grub.cfg.
===каталог /iso содержит===
boot_hybrid.img --файл гибридного загрузчика, используемый для запуска операционной системы Linux с Live ISO-образа для создания гибридного Live ISO-образа для установки Linux на компьютерах с поддержкой UEFI.
efi.img --- файл образа раздела EFI (Extensible Firmware Interface), который используется для загрузки операционной системы Linux на компьютерах с поддержкой UEFI
grub2.eltorito -- файл загрузчика GRUB2 в формате El Torito, который используется для загрузки операционной системы Linux с CD или DVD диска. Этот файл содержит необходимые данные загрузчика, которые позволяют загрузить операционную систему с оптического диска.
`grub2.eltorito` используется для создания гибридного Live ISO-образа, который может быть установлен на компьютерах с поддержкой UEFI или BIOS
====Каталог ~/LIVE/EFI обладает такой структурой====
Каталог ~/LIVE/EFI содержит каталог /BOOT внутри которого следующая структура
/autoiso
BOOTia32.efi
BOOTx64.efi
grub.cfg
grubx64.efi
/i386-efi
/i386-pc
/iso-configs
/lf-auto
menu23.lst
menu-ati.lst
menu.lst
menu-nv.lst
ru.mo
ter-u18n.pf2
/x86_64-efi
Каталог `~/LIVE/EFI` содержит файлы и подкаталоги, необходимые для загрузки операционной системы Linux на компьютерах с поддержкой UEFI. Этот каталог является частью структуры гибридного Live ISO-образа.
В файле `grub.cfg` в каталоге `~/LIVE/EFI/BOOT` необходимо прописать конфигурацию загрузчика GRUB2, которая будет использоваться для загрузки операционной системы Linux с Live ISO-образа.
Конфигурация загрузчика GRUB2 может включать в себя различные настройки, такие как выбор языка, настройка разрешения экрана, выбор ядра операционной системы и т.д. Ниже приведен пример конфигурации загрузчика GRUB2, которую можно использовать для загрузки Live ISO-образа:
if loadfont $prefix/font.pf2 ; then
set default="0"
set timeout="3"
set hidden_timeout_quiet=false
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod gfxterm
insmod png
terminal_output gfxterm
fi
set color_normal=white/black
set color_highlight=black/white
background_image $prefix/bootlogo.png
set default_settings="load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 consoleblank=0 apparmor=0 net.ifnames=0 biosdevname=0"
set perch_settings="linux.flags=perch"
set console_settings="console=tty0 console=ttyS0,115200"
set linux_image="/live/boot/vmlinuz"
set initrd_img="/live/boot/initrfs.img"
set default=0
set message="Loading kernel and ramdisk..."
menuentry "---LIVE-LINUX---"{
echo $message
search --set -f $linux_image
linux $linux_image $default_settings quiet perchdir=resume
initrd $initrd_img
}
Эта конфигурация загрузчика GRUB2 определяет пункт меню "---LIVE-LINUX---", при выборе которого будет загружена операционная система Linux с Live ISO-образа. Строка linux указывает путь к ядру операционной системы, а строка initrd указывает путь к файлу инициализации. Остальные параметры в строке linux используются для настройки процесса загрузки операционной системы.
Конфигурация загрузчика GRUB2 может отличаться в зависимости от конкретного дистрибутива Linux и требований пользователя. Важно проверить, что конфигурация соответствует требованиям вашего дистрибутива и что все пути к файлам указаны верно.
====3. Создание гибридного ISO образа.====
Для создания гибридного ISO образа необходимо открыть терминал по пути ~/LIVE
и ввести команду для запуска скрипта
./gen_iso-gr2.sh
на уровень выше каталога ~/LIVE то есть в домашнем каталоге будет создан ISO образ имя которого содержит текущее число месяц год. ISO гибридное ,то есть его можно записать на флэшку , также на Cd диск, также его можно запустить в виртуальной машине.
====4. Запись ISO на флэшку.====
===dd===
Для записи Iso на флэшку можем использовать dd для этого вводим в терминал команду
dd if=/path/to/image.iso of=/dev/sdX bs=4M status=progress oflag=sync
где -- /path/to/image.iso это полный путь до вашего ISO
/dev/sdX -- это имя вашей флэшки
узнать можно введя команду
lsblk
например может принять имя sdb
После записи ISO на флэшку используя dd, флэшка будет дорступна только для чтения,
для того чтоб вернуть ей возможность стать записываемой ,после того как нам дистрибутив на флешке не будет нужен ,
её следует забить нулями командой:
sudo dd if=/dev/null of=/dev/sdb bs=4M status=progress oflag=sync
, и после отформатировать либо в Gparted, либо другими удобными средствами.
===mintstick===
Для записи гибридного ISO на флэшку , и у вас дистрибутив на основе Debian ,можем использовать более безопасную утилиту mintstick
которую можно скачать по адрессу {{https://ftp5.gwdg.de/pub/linux/debian/mint/packages/pool/main/m/mintstick/mintstick_1.5.6_all.deb}}
открываем терминал в директории с этим deb файлом и установить её с помощью команды sudo apt install ./mintstick_1.5.6_all.deb
после установки у нас появятся в пункте меню 2 утилиты
Одна для форматирования USB накопителя
Вторая для записи ISO на флэшку.
mintstick при записи использует похожий на dd способ побайтового переноса данных.
Утилита весьма простая и надёжная.
Как использовать примерно можете прочитать тут
https://www.alv.me/mint-firmennyj-instrumentarij-Programm/
Gui утилиты весьма интуитивен и крайне трудно сделать что то не то.