=====Создание гибридного 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 утилиты весьма интуитивен и крайне трудно сделать что то не то.