[SOLVED] Issue booting into GRUB after upgrade from Proxmox 8 to 9

Carizoeuf

Member
Jun 1, 2023
8
4
8
Hello,

I recently upgraded my main Proxmox node from version 8 to 9, following carefully all prerequisites and steps listed in the official guide: Upgrade from 8 to 9.

After the upgrade, upon reboot, I was dropped to the GRUB prompt (grub>), instead of the normal boot menu. Attempting ls showed my LVM volumes correctly, but insmod normal failed to load, and the menu never appeared.

To regain access, I used the manual kernel boot method: I set the root to my LVM volume, loaded the latest kernel (6.17), loaded the corresponding initramfs, and booted successfully. This allowed me to start the Proxmox node and access the system.

I have not yet performed any permanent GRUB repair. Now that I can boot, what is the recommended procedure to permanently fix GRUB after such an upgrade?

Thanks!
 
Proxmox VE 8 → 9 Upgrade – GRUB fails to boot on UEFI + LVM

After upgrading a Proxmox VE node from PVE 8 to PVE 9 in UEFI mode with root on LVM, the system dropped to a grub> prompt on reboot. This is a known issue.

------------------------------------------
Temporary boot from GRUB

At the grub> prompt:
Bash:
set root=(lvm/pve-root)
ls /boot
linux /boot/vmlinuz-6.17.4-1-pve root=/dev/mapper/pve-root ro quiet
initrd /boot/initrd.img-6.17.4-1-pve
boot

This boots the node successfully.

------------------------------------------
Permanent fix

Once booted, run:
Bash:
[ -d /sys/firmware/efi ] && echo "UEFI OK"

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox --recheck
update-grub
shutdown -r now

After reboot, GRUB loads normally and the node boots automatically.

------------------------------------------
Verification

Bash:
uname -r            # latest kernel
efibootmgr -v       # BootCurrent points to \EFI\proxmox\grubx64.efi
pveversion -v       # confirms PVE 9 running

------------------------------------------
Cause: The correct GRUB package was installed, but the UEFI firmware was still booting an old/incorrect GRUB entry. grub-install ensures the fixed version is used.
 
Hello,

I have the same issue and the fix proposed by @Carizoeuf partially solved my issue:

  • I don't have the grub prompt but I am able to boot on proxmox by using the "rescue boot" via the installation iso
  • Then I pass both command:
    • grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox --recheck
    • update-grub
  • and then I have to go in the BIOS to change the BBS priorities and select proxmox
  • Everything is then solved until I power off the server (and remove the power plug) and I have to redo all the steps
I am a bit lost on how to fix this and any help would be greatly appreciated.

Thanks!
 
Hello,

I have the same issue and the fix proposed by @Carizoeuf partially solved my issue:

  • I don't have the grub prompt but I am able to boot on proxmox by using the "rescue boot" via the installation iso
  • Then I pass both command:
    • grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox --recheck
    • update-grub
  • and then I have to go in the BIOS to change the BBS priorities and select proxmox
  • Everything is then solved until I power off the server (and remove the power plug) and I have to redo all the steps
I am a bit lost on how to fix this and any help would be greatly appreciated.

Thanks!
Same issue
 
Hello,

I have the same issue and the fix proposed by @Carizoeuf partially solved my issue:

  • I don't have the grub prompt but I am able to boot on proxmox by using the "rescue boot" via the installation iso
  • Then I pass both command:
    • grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox --recheck
    • update-grub
  • and then I have to go in the BIOS to change the BBS priorities and select proxmox
  • Everything is then solved until I power off the server (and remove the power plug) and I have to redo all the steps
I am a bit lost on how to fix this and any help would be greatly appreciated.

Thanks!
Anthropic's Claude answer:
(so verify before running)

Your GRUB install itself is fine — the problem is that your UEFI firmware isn't keeping the NVRAM boot entry across a full power loss. grub-install writes a boot variable via efibootmgr pointing to \EFI\proxmox\grubx64.efi, but many firmwares drop or fail to persist NVRAM entries after the board loses power completely. With no valid entry left, the board falls back to its default BBS order, which is why you have to redo everything each cold start.

The fix is to also install GRUB to the removable fallback path \EFI\BOOT\BOOTX64.EFI, which the firmware always tries regardless of NVRAM state. Boot the node (rescue boot is fine), then run:
Bash:
echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections
apt install --reinstall grub-efi-amd64
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox --recheck --removable
update-grub
  • --removable writes to \EFI\BOOT\BOOTX64.EFI so it boots even with an empty NVRAM.
  • The debconf-set-selections line makes future grub-efi-amd64 updates keep maintaining that path.
A few things to check on the firmware side:
  • Disable CSM / Legacy and stay on pure UEFI — an active CSM keeps reshuffling the boot order.
  • If it still resets after every power-off, suspect a weak CMOS battery: a dead RTC battery loses both the clock and NVRAM. Quick test — unplug for ~30 min; if the BIOS clock is wrong on next boot, replace the battery.
  • Make sure there's only one ESP the firmware actually boots: lsblk -f | grep -i fat. If you have multiple FAT32 EFI partitions, grub-install may be writing to one the firmware doesn't use.
Verify after a real power cycle:
Bash:
efibootmgr -v                      # proxmox entry present, sane BootOrder
ls /boot/efi/EFI/BOOT/BOOTX64.EFI  # fallback loader exists
After this the node should boot cold without touching the BIOS.