Grub2


Загрузка Live.ISO из Grub2

Grub Customizer

В линукс есть "Grub Customizer", там нажать "новый пункт", ввести заголовок, выбрать тип загрузки "Прочее" и в окошке вставить код. Если без "Grub Customizer", то открываем grub.cfg и добавляем

menuentry "заголовок меню"{
    # тут наш многострочный блок кода
}

Чтобы не перезагружаться по нескольку раз можно делать несколько тестовых пунктов с разными параметрами и смотреть каждый на предмет изменений загрузки, а в имени пункта указывать основной критерий изменения, например некую опцию загрузки, например "MX Linux lang=RU" и т.д. Небольшие исправления во время теста можно вносить редактируя пункт на загрузке (e - редактировать, Ctrl+x выполнить отредактированный пункт)
Пункты меню появляются здесь "/etc/grub.d/proxifiedScripts/custom", и тут надо добавлять классы (--class mint, и т.д.)
Используйте defraggler, чтобы дефрагментировать файл-образ-iso (только файл). Если выдаст ошибку, то проверить файловую систему chkdsk`ом

Смысл всего этого

1. Я использую загрузку на стационарной системе, и это упрощает загрузку образов не тратя очередную флешку. Флешки остаются рабочими с проверенными загрузками Linux и Windows для установки систем.
2. Для клиента это может быть бесплатная и легальная фича, при поломке системы пользователь ещё может спокойно выйти в интернет.

Загрузка с флешки из Grub2

set root=(hd1)
chainloader +1

или

set root=(hd1,1)
chainloader +1

У меня при перезагрузке флешку надо передёргивать иначе загрузочное меню не видит флешку. А так же надо нажать F12 после пика системного динамика, чтобы вызвать меню. Но с этими пунктами проскакивание времени для F12 не критично.

Загрузка Grub4Dos из Grub2

menuentry "Grub4Dos" {
    search --set=root --file /grldr
    ntldr /grldr
    # linux16 /boot/grub4dos/grub.exe --config-file=/menu.lst
}


Вывод информации о дисках

echo "[---------------- Информация о дисках системы ----------------]"
ls -l
echo ""
echo "Нажмите клавишу ESC для возврата в главное меню..."
sleep --interruptible 9999

С учётом этой информации можно править пункт загрузки клавишей "e" и выполнить изменённый пункт с Ctrl+X

Вывод информации о переменных

set isofile="/boot/live.iso"
probe -u $root --set=imgdevuuid
set imgdevpath="/dev/disk/by-uuid/$imgdevuuid"
echo "[---------------- Информация переменных ----------------]"
echo "isofile="$isofile
echo "uuid="$imgdevuuid
echo "devpath="$imgdevpath
echo ""
echo "Нажмите клавишу ESC для возврата в главное меню..."
sleep --interruptible 9999