π

Use a NVMe drive as a Boot Drive on unsupported HPE Hardware (Debian/Proxmox)

So this workaround came from when I was using the HPE P420 RAID Card, which I’d changed into HBA mode. When it’s in this mode, you can’t boot directly from it, once you install the OS and reboot it won’t see it to boot from it, so I came up with a crafty workaround for this situation, which is to use the internal SD card slot, with a suitably small SD card (as to not waste a good one) and have my /boot partition on that. I bought loads of 512mb micro SD cards a while back for Arduino projects and stuff that needs a bit of storage, but using anything big would just be a waste. You can probably use a similar work around on other hardware too using a USB stick, but the benefit of HPE servers is they have an internal SD card slot, that you’re (likely) not using for anything else.

So to get it working with something like Proxmox, you can’t use the official Proxmox installer, as it doesn’t let you be verbose enough with partition layouts. I’ve always installed the version of Debian that it uses and follow the guide to “convert” a fresh Debian install into a Proxmox install.

So when installing Debian (either from USB stick, or CD image mounted to iLO), follow it through mostly by default, but for disk partitioning, make your SD card an ext2 partition, and set the mount point to /boot – Then partition the rest of the drives however you’d like, and follow through the rest of the installation. When you get to the choose software screen, uncheck everything except for “Base System” and “SSH Server” (you only want the minimum packages installed as Proxmox will pull in a lot of it’s own packages).

At the end when it asks you where to install grub, choose the device that is the SD card. Sometimes, however, this doesn’t work. If it doesn’t let you install grub this way, just ignore installing grub and finish the installation.

To fix the grub install process, you can then boot again the install media and choose rescue mode. If it asks you “do you need to mount a boot partition” choose yes. Once you are in rescue mode, execute a shell in the target (not a shell in the rescue mode) once in
the target’s shell, you can do a regular grub install, grub-install /dev/<path-to-sd-card> this will take a bit of time, since SD cards aren’t amazing for write speeds but that should install grub which will enable the new system to boot. Once grub has successfully been installed, you can exit the rescue environment and boot in to your new system.

You will need to change the BIOS options to boot from a “USB” device as a priority, but then it’ll boot from the SD Card and will start your system.

Once you’ve logged in, follow the usual procedure for converting a Debian install into a Proxmox install following the Proxmox Wiki (the current version is at https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_11_Bullseye )

There you go, you should now have a system that boots Proxmox with NVMe storage, on a system that can’t boot from it ordinarily. I’ve done this for a long time (given I used to use it to boot when I couldn’t boot directly to drives on my p420 card) and it’s been fine. It takes a little longer to do updates that rebuild initramfs because of SD card write speeds, and there’s a tiny bit of slowdown when first uncompressing the Linux Kernel at boot, but other than that, I haven’t noticed any other problems, and Disk IO beyond that is so much faster than SATA or SCSI drives, which certainly makes it worth it. 😀

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

Solve to post *

jcx.life