(Pls cc: me as I am not subscribed.)
The problem then becomes that 4 files, 2 in /etc/grub/ and 2 in /usr/lib/os-prober, that test for that directory exit early or generate an erroneous /etc/grub-efi.cfg. Specifically, it uses linux16/initrd16 to boot bare metal (which doesn't work) instead of linuxefi and initrdefi; and it doesn't detect a Windows partition, and generate a chain loader stanza for it. If you negate the test ('if [ ! -d /sys/firmware/efi ]; then' instead of '-d') or ignore the result, you generate a correct grub.cfg. Generating grub.cfg under bare metal is also correct, but I'm not going to keep rebooting everytime I get a kernel or xen update!
The solution is supposed to be use multiboot2 in grub instead of multiboot, but when I tried that, it complained that I don't have a multiboot2 header. Does anyone know how to generate one, and where it goes? Thx.
(Fedora 24) |