UEFI оказалась не такой уж и сложной технологией.
Оказывается, можно просто создать раздел FAT32 с типом ef, сделать его активным, создать там папку EFI, а в ней BOOT. И положить туда grubx64.efi переименовав его в bootx64.efi. И при перезагрузке прошивка EFI материнской платы сама найдёт этот раздел, залезет в папку EFI/BOOT и загрузит и запустит bootx64.efi. И появится командная строка GRUB2.
Если подложить в правильное место grub.cfg, то появится меню, а не командная строка.
Поскольку я использовал для экспериментов GRUB из ubuntu, то в нём был захардкожен путь /EFI/ubuntu. Соответственно, туда и пришлось класть grub.cfg и grubenv (для удобства).
Но это при условии, если в NVRAM переменные BOOT001, BOOT002 и т.д. отсутствуют или ведут к несуществующим или поломанным загрузчикам. UEFI в первую очередь пытается загрузить файлы загрузчики из этих переменных.
Можно ещё распаковать в EFI раздел rEFInd, который может загружать разные операционные системы в режиме EFI. А поскольку он основывается на GRUB2, тоже умеет напрямую грузить ядро linux.