[Guide] NVMe-boot for systems with legacy BIOS and UEFI board (DUET-REFIND)

@noInk

Hello
thanks for that great tutorial and software.

I installed yesterday DUET 2019 with REFIND.
It is working. (I read 20 pages of this thread)
But i am not shure how good it is working…

Asus Rampage III Extreme Black Edition Chipset intel X58 without uefi wihout NVME support :smiley:
Intel 990X Extreme
28GB DDR3
NVME 1TB (Sabrent 1TB Rocket NVMe PCIe M.2 2280 SSD) with PCI EXpress Adapter 4 lanes 2.0
USB device to boot 16 GB Intenso USB stick
Gigabyte GeForce GTX 1660 GAMING OC 6G 6GB

I want to have only one Windows 10 (without a selction) it should boot as fast ass possible form a NVME 1TB PCI Express M2 SSD

But now i have some questions:
It is very slow. (I check the linked videos to compare the time)
around 1 minute take the loading proccess.

Can i do something to make it faster ?
may without Rewind ?
Is it possbile to use only the DUET without the REWIND to speed it up?

Do i have to do some changes in the BIOS ?
(found some videos they show some stuff like Intel C state shoud be disabled)

Can i use USB 3.0 for the Booting USB to speed it up?

Is it better for the old hardware to use the 2015 Version ?


And a question for my bad knowledge about this topic

When the windows is startup nothing of the DUET RWIND is running anymore ?
It is just like antoher bios?

So i my case a nomal legacy bios
then i have a extra bios for the SATA 6 Controler (i know very old chipset)
an then the machine starts DUET adds the EFI support and the NVME driver it make a ram check/do the adressing
after that it loads the REWIND HMI
and finally it starts up windows 10.

Thanks for your help, sorry for my bad english, let me know if something is wrong or about missing things.

mujuli

@mujuli

The slow booting process might depend by an incompatible driver stalling or try to load few time before giving up on the hardware.
If it’s happening with either the 2015 and the 2019 version you should try to disable anything not essential to boot within the bios to see what is interfering or to determine what the issue.
Restoring the default bios value might also help.
Embedded USB 3.0 on X58 are issue prone unless updated to pretty much last available firmware version.

Adapter and NVME could play a role but usually unless it’s running below the spec it shouldn’t really matter.

Using the optional REFIND included shouldn’t increase the booting process time, in fact its the opposite duo the predetermined countdown of DUET.
If you made the USB with REFIND to bypass the OS selection change the timeout to -1 on the [USB]\EFI\Boot\refind.conf
With only DUET you can’t change the hardcoded default 5 seconds delay shell value to auto load the first external available EFI found.

On mine system the 2019 version take around 25 seconds from DUET entry point to the OS login screen.
Less if I count to OS Logo (DUET END point), or more if I start from the POWER-ON bios sequence.

With this DUET version once the OS logo is loaded there should nothing left except for the UEFI environment.

@noink

thanks for your super quick answer.

Ok i will check this out tonight and will write a report.


1. I will reset the bios to defaults
2. I will check the 2015 Version.
3. if no effect i will disable nearly everything in bios to figer out what it could be.

Ok in my case no USB 3.0 because i remeber at the begining the driver was a mess.

