Troubleshooting

Fixing Proxmox Boot Issues: GRUB, ZFS, and EFI Recovery

Resolve Proxmox VE boot failures including GRUB rescue mode, ZFS import errors, initramfs rebuilds, EFI boot entries, and rescue mode recovery procedures.

ProxmoxR app icon

Managing Proxmox? Try ProxmoxR

Monitor and control your VMs & containers from your phone.

Try Free

A Proxmox node that will not boot is an urgent problem — all the VMs and containers on that node are offline until the host is recovered. Boot issues can stem from GRUB corruption, ZFS pool import failures, a broken initramfs, or missing EFI boot entries. This guide covers practical recovery steps for each scenario.

Identifying the Boot Failure

Connect a monitor and keyboard to the Proxmox node (or use IPMI/iDRAC remote console) to see the error. The failure point tells you where to focus:

  • GRUB rescue prompt — The bootloader cannot find the boot partition or kernel
  • "failed to import pool" — ZFS cannot assemble the root pool
  • Kernel panic or initramfs shell — The kernel loaded but cannot mount the root filesystem
  • Black screen after BIOS — EFI boot entry is missing or pointing to a wrong disk

GRUB Rescue Recovery

If you land at a grub rescue> prompt, GRUB cannot find its configuration or modules. Boot from the Proxmox VE installer USB to repair it:

# Boot from Proxmox VE installer USB
# Choose "Install Proxmox VE" but drop to a shell (Advanced Options > Rescue Boot)
# Or use any Debian-based live USB

# For ext4/LVM root installations:
mount /dev/pve/root /mnt
mount /dev/sda2 /mnt/boot      # adjust partition as needed
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys

# Chroot into the Proxmox installation
chroot /mnt

# Reinstall and update GRUB
grub-install /dev/sda
update-grub

# Exit and reboot
exit
umount -R /mnt
reboot

For EFI systems, the GRUB installation target is different:

# Mount the EFI partition (usually /dev/sda1 or /dev/nvme0n1p1)
mount /dev/sda1 /mnt/boot/efi

# Install GRUB for EFI
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=proxmox
update-grub

ZFS Boot Pool Import Failure

Proxmox VE installed on ZFS uses the rpool for the root filesystem and bpool (or a partition-based boot) for the boot files. If ZFS cannot import a pool, you will land in an initramfs emergency shell.

# From the initramfs shell, try importing the pool manually
zpool import -f rpool

# If the pool shows as unavailable, list detectable pools
zpool import

# If disks have changed (e.g., after adding a controller), import by ID
zpool import -d /dev/disk/by-id rpool

# If the pool had an unclean export, force import
zpool import -f -R /mnt rpool

# Check pool status for errors
zpool status rpool

If the pool has too many errors, you may need to clear them:

# Clear transient errors
zpool clear rpool

# If ZFS reports corrupted metadata, try readonly import
zpool import -o readonly=on rpool

# Scrub the pool to find and fix errors (after booting)
zpool scrub rpool

Rebuilding initramfs

A corrupted or outdated initramfs can prevent the kernel from mounting the root filesystem. This often happens after a failed kernel update or interrupted apt upgrade.

# Boot from the Proxmox installer USB, mount and chroot as shown above
# Then rebuild initramfs for all installed kernels

# List installed kernels
ls /lib/modules/

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

# If the proxmox-boot-tool is available (for ZFS+EFI setups)
proxmox-boot-tool refresh

# Verify the boot configuration
proxmox-boot-tool status

The proxmox-boot-tool is essential for ZFS-on-root installations with EFI. It manages the kernel and initramfs copies on the EFI system partition.

Fixing EFI Boot Entries

If the BIOS/UEFI firmware does not find the Proxmox boot entry, you may see a black screen or boot into a different OS. Use efibootmgr to manage EFI entries:

# Boot from a live USB, mount the EFI partition, and chroot

# List current EFI boot entries
efibootmgr -v

# If the Proxmox entry is missing, create it
efibootmgr -c -d /dev/sda -p 1 -L "Proxmox" -l '\EFI\proxmox\grubx64.efi'

# Set it as the first boot option (entry number from efibootmgr output)
efibootmgr -o 0006

# Remove a stale entry
efibootmgr -b 0003 -B

On some hardware, the UEFI firmware only recognizes the default fallback path. In that case, copy the bootloader:

# Copy GRUB to the default EFI fallback location
mkdir -p /boot/efi/EFI/BOOT
cp /boot/efi/EFI/proxmox/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI

Using the Proxmox Rescue Mode

The Proxmox VE installer ISO includes a rescue mode that automates much of the chroot setup:

# Boot from the Proxmox VE installer USB/ISO
# Select "Advanced Options" from the boot menu
# Choose "Rescue Boot"
# The installer will detect and mount your existing installation
# You are dropped into a chroot shell where you can run:

update-grub
update-initramfs -u -k all
proxmox-boot-tool refresh    # ZFS+EFI only

# Fix any broken packages
apt --fix-broken install
dpkg --configure -a

Prevention

  • Always reboot after kernel updates and verify the node comes back before walking away
  • Keep a Proxmox installer USB ready — it is your most important recovery tool
  • Use ZFS mirroring for the boot pool so a single disk failure does not prevent booting
  • Monitor node status remotelyProxmoxR can alert you when a node goes offline, so you know immediately if a reboot did not complete successfully

Boot issues are stressful but usually recoverable with a live USB and the right commands. Keep this guide bookmarked for when you need it.

Take Proxmox management mobile

All the features discussed in this guide — accessible from your phone with ProxmoxR. Real-time monitoring, power control, firewall management, and more.

ProxmoxR

Manage Proxmox from your phone

Monitor, control, and manage your clusters on the go.

Free 7-day trial · No credit card required