I’m trying to build a custom grub menu for an UEFI Windows/Linux multiboot setup. I’ve successfully tested the menu via a USB drive, containing:
/EFI/boot/BOOTX64.EFI /grub/grub.cfg /grub/x86_64-efi/* …etc.
When booting from this drive, I can access the menu without issue. Next, I transfer grub to my PC's EFI system partition:
/boot/grub/bootx64.efi /boot/grub/grub.cfg /boot/grub/x86_64-efi/* …etc.
Also on that partition is Windows’ bootloader, in
Finally, I use the Windows utility BOOTICE (or just the system BIOS) to add an entry for
\boot\grub\bootx64.efi. I reboot, and up comes grub.
...Except rather than bringing up the menu, I end up at a rescue prompt. My assumption was that I'd simply put grub.cfg & the modules in the wrong place – however, what’s really strange is that
ls shows no partitions – just
(hd0) (hd1). My expectation was for something like
(hd0) (hd0,msdos1), etc – but grub rescue can’t seem to
ls any partitions at all.
ls (hd0) and
ls (hd1) both yield “Filesystem is unknown.”
My system contains a single physical disk, with partitions:
1 = EFI system partition (fat32) 2 = Veracrypted partition (with Windows installation) 3 = Veracrypted partition (data) 4 = Linux swap 5 = Linux root 6 = Linux home
Why would grub be able to startup from the EFI system partition - but then not be able to see that partition, or any other? And more importantly, how can I get its menu working from the internal drive like it did from USB?