Thanks for the -1 i forgot to write this. In my last try yesterday night i changed it to -1. (but the total time was the waiting time between end of the normal bios (the red writing) to the HMI (short (1 sec.) grey screen with -1)

On the last run with -1 the keyboard was not detected in the OS anymore … may the keyboard (logitech RGB ) is the problem. Ah and my logitech mouse was not deteced in the REWIND screen. both are connected with wire to the mainboard usb 2.0 ports

One more question i was wondering what taktes that long time to load, because the files are in total 2.XX MB “big” .
So my question is what need the most of the 25 seconds in your case?
Is it to load the drivers or to adress the RAM ?
(is it depending on the usb ? ) i have a SATA Samsung SSD :smiley: may i try this too :smiley: but 2,XX shouldn`t be the problem.

is somewhere a log file created ? or is a description for DUET available ?

Maybe one more thing befor i found this i follows this instructions
[Guide] NVMe-boot without modding your UEFI/BIOS (Clover-EFI bootloader method)

but i was able to boot from usb but after selecting the bootable device i was not able to install windoes it show up “klick a key to boot from …” and after that nothing happend and it also took a long time to load the menue. ( I think both ways use same componets infact i think your right with the driver issue. )

thanks

mujuli

@mujuli

For the keyboard and mouse use the USB 2.0 port, voltage issue can cause a wide range of problem USB inconsistency is one.
There no textual log by default on this version of DUET.
On the system at mine disposal both 2015 and 2019 work seamless like in the video posted by @SkOrPn
Clover uses it’s own DUET version to allow the change of the hardware readable configuration by injecting code and offer specific customization required by OSX.
This DUET|REFIND version its a bare sort of self deleting EFI environment upon shutdown.

So my Report that worked for my hardware:

Asus Rampage III Extreme Black Edition Chipset intel X58 without uefi wihout NVME support :smiley:
Intel I7 X990 Extreme
28GB DDR3
NVME 1TB (Sabrent 1TB Rocket NVMe PCIe M.2 2280 SSD) with PCI Express adapter 4 lanes 2.0
USB device to boot 16 GB Intenso USB stick
Gigabyte GeForce GTX 1660 6GB


The Version 2019 takes 1 minute and 52 seconds from the end of legacy bios to Windows boot logo
Only with this version i have the keyboard issue. During legacy bios keyboard is working also in REFIND. But after rewind in Windows it is not working. I have to un-plug it.

The Version 2015 work in my chase much better 37 seconds.
It works perfect, also the keyboard.
In my case i use the -1, i don`t want to change the OS.


Is it possible to enable NUM in DUET (the num Block) ?

But my opinion is there is much more performance possible, but i am unable to get/fix it :smiley:
@noink hope thats okay for you.
so i have to wait 46 seconds for the whole boot(it is like a HDD :D), but after that its unbelievable fast.

Thanks for your help.

@mujuli

I’m using it on a samsung 960 along an asus hyperX adapter and from the BIOS DMI (DUET) to the windows boot logo it take roughly 10\11 seconds with the -1 REFIND config with the 2015 version and 11\13 with the 2019.
Difference is duo the fact more driver execution environment (DXE) are included with the 2019 version.
If the 2015 version work, use that.
It just mean something on the board is off-specification for the newer driver included.
Probably a PHY device firmware (not loaded with the 2015 version) is not compatible with the USB BUS changes introduced with the 2017>2019.
An wrongly firmware configured PHY device can cause anything on data\voltage level, gate bypass etc etc.
Both 2015 and 2019 version are up-to date anyway and certain change are mirrored or back-ported.
About windows not seeing the keyboard or mouse that’s on your bios settings and OS driver loaded.
Disable or update the USB NEC 3.0 controller or use an 2.0 ICH10R USB port on the 2019 version.

hey,


hm 10/11 sec from the red text to the bootlogo is fast…

I am sure it is some specical hardware, because the board has onboard wifi /bluetooth/ and the not on the X58 chipset implemented SATA 6 and USB 3.0 controller.
may i try to disable all this "specical devices" (specical because of the age of the mainboard it was not really common )

i do not use the USB3.0 port only USB 2.0 at any time.

I will disable everthing in the bios.

thanks

@mujuli

Dunno. That how it boot on mine X58 legacy board with the -1 on the 2019 version.
On an EFI DX58SO2 board with the NEC Renesas uPD720200 I had to update the USB 3.0 controller firmware to get it to boot DUET without issue.
USB 3.0 port are blue.

See this post about and without using any other command on the admin command prompt type;

1
2
3
 

W200FW36 /srom ? > uPD720200FW.txt
W200FW36 /srom 0 >> uPD720200FW.txt
 

Find the newly generated uPD720200FW.txt file within the directory and either change the PCI Subsystem Vendor ID and PCI Subsystem ID within the CFG.INI file and update your own board controller or attach the content.
Should be something like the following:


1
2
3
4
5
6
7
 
This Device is uPD720200(Revision 3).
MX25L512/2005/4005A/4005C/2006E/4006E(MACRONIX)/Pm25LD512C/010C/020C(Chingis) Type : 2, PageSize = 0x100, Chip Erase = 0x60
Bus:0x01 Device:0x00 Function:0x00
This Device is uPD720200(Revision 3).
FW Version : 3.0.3.4-0.8
PCI Subsystem Vendor ID : 0x8086
PCI Subsystem ID : 0x5332
 



--

After seeing the video I've changed the timeout behavior.
If used with the -1 option the background theme should not be drawn.

1
 
Updated REFIND to build 1.0.5
 

@noInk

Hello,
Now I try a new build of DUET with an updated USBsetup. What to say: after pressing “BOOT” I get an eternal “Wait” at the preparation stage, and … it does not end((
Here is the screen:



Earlier I solved the problem for myself (and now writing from a computer, working from the SSD using DUET). However, I can be a little bit tester for your labor.

P.S.: If this somehow help in the solution, then the second computer from which USBsetup correctly created the bootable USB flash drive, was also with the operating system in Russian (Win10 x 64 Pro Rus).
I suppose, the problem is not in the OS language, but, possibly, in the OS version, or in the type of account, from under which USBsetup works.

@Krukermann

Dunno! maybe the power shell is also not available on the system.
Can you run the USBSetup with -GenBootLOG switch?
From the Administrator command line start the app with:

1
 
USBSetup.exe -GenBootLOG
 


Click on the BOOT option check the newly USBSetup.txt info and attach the content of the file.

@noInk

Hey.
Did everything as you recommended. The process is analogic, USBSetup.txt is not created.
Screenshot:

@Krukermann

YEa, thanks it won’t fixable.
Probably something with the path, maybe powershell. Dunno! anyway -GenBootLOG is case sensitive.
Please use a system known to work for the USB creation.

leaving it here, superseded by EDK2020
• Download link for DUET (UDK2019) with REFIND included
  This will perhaps be the last release since DUET as been discontinued by the EDK team. Doesn’t work? try to build it from the source

@mujuli

On a VM with the -1 option the 2020 should boot like this way now.




I’ve pushed some of these changes on the 2015 version, lemme know if it still boot on the motherboard with VT-x/nested page table - booting\memory issue, so in case I’ll revert to version 30.

If the new version [31] above, currently available on the first page as OLD Updated download link for DUET (UDK2015) booted on your system with nested page VT-X memory boot issue somehow work like in version [29]…
can you check on this version with VM (Virtual Box) support by dropping the Efildr20 on the USB root and report back if it still? so, I’ll update the package on the first page with more fixes.
Thank you.

hey.
i got a intel s5520hc board and i cant reallt seem to get this working…

i got the menu booting but there is no entries for anything (only my usb drive shows up)

my nvme drive has a windows install cloned from a 500 gb sata ssd and even the sata ssd does not show up in the boot menu. any tips?

i tried the clover method and the same problem happened with no entries

@sebaskitty

Run the MBR2GPT utility on the NVME attached as storage directly from the OS or follow the first post about the clean install.

Wil do tomorrow morning. It’s 1:22 am here.

If it helps.

I got a direct pcie go m.2 adapter and a 970 evo.
Got 2gb read and write in windows tests

There also seems to be 2 boot options for the usb
Normal
And
EFI:usb drive

Both have same result but if I boot from the normal one the keyboard stops working and only my mouse functions

Your board run on intel EFI.
Either use the 2020 version with the UEFI bios option set to DISABLED

Booting the NVME drive from non-UEFI legacy board - DUET with optional REFIND - with USBSetup:


1) Connect a USB flash drive and start the USBSetup application

2) Select the USB flash drive letter from the drop-down combo box

    Warning.
    The following step will completely remove all information and partitions on the selected USB flash drive

3) Remove all information and partitions from the drive by clicking on: CLEAN

