Proxmox not detected as bootable by OS-prober

gabrioth

Well-Known Member
Oct 4, 2019
41
9
48
42
I run a dual-boot setup on my main workstation for testing purposes.
My main driver is a fully updated Manjaro Linux.
I boot said Manjaro installation using GRUB installed to the NVMe0-drive's EFI-partition.
Proxmox is installed onto NVMe1.

When running "update-grub" the bootloaders of all other operating systems that have been installed on NVMe1 were detected by OS-prober and added to Manjaro's GRUB-boot-menu. (Windows 10 and 11, Ubuntu, among others)

Proxmox VE is not detected by OS-prober on Manjaro, thus not added to the boot menu, forcing me to change uEFI-settings everytime I want to boot into my lab environment. Which is annoying.

Is there any way to make PVE's bootloader visible to OS-prober of another linux installation?
 
Last edited:
Is there any way to make PVE's bootloader visible to OS-prober of another linux installation?
Probably: yes!

But please: PVE is meant to be the basis of a multitude of VMs. Put it on a stable hardware and avoid each and every "ideas" possible on this lowest level. Please!

This means PVE "owns" the hardware! No dual-boot whatever OS you like.


Disclaimer: just my pure opinion, not technically enforced and ymmv!
 
  • Like
Reactions: Kingneutron
Probably: yes!

But please: PVE is meant to be the basis of a multitude of VMs. Put it on a stable hardware and avoid each and every "ideas" possible on this lowest level. Please!

This means PVE "owns" the hardware! No dual-boot whatever OS you like.


Disclaimer: just my pure opinion, not technically enforced and ymmv!
Well... I have one cluster and a few standalone setups in my home that run proper PVE.
This specific one is going to be used as a lab setup only, using some hardware I don't have in the other setups and cannot really afford to buy for them either. (especially now, with the component crisis caused by the AI-datacenter-frenzy)
 
If booting efi, ' apt install refind '

EDIT: use ' efibootmgr ' to correct boot order if needed
I would most like to not replace GRUB as the main bootloader for my production machine if possible.

But the tip on efibootmgr was actually good, at least helps in getting correct info on where the boot binary is and on which UUID etc :)
 
If anyone finds this thread attempting to do what I was trying to do:

I never found a way to get OS-prober to notice PVE's boot-partition, but I did find a way to do what was my initial wish.

I used "efibootmgr" to list all partitions and their UUIDs, as well as the paths to their bootable executable.
Since PVE symlinks to a generic executable called systemd-bootx64.efi, it's fine to create a custom menu entry in grub, just pointing to that executable.

So I edited /etc/grub.d/40_custom and added the below entry, which did the trick. The only snag I hit, was the fact that you must use the partition's XXXX-XXXX UUID-format. The longer, more elaborate format just gave an error message.

menuentry "Proxmox VE" {
insmod part_gpt
insmod chain
search --set=root --fs-uuid BAD7-A1F6 #replace BAD7-A1F6 with your own EFI-partition's UUID in the same format
chainloader /EFI/systemd/systemd-bootx64.efi #read the actual path from "efibootmgr"
}


Don't forget to run "update-grub" after editing any of its config files ;)

Now I can just use grub menu to choose to boot my lab-PVE. I can also use "grub-reboot 3 && reboot" from the terminal to boot directly into the custom boot menu entry without clicking anything.
 
Last edited:
  • Like
Reactions: Kingneutron