How to boot Proxmox from USB using GRUB
This post is also available in: Polski 🇵🇱
The last time I was forced to install a fresh Linux system on my old laptop, I had opportunity to learn how to steer GRUB to boot a system using a bootloader located on a USB drive. This little trick saved me dozens of hours – until I tried to do the same with a Proxmox VE image, where it initially failed.
Eventually, I made it work. Here’s a short instruction – for me and for you.
Prepare USB with Proxmox VE
One of my computer ignores the order of boot devices, so the external USB device has always the lowest priority. I can’t simply insert the bootable CD or USB drive and expect it to start automatically.
If you’re reading this, it’s a non-zero chance you probably have the same problem and you’re looking for solution.
For the record, I used macOS and balenaEtcher to prepare the USB drive. I’m not sure whether it makes a difference, but if your results differ from mine, that might be the reason. I used the Proxmox VE 8.0.
On macOS, you can install it using Homebrew:
brew install --cask balenaetcher
Select the ISO and the target USB drive, then let the software do the rest.
Locate the USB drive and boot system
With the USB drive plugged in, reboot the computer.
Once the GRUB screen appears, press C or ESC to open GRUB console. You’ll see the grub> prompt waiting for your input.
Start by listing available drives:
grub> ls
In my case, the result showed (hd0) and (hd1) with multiple partitions. To inspect one, type:
grub> set root=(hd0,
… and hit TAB to see suggestions.
grub> set root=(hd0,
Possible partitions are:
Partition hd0,gpt1: No known filesystem detected - Partition start at 32KiB [...]
Partition hd0,gpt2: Filesystem type fat, UUID 4238-7745 - Partition start at 302K1B [...]
Partition hd0,gpt3: Filesystem type hfsplus - Label 'PVE' - Last modification time [...]
Partition hd0,gpt4: No known filesystem detected - Partition start at 1534730KiB [...]
Partition hd0,apple1: No known filesystem detected - Partition start at 2KiB [...]
Partition hd0,apple2: No known filesystem detected - Partition start at 32KiB [...]
Partition hd0,apple3: Filesystem type hfsplus - Label 'PVE' - Last modification time [...]
Partition hd0,apple4: No known filesystem detected - Partition start at 1534730KiB [...]
I got a pretty long list of unknown filesystems, but two of them – gpt3 and apple3 – looked promising. I picked gpt3
grub> set root=(hd0,gpt3)
At this point I learned that I couldn’t chainload a bootloader, since there was no EFI path I expected to see. However, I found a /boot directory with two interesting files: linux26 and initrd.img.
To boot the Proxmox, I entered the following commands:
grub> linux /boot/linux26 ro
grub> initrd /boot/initrd.img
grub> boot
The system started to boot, and a few minutes later I got Proxmox VE Installer appeared on the screen.
Proxmox is built for BIOS boot
Here’s what I learned:
The chainloader command is EFI-specific and won’t work here because Proxmox doesn’t include an EFI bootloader. Instead, GRUB has to load the kernel directly – which is exactly what we do with the linux and initrd commands. The final boot hands control to the kernel – and after a short while, the Proxmox VE installer appears.
If you struggle with boot the EFI-based image, check the short instruction from my another article.