4) Format the selected drive by clicking on: FORMAT

5) Make the selected drive bootable by clicking on: BOOT

6) Disconnect and plug back the USB flash drive.

7) Copy the required DUET files by clicking on: DUET

8) Copy the optional graphical boot manager REFIND by clicking on: REFIND

9) Connect the USB on the target system and set Boot from USB as the first option in your system BIOS Boot order



or make the REFIND USB non-bootable with the UEFI bios option set to ENABLED.


Booting the NVME drive from UEFI capable board - REFIND mass-storage without DUET - with USBSetup:


1) Connect a USB flash drive and start the USBSetup application

2) Select the USB flash drive letter from the drop-down combo box

    Warning.
    The following step will completely remove all information and partitions on the selected USB flash drive

3) Remove all information and partitions from the drive by clicking on: CLEAN

4) Optional format the selected drive by clicking on: FORMAT

5) Copy the graphical boot manager REFIND by clicking on: REFIND

6) Connect the USB on the target system and set Boot from USB as the first option in your system BIOS Boot order



About the keyboard, change USB port\keyboard bios related options or find what wrong. I’m not aware of such issue exist.

this board should not be UEFI

altho this board does has a weird implementation of efi shell and stuff like that

only bios options i can find is boot EFI only modules only and that resulted into a no post so its disabled for now

