Чисто для перевірки, що UEFI таки працює. Дещо інше.
sgdisk --zap-all /dev/sda
sgdisk --new=1:0:0 --typecode=1:ef00 /dev/sda
mkfs.vfat -F32 -n UBUNTU /dev/sda1
mount /dev/sda1 /mnt/flash
mkdir -p /mnt/flash/EFI/BOOT
cd /mnt/flash/EFI/BOOT
wget https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso
cat - > grub.cfg <<'CONFIG'
menuentry "Ubuntu 20.04 LTS" {
set isofile="ubuntu-20.04.3-desktop-amd64.iso"
loopback loop (hd0,gpt1)/EFI/BOOT/$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/EFI/BOOT/$isofile noprompt noeject quiet splash
initrd (loop)/casper/initrd
}
CONFIG
# А тепер якась дичина
grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
fat iso9660 part_gpt part_msdos \
normal boot linux configfile loopback chain \
efifwsetup efi_gop efi_uga \
ls search search_label search_fs_uuid search_fs_file \
gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
exfat ext2 ntfs btrfs hfsplus udf
Всього лише три файли на флешці:
EFI/BOOT/ubuntu-20.04.3-desktop-amd64.iso
EFI/BOOT/grub.cfg
EFI/BOOT/bootx64.efi
І воно працює. Ну, майже працює: GRUB показує меню, ядро та initrd завантажується, splash трохи крутиться. Десь я щось з параметрами ядра криво прописав, але то вже дрібниці. (Оновлення від 20 липня: виправив; путь імені файлу був кривий). Головне, що етап UEFI відпрацьовує нормально.
Чому ж не працює той Debian, який я ставлю через debootstrap?