Booting NVMe on BIOS PC with Ventoy
Quote from sambul65 on 2025-12-04, 7:18 AMHi everyone,
I've an NVMe 1GB drive hooked to bios PC PCI-E 2.0 slot. It's GPT formatted and has Windows 11 64-bit EFI installed. My legacy Gigabite mobo doesn't recognise it, so I need to boot Clover from a flash pen to boot the NVMe up. I tried several tools to prepare the flash, including Rufus (only for UEFI PC), BDU (for BIOS PC), Ventoy, Easy2Boot etc. I found by trial and error that certain Clover older versions work fine, but unstable i.e. may or may not boot to UI or recognise the NVMe disk upon startup.
I found it interesting that Clover version installed by Easy2Boot script in _ISO directory is quite customised and uses files from various Clover.iso versions, but still doesn't see my NVMe drive upon startup. Clover.iso versions that work in my case are 4439, 5070 and some older ones, also customised for BDU install on a pen drive that still doesn't recognise my NVMe.
I also noticed that Clover.iso started from customised Ventoy shipped with Easy2Boot can recognise my NVMe drive more often and goes to grub shell on startup much less often than same Clover ISO booting from latest original Ventoy release. I wonder what the reason may be, and can I install stand alone your Ventoy customised code on a pen drive without installing Easy2Boot as I only need it to boot the NVMe fast? Can you suggest anything to improve Clover boot stability from Ventoy or another solution to try booting the NVMe?
Hi everyone,
I've an NVMe 1GB drive hooked to bios PC PCI-E 2.0 slot. It's GPT formatted and has Windows 11 64-bit EFI installed. My legacy Gigabite mobo doesn't recognise it, so I need to boot Clover from a flash pen to boot the NVMe up. I tried several tools to prepare the flash, including Rufus (only for UEFI PC), BDU (for BIOS PC), Ventoy, Easy2Boot etc. I found by trial and error that certain Clover older versions work fine, but unstable i.e. may or may not boot to UI or recognise the NVMe disk upon startup.
I found it interesting that Clover version installed by Easy2Boot script in _ISO directory is quite customised and uses files from various Clover.iso versions, but still doesn't see my NVMe drive upon startup. Clover.iso versions that work in my case are 4439, 5070 and some older ones, also customised for BDU install on a pen drive that still doesn't recognise my NVMe.
I also noticed that Clover.iso started from customised Ventoy shipped with Easy2Boot can recognise my NVMe drive more often and goes to grub shell on startup much less often than same Clover ISO booting from latest original Ventoy release. I wonder what the reason may be, and can I install stand alone your Ventoy customised code on a pen drive without installing Easy2Boot as I only need it to boot the NVMe fast? Can you suggest anything to improve Clover boot stability from Ventoy or another solution to try booting the NVMe?
Quote from SteveSi on 2025-12-04, 10:29 AMIf you are legacy booting to Ventoy using E2B then presumably you are
- Legacy boot to E2B grub4dos menu
- Choose Ventoy legacy boot option
- In Ventoy, select clover iso
- In clover, select boot device
- Boot
???
But are you saying if you select the same clover iso in the Easy2Boot legacy menu system, it is less successful?
The Ventoy 1.0.97 version shipped with E2B is only customised to remove some checks in the code which looks at the partition arrangement to ensure the drive is a 'valid' Ventoy-made USB drive. Other than removing those checks, the rest of the Ventoy code is unchanged.
You could install any version of Ventoy on a flash drive and configure it to auto-boot from any iso with a timeout.
Same with E2B to get to Clover.
Or write the clover iso to a USB flash drive. It has a plist file which you probably can configure to boot to your NVMe drive.
As for why some versions of Clover are different and why it appears to work better using Ventoy for E2B - I don't know. You could try using a .plist file from different versions of Clover to see if that makes any difference?
I am afraid it is just a case of trial and error to see what works and what doesn't. Clover drives the hardware directly and 'guesses' at what chips and registers are present. When doing experiments, always start from a 'power off' cold start. This is so that the chipset registers are not pre-programmed from the previous boot or power-up. i.e. Switch off power - wait 10 seconds - switch on and do boot test - repeat this sequence each time you do a test boot.
It may be that the NVME clover driver is not included by default in some versions of Clover - in which case you will have to move the file. You could also try different versions of the NVME driver file.
https://forum.proxmox.com/threads/bootable-nvme-install-on-old-hardware-made-easy-with-pcie-adapter-and-clover.78120/
E2B Clover menu loads clover drivers from the 2nd FAT partition on the E2B drive at K:\EFI\CLOVER\drivers64
HTH
Steve
If you are legacy booting to Ventoy using E2B then presumably you are
- Legacy boot to E2B grub4dos menu
- Choose Ventoy legacy boot option
- In Ventoy, select clover iso
- In clover, select boot device
- Boot
???
But are you saying if you select the same clover iso in the Easy2Boot legacy menu system, it is less successful?
The Ventoy 1.0.97 version shipped with E2B is only customised to remove some checks in the code which looks at the partition arrangement to ensure the drive is a 'valid' Ventoy-made USB drive. Other than removing those checks, the rest of the Ventoy code is unchanged.
You could install any version of Ventoy on a flash drive and configure it to auto-boot from any iso with a timeout.
Same with E2B to get to Clover.
Or write the clover iso to a USB flash drive. It has a plist file which you probably can configure to boot to your NVMe drive.
As for why some versions of Clover are different and why it appears to work better using Ventoy for E2B - I don't know. You could try using a .plist file from different versions of Clover to see if that makes any difference?
I am afraid it is just a case of trial and error to see what works and what doesn't. Clover drives the hardware directly and 'guesses' at what chips and registers are present. When doing experiments, always start from a 'power off' cold start. This is so that the chipset registers are not pre-programmed from the previous boot or power-up. i.e. Switch off power - wait 10 seconds - switch on and do boot test - repeat this sequence each time you do a test boot.
It may be that the NVME clover driver is not included by default in some versions of Clover - in which case you will have to move the file. You could also try different versions of the NVME driver file.
E2B Clover menu loads clover drivers from the 2nd FAT partition on the E2B drive at K:\EFI\CLOVER\drivers64
HTH
Steve
Quote from sambul65 on 2025-12-04, 1:42 PMThanks for the indepth in-sight. I know you for a while from former Reboot.pro forum where you actively participated. Yes, your Clover version on Easy2Boot doesn't see my NVMe for some reason, if you need to clarify why - the Clover dev is present here. Clover_4439.iso boots my NVMe from original Ventoy, however its often unstable, i.e. goes to grub menu rather than Clover UI, and does not offer anything useful from there. And yes, the same ISO is a lot more stable when boots in Easy2Boot via G2D -> Ventoy - Clover, so I wanted to clarify WHY?
Now I understand why the original Ventoy flash drive with same Clover always boots stable AFTER the drive is 1st booted via Easy2Boot - Ventoy - Clover which sets the Mobo? chipset registers. May I ask you to investigate further, why such stability difference occurs?
I'll try to play with plist as you suggested, thanks for the useful Proxmon link. Is seems possible to program the sequence below into the plist as it will allow to use latest Clover ISO:
- Select
EFI ShellinClovermenu.- In
efi shellyou can find loaded drivernvmexpressdxe.efivia commanddriversbut no one device attached (typeconnectwithout arguments to check it).- Type command
reconnect -rand you will see new attachment (nvmedriver fornvmedevice, i hope).- Type command
map -rand yournvmepartitions should be mapped.- Next type
mapwithout arguments and you will see your nvmeblkX:partitions (fs0:with nvme efi fat32 gpt partition in my case).- Next you can chainload some next efi bootloader:
fs0:\EFI\Boot\bootx64.efifor example - default removablewindows 11bootloader in my case.Some guy promised to write Startup.nsh with the above sequence, but never did. How its different from the plist? I found some link explaining how to use it and where to place it in the Clover ISO or BDU prepped pen drive.
Also, to avoid Clover from going to grub menu at startup, I usually delete the boot file from Clover root and rename boot7 into boot when using the BDU tool to write Clover onto flash drive. However, doing the same with Clover ISO requires using this bash script to remake the ISO, so I'll try that, also adding the drivers to BIOS and UEFI folders at the ISO EFI diectory.
As well for some reason the same ISO does not show my NVMe UEFI disk in UI, but only shows BIOS disks when booted from the BDU prepared flash with boot7 file renamed to boot. May be plist can help... Do you know what is the difference between these 2 files, and may it be the cause? Without the renaming, Clover written to pen drive by the BDU tool goes to grub menu each time upon boot trying boot6 instead of boot7 to boot. The BDU prepped pen drive with Clover is the fastest way to boot the NVMe, may be you can suggest how to fix its failure to recognise the UEFI drive despite using the same Clover ISO content?
Thanks for the indepth in-sight. I know you for a while from former Reboot.pro forum where you actively participated. Yes, your Clover version on Easy2Boot doesn't see my NVMe for some reason, if you need to clarify why - the Clover dev is present here. Clover_4439.iso boots my NVMe from original Ventoy, however its often unstable, i.e. goes to grub menu rather than Clover UI, and does not offer anything useful from there. And yes, the same ISO is a lot more stable when boots in Easy2Boot via G2D -> Ventoy - Clover, so I wanted to clarify WHY?
Now I understand why the original Ventoy flash drive with same Clover always boots stable AFTER the drive is 1st booted via Easy2Boot - Ventoy - Clover which sets the Mobo? chipset registers. May I ask you to investigate further, why such stability difference occurs?
I'll try to play with plist as you suggested, thanks for the useful Proxmon link. Is seems possible to program the sequence below into the plist as it will allow to use latest Clover ISO:
- Select
EFI ShellinClovermenu. - In
efi shellyou can find loaded drivernvmexpressdxe.efivia commanddriversbut no one device attached (typeconnectwithout arguments to check it). - Type command
reconnect -rand you will see new attachment (nvmedriver fornvmedevice, i hope). - Type command
map -rand yournvmepartitions should be mapped. - Next type
mapwithout arguments and you will see your nvmeblkX:partitions (fs0:with nvme efi fat32 gpt partition in my case). - Next you can chainload some next efi bootloader:
fs0:\EFI\Boot\bootx64.efifor example - default removablewindows 11bootloader in my case.
Some guy promised to write Startup.nsh with the above sequence, but never did. How its different from the plist? I found some link explaining how to use it and where to place it in the Clover ISO or BDU prepped pen drive.
Also, to avoid Clover from going to grub menu at startup, I usually delete the boot file from Clover root and rename boot7 into boot when using the BDU tool to write Clover onto flash drive. However, doing the same with Clover ISO requires using this bash script to remake the ISO, so I'll try that, also adding the drivers to BIOS and UEFI folders at the ISO EFI diectory.
As well for some reason the same ISO does not show my NVMe UEFI disk in UI, but only shows BIOS disks when booted from the BDU prepared flash with boot7 file renamed to boot. May be plist can help... Do you know what is the difference between these 2 files, and may it be the cause? Without the renaming, Clover written to pen drive by the BDU tool goes to grub menu each time upon boot trying boot6 instead of boot7 to boot. The BDU prepped pen drive with Clover is the fastest way to boot the NVMe, may be you can suggest how to fix its failure to recognise the UEFI drive despite using the same Clover ISO content?