i tried swapping my keyboard to a different port but that didnt change anything…

i’ll convert my nvme disk right now and see if any of my sata/nvme stuff shows up now


hmm ok so i cant convert the disk?

wil it only boot from uefi/gpt installs on the internal drives?

atm making a new gpt windows installer usb instead of a mbr disk…

i would’ve thought it would atleast show my 64gb ssd as a bootable entry as it contains windows too

maybe its driver related? i checked the drivers folder on the usb partition and it was empty so i even tried to add the nvme efi driver from clover


i have noticed if i boot into the bootloader using the efi: entry and click exit bootloader it wil reload the bootloader in normal mode (where my keyboard doesnt work) but it does seem to run in 1920x1080p instead of a low resolution

OK hm yeah. My uefi gpt installer shows up in the boot screen (so my motherboard is partially uefi?)



Mm edit

If I try to install it using a gpt formatted windows installer (made with Rufus)

windows install completely freezes at copying windows files 0%

@sebaskitty

Your board is UEFI capable you could opt to use the customized version of REFIND to load the NVME DXE by setting the BIOS option “UEFI boot” to ENABLE
If you set the BIOS option “UEFI boot” to DISABLE under the advanced BIOS menu DUET will replace the onboard EFI loader.


The UEFI boot ENABLE/DISABLE BIOS switch allow to boot GPT/MBR disk.
Either REFIND or DUET with REFIND expect GPT as bootable media.

Mixing files with clover and procedure would probably case issue, you need to remove the RUFUS MBR loader from the OS installer DISK.
• Start the USBSetup application and select the USB media made by Rufus.
• Remove all information, partitions and the MBR bootloader made by Rufus from the USB drive by clicking on: CLEAN
• Once done disconnect the USB, close the USBSetup application and follow the “How to CLEAN install WINDOWS 10” on the first page.

Copying the old OS to the NVME is not covered by this how-to.
Try to use the manufacturer DATA migration and if possible select UEFI type migration.
If not applicable and the migration is 1:1 convert manually from MBR to GPT by reading the MBR2GPT utility document page.

hmm so my board is uefi. would i also be able to mod the bios update to add nvme support? this mothebroard has a bios flashback feature in case of failure
(yeah idk how and why) anyway.

i installed ESXI and installed windows GPT purely on the ssd passed trough the vm so its a clean bootable install and its quite speedy. but yeah esxi is alot of added hassle so i wil continue this

so far problem with bios modding seems like my bios update and recovery file both dont have a CSMCORE file

i have tried the refind uefi method again after the esxi install and my nvme windows install shows up.

but during boot it freezes like the windows install… so it seems like UEFI is not working right. any tips? iirc clover emulates UEFI?