My 1TB nvme is installed into an nvme pcie adapter (these can be bought for like $10)
First you simply install proxmox to the NVME, this is straight forward just like installing to a hard drive, the problem comes in to play when you try booting from the NVME, older bios do not support that, even some that are uefi do not support booting from nvme drives.
Clover makes booting an nvme drive via USB easy: https://github.com/CloverHackyColor/CloverBootloader/releases
I formatted my thumb drive with a FAT16 122M partition
I downloaded the CloverV2-5125.zip and extracted to the thumb drive
next you need to enable the NvmExpressDxe.efi driver, do so by copying the file from the disabled drivers "off" folder to the uefi drivers folder:
Now at this point you can boot from that usb drive, and once clover loads you can press "F3" this button displays hidden items, after pressing it you should see a menu item in the middle of the screen to boot the internal NVME drive. Make sure it is selected and press enter, this passes it to the proxmox grub bootloader and proxmox loads, easy peasy.
Now, the next step is to configure clover so that you do not have to press "F3" or select an entry, so it will automatically select and boot proxmox.
This involves editing the "efi/clover/config.plist" file on your usb drive https://wiki.archlinux.org/index.php/Clover
Here is my config.plist, you will have to adjust the Volume key to match the PARTUUID of your EFI partition on your nvme drive:
The volume key is easy, first boot into proxmox. (make sure the volume key in config.plist is all CAPS/Capitalized)
(you can boot into proxmox using the clover usb and pressing F3, or you can boot using the proxmox installer and choose the debug install, at the first prompt type exit, then another prompt will load with full Linux tools available.)
look for which partition on your nvme drive is the EFI partition
next with blkid you can get the PARTUUID for that EFI partition.
The sample config.plist above has the correct path for the current incarnation of proxmox.
If this path should however change this is how you find it, mount the EFI partition and find the EFI boot file path:
with your new efi/clover/config.plist file in place on your clover usb drive with a timeout of 0 your machine should boot and go straight into proxmox, there will not even be any indication that you are using clover
Also if your machine has any board mounted usb ports or an internal usb header, then you can install the usb drive inside your case so that there is no chance of it being disturbed.
First you simply install proxmox to the NVME, this is straight forward just like installing to a hard drive, the problem comes in to play when you try booting from the NVME, older bios do not support that, even some that are uefi do not support booting from nvme drives.
Clover makes booting an nvme drive via USB easy: https://github.com/CloverHackyColor/CloverBootloader/releases
I formatted my thumb drive with a FAT16 122M partition
I downloaded the CloverV2-5125.zip and extracted to the thumb drive
next you need to enable the NvmExpressDxe.efi driver, do so by copying the file from the disabled drivers "off" folder to the uefi drivers folder:
Code:
cp /usbdrive/EFI/CLOVER/drivers/off/UEFI/Other/NvmExpressDxe.efi /usbdrive/EFI/CLOVER/drivers/UEFI/NvmExpressDxe.efi
Now at this point you can boot from that usb drive, and once clover loads you can press "F3" this button displays hidden items, after pressing it you should see a menu item in the middle of the screen to boot the internal NVME drive. Make sure it is selected and press enter, this passes it to the proxmox grub bootloader and proxmox loads, easy peasy.
Now, the next step is to configure clover so that you do not have to press "F3" or select an entry, so it will automatically select and boot proxmox.
This involves editing the "efi/clover/config.plist" file on your usb drive https://wiki.archlinux.org/index.php/Clover
Here is my config.plist, you will have to adjust the Volume key to match the PARTUUID of your EFI partition on your nvme drive:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Boot</key>
<dict>
<key>Timeout</key>
<integer>0</integer>
<key>DefaultVolume</key>
<string>LastBootedVolume</string>
</dict>
<key>GUI</key>
<dict>
<key>Custom</key>
<dict>
<key>Entries</key>
<array>
<dict>
<key>Path</key>
<string>\EFI\proxmox\grubx64.efi</string>
<key>Title</key>
<string>Proxmox</string>
<key>Type</key>
<string>Linux</string>
<key>Volume</key>
<string>33BA6C23-4772-294D-9053-72A49FCAEF39</string>
<key>VolumeType</key>
<string>Internal</string>
</dict>
</array>
</dict>
</dict>
</dict>
</plist>
The volume key is easy, first boot into proxmox. (make sure the volume key in config.plist is all CAPS/Capitalized)
(you can boot into proxmox using the clover usb and pressing F3, or you can boot using the proxmox installer and choose the debug install, at the first prompt type exit, then another prompt will load with full Linux tools available.)
look for which partition on your nvme drive is the EFI partition
Code:
fdisk -l
next with blkid you can get the PARTUUID for that EFI partition.
Code:
blkid
The sample config.plist above has the correct path for the current incarnation of proxmox.
If this path should however change this is how you find it, mount the EFI partition and find the EFI boot file path:
Code:
mkdir /drive
mount /dev/nvme0n1p2 /drive
find /drive -iname "*.efi"
with your new efi/clover/config.plist file in place on your clover usb drive with a timeout of 0 your machine should boot and go straight into proxmox, there will not even be any indication that you are using clover
Also if your machine has any board mounted usb ports or an internal usb header, then you can install the usb drive inside your case so that there is no chance of it being disturbed.
Last edited: