[SOLVED] Proxmox Backup Server boot to BIOS after upgrade from 3 to 4

MyastanPatrin

Member
May 2, 2022
17
3
8
Hello all, I followed the guide for upgrading in place the Proxmox Backup Server from 3 to 4 (EFI). I ran the checks, all went fine, did the remaining steps. When I rebooted the server, it appears a "Welcome to GRUB" message and it seems that it crashes and goes into the BIOS. I did a Proxmox Backup Server ISO USB Drive and tried to enter in Rescue mode but it says:

Code:
error: no such device: rpool.
ERROR: unable to find boot disk automatically.

Press any key to continue..._

I still have another PBS and a PVE to upgrade and this does not look like a great start :/
Luckily, I started with the replica so the main backup environment is still fine. I hope should be easy to fix. Thank you all in advance
 
Hi,
It looks like ZFS pool didn't import properly after the upgrade. It's not pbs/proxmox specific - Linux usually doesn't like bios->uefi upgrades. Can you boot the vm into shell and try importing the zfs pool manually ?

Code:
zpool import -f rpool
 
Hello! Thank you for the fast reply!
I did not change the BIOS/EFI mode unless something automatic happened. I'm not sure I can get a shell :/
Is there something I can try?

Thank you again
 
Try booting the virtual with a different options or kind of livecd to try the zpool import -f rpool
This will show you the reason why it didn't import automatically. It could be because the drive is inaccessible or zfs pool is in some unexpected state.
 
I booted a live mint installation. I can mount the HDD just by clicking on it in the file explorer and see the data. When I run the command from a random place in the terminal, it says: "cannot import 'rpool': no such pool available"
 
I found the solution! The error was misleading according to the zpool stuff. The issue was that for some reason, the upgrade procedure switched grub-efi to the bios version of grub. By following these steps:

Code:
# Mount root
mount /dev/mapper/pbs-root /mnt

# Check what's in /boot — is it on the same partition or separate?
ls /mnt/boot/

# Mount EFI partition — find it first
lsblk -f
# Look for a ~512MB vfat partition, likely /dev/sda1 or /dev/sda2
mount /dev/sdaX /mnt/boot/efi   # replace sdaX with your EFI partition

# Bind mounts
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars

chroot /mnt

apt install grub-efi-amd64

# Regenerate initramfs for all kernels
update-initramfs -u -k all

# Regenerate grub config
update-grub

# Reinstall GRUB — UEFI
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox
# Exit chroot first
exit

# Unbind and unmount in reverse order
umount /mnt/sys/firmware/efi/efivars
umount /mnt/sys
umount /mnt/proc
umount /mnt/dev

# Unmount EFI and root
umount /mnt/boot/efi
umount /mnt

# Then reboot
reboot

I got it working. Please don't follow these steps strictly as systems may differ. These are guidelines. Thank you @psalkiewicz for the help but the error mislead everyone!