Grub2

Материал из sysadm
Перейти к навигации Перейти к поиску

Загрузка с флешки в режиме UEFI

  • EFI System раздел должен иметь специальный тип
    • для MBR: EF
    • для GPT: 01
  • USB диск не обязательно размечать в GPT, чтобы использовать EFI загрузку
  • EFI System раздел поддерживает только FAT12/16/32, exfat не поддерживается
  • FAT32, размер файла не может превышать 4ГБ, это проблема если нужно размещать большие ISO образы
  • exfat, поддерживает файлы больше 4ГБ и поддерживается в grub2, Windows, MacOS, Linux
  • Если нужно грузить флешку с EFI, то можно создать небольшой раздел с FAT16 для EFI загрузки, а второй раздел отформатировать в exfat

Установка grub2 в MBR на USB

mkdir /mnt/usb
mount /dev/sdXN /mnt/usb
mkdir /mnt/usb/boot

grub2-install --no-floppy --root-directory=/mnt/usb --boot-directory /mnt/usb/boot --target i386-pc /dev/sdX

# в некторых дистрибутивах команда имеет имя grub-install

Установка grub2 на USB в EFI раздел

# не проверено
# выдает предупреждение, что при такой установке необходимо отключать Secure Boot в UEFI(BIOS)
grub2-install --efi-directory /mnt/esp --boot-directory /mnt/usb/boot --target x86_64-efi --removable /dev/sdX1

# как вариант, создать правильную структуру каталогов и расположить готовые файлы для EFI загрузки grub2, с использованием подписанного посредника shim, чтобы Secure Boot пропускал
# пока только идея, не проверял


Пример загрузки Kali linux с iso образа LiveCD

menuentry "Kali Linux Live ISO" --class kali --class linux {
#    set root='(hd0,msdos1)'
    set isofile="/images/kali-linux-2023.3-live-amd64.iso"
#    rmmod tpm
    insmod exfat
    insmod loopback
    insmod iso9660
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live components quiet splash toram noeject findiso=${isofile} tpm_tis.interrupts=0
    initrd (loop)/live/initrd.img
}