Создание гибридного linux live ISO,средствами GRUB2-EFI

1.Подготовка ресурсов.

Для создания гибридного Linux Live ISO нам нужно воссоздать необходимую структуру.

Создадим для этого в домашнем каталоге $Home каталог с именем LIVE.

Скачиваем архив и распаковываем в каталог 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

которую можно скачать по адрессу 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 утилиты весьма интуитивен и крайне трудно сделать что то не то.

Печать/экспорт