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

@Gamma-ed

Since some legacy board will always try to boot the legacy installer first, and, your GIGABYTE might be one,
once the EFI WINDOWS 10 installer it’s done copying it’s file you should remove the WIN10 ESD-USB before it reboot the first time.
You should see something like a message telling you the installation will soon start and a reboot is required in seconds.
Failing to remove the WIN10 ESD-USB might restart in loop the installation again in legacy mode making the NVME unselectable for installation.
If this is not the case of the GA-EX58-UD5 see within the bios option to enable the USB boot option and set manually the USB with DUET as first boot option.
If the board provide such setting it shouldn’t be required to remove the WIN10 ESD-USB at all during the installation.


If the third-party tool you used to convert and clone the previous (MBR) legacy installation messed whatever upon the NVME the disk layout you need to restore the partition table of the NVME.
Usually that can be done by deleting any partition on the disk while in the legacy installer and by re-initializing the disk [using the “New” option on the full unallocated space] during the (GPT) EFI install.
To boot with an legacy installer disconnect the USB with DUET. If the DUET USB doesn’t take you on the graphical boot manager - remake the USB. If the WIN10 ESD-USB doesn’t install or fail at something re-make that.
The partition table can also be rebuilded via the DISKPART CLEAN parameter from the command prompt or from the recovery environment or by when in the OS itself connected as non-bootable storage.

The nvme ssd is back to initial status, and now I could install windows 10 instantly with the DUET-REFINE usb.
As soon windows during installing telling that it wants to reboot, I remove the WIN10 ESD-USB inmediatly, after this the DUET-USB starts up.
In a few seconds later the shell comes up, and showing FS1: to FS9: there is no OS to boot up from. (strange because win10 is installed on the nvme disk)

So its not seeing the NVME disk at all. Is their a command line it telling it to look for the nvme disk?

In the bios I can set the DUET with REFINE USB as first priority to start up from, so I guess thats not the problem.

When I connect the hdd to the mobo and set the bios that this is disabled. Boot up with USB DUET REFINE, and the hdd os starts up. So I assume there is something missing or not working, maybe something to look for the three nvme drive

@Gamma-ed

If you download DUET (UDK2019) on the first page and follow the below text there shouldn’t be any shell involved.


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




To clean install WINDOWS 10
• Download the windows 10 media creation tool and make the WIN10 ESD-USB directly from the media creation tool.
• Boot the PC with the DUET USB connected and wait for it to reach the graphical boot manager.
• Connect the WINDOWS 10 ESD-USB and refresh the visual representation list by hitting the ESC keyboard KEY to make the “Boot Fallbcak boot loader from ESD-USB” option appear.
• Launch the EFI WINDOWS 10 installer from the WINDOWS 10 ESD-USB by selecting the “Boot Fallbcak boot loader from ESD-USB”.
• Select CUSTOM: Install Windows only (advanced) on the next screen delete all the partition till the NVME drive show as “Drive 0 Unallocated Space” and select NEXT, YES, NEXT.
• Once the Windows Setup screen end copying and installing Windows disconnect the WINDOWS 10 ESD-USB before it self-reboot. On some board this is required.

ERROR HANDLING
If the NVME become un-bootable it mean the PC is not booting from the DUET USB.
If the NVME doesn’t appear as selectable disk there could either be an broken\hidden hybrid partition or hardware issue locking the EFI installer read access, on WINDOWS 7 a driver must be provided.
To delete an hidden partition and rebuild the disk layout use the DISKPART CLEAN parameter from a command prompt, recovery environment or by when in another WINDOWS OS connected as non-bootable storage.


It’s also possible to boot an legacy OS INSTALLER without DUET to make a new install to just delete the broken hybrid \ hidden MBR from the NVME disk by quitting the process in the middle and without re-initializing the disk leaving it unallocated.

If by following this post you are not able to install WINDOWS 10: Find what you are doing differently.

About that… to exit the shell type:
EXIT and hit the ENTER on the Keyboard.

I have erased all USB and just started all over, and got the same result, I have made pictures of it. (Let me see how to get this in here to show but first get my kids from school)
And with rebooting again, it did not boot up on the nvme, but it gave me a shell again.

And I then I did something recless, I have another computer, that has also have a pcie m2 nvme and running on mobo with UEFI support.
And took out the pcie card with a kingston a2000 ssd on it, placed in this computer with ga 58ex ud5 mobo without UEFI support but used the USB with DUET and REFINE. And it boots, I see the DUET menu, counthing to zerro, and boots up directly from the nvme… windows 10 working and well, but needs some driver adjustment, different pc.

So whats wrong with the ADATA SSD with his adapter? Shall I try to clone to this adata ssd?

@Gamma-ed

• With only the NVME inserted.
• Boot the PC with the DUET USB connected and wait for it to reach the graphical boot manager.
• Connect the WINDOWS 10 ESD-USB and refresh the visual representation list by hitting the ESC keyboard KEY to make the “Boot Fallback boot loader from ESD-USB” option appear.
• Launch the EFI WINDOWS 10 installer from the WINDOWS 10 ESD-USB by selecting the “Boot Fallback boot loader from ESD-USB”.
• Instead of “Install now” select “Repair your computer” > Troubleshoot > Command Prompt
• In the “Command Prompt” type;

1
2
3
4
5
6
7
8
9
10
11
12
13
 

DISKPART
 
LIST DISK (should be 0 without <> if no other DISK are connected double check comparing the size)
 
SELECT DISK <DISKNUMBER>
 
CLEAN
 
EXIT
 
EXIT
 
 

• Select "Turn off your PC" and detach the WINDOWS 10 ESD-USB.
• See again the previous post to clean install WINDOWS 10.

--

About the issue you are having with the ADATA NVME.
It could be related on something you used.
It could be faulty.
Probably you shouldn't have used the third party "backup" software to clone a MBR disk.
Did anything else NVME related touched the partition layout of the ADATA NVME?

Anyway, unless it work by doing the above I can't help you further with the info you provided.
DUET doesn't touch the NVME or make changes on the partition layout, other similar tools might. DUNNO.

The NVME was only touched with windows 10 installer, and windows 10 as storrage disk to see if it was working, and later on when I found out that I couldn’t change it with windows10 to a gpt format, I have used NIUBI to do that.

I noticed later on, with a ADATA toolbox for ssd, that this toolbox couldn’t find this ADATA ssd. But it saw other disk, so I assume something is wrong with the ADATA. Also on the factory website, I had to give the serial number, seems that this serial number is used by someone else. So not sure whats going on.

I also took another look with NIUBI tool, and here the ADATA disk was 2 times listed as a disk, one was named MSFT and the other disk as ADATA SX6000. The ADATA disk was not reachable with diskpart, but the MSFT disk was reachable .

Nevertheless, tommorow I’m going to send this ADATA disk back to the shop, and I just ordered an other one of Kingston. Going to repeat tommorow again with installing the new disk. Thanks for your help so far, you have been great!

Update:
Put in the new nvme ssd of kingston, and got it working nearly instantly!
But it seems the memory is doing strange, when bios want to do dram testing, it suddenly reboots, when I go into the bios, it seems that one memory bank is missing. i boot again, it starts up, go to windows, windows is seeing all installed 12gb. Doing is benchmark.com test, and the memory is failing to test. Could this be relating to something what is now differently installed?

Something else, is their a way to copy all the settings of windows and programms to the new nvme ssd? I notice that the new installed windows works much better so like to keep this os

update:
When I boot up with the old hdd sata and without duet. Then there is no memory problem, benchmark test is fine. Not sure what’s going on. Something I can try?

@noink

Someone who can help me with the memory problem?

- booting with DUET and the NVME SSD with a clean windows 10, there is this memory problem. When doing a bench test, it fails on memory! Sometimes with booting up it reset straight when detecting dram size.

- booting up with only the SATA hdd, there is no memory problem. Also bench test is fine.

What wrong and how to solve this matter?

@Gamma-ed

There are too many conflicting info about the issue you are having with the NVME, can you clarify?
If the USB is corrupted, make it again.
Change PCI-ex slot.
1 bank only of memory.
what work and what don’t and your reasoning about?
Does the GA-EX58-UD5 boot DUET?
Which version of DUET you used before?
Did the USB get recognized while inserted in another PC?
Some photo might also help, anyway…
try the 2015 version on the first page, if that doesn’t work either see on the board manual if the RAM module are installed correctly in their channel.
About the disappearing RAM check the tightness of the CPU cooler, resetting the BIOS to the default setting and disabling unnecessary on-board stuff might also help.

I think im having same issue, but it doesnt affect to the normal use. I tried this benchmark and got 0 mb of ram detected (i have 24gb)

https://www.userbenchmark.com/UserRun/24775173

Also in windows task manager, in memory details there is 0 MB reserved for system while before was something there soo, yeah there is something weird.

https://imgur.com/a/hLFLjsC

Regards

@noInk

There are too many conflicting info about the issue you are having with the NVME, can you clarify?
Yes, the first nvme disk was dammaged, returned that one. Now new one installed and windows 10 was installed in no time!

If the USB is corrupted, make it again.
I just made a new USB with duet and refine, seems to be no difference in that. Also used a new USB stick

Change PCI-ex slot.
Yes, I have changed PCIe slots, to see if that makes difference. I notice a little difference in speed so I left in the first PCIe-16 1 slot

1 bank only of memory.
I do not think that will make any difference. Because booting up with old sata ssd there is everything normal and when booting up with the nvme and USB Duet there is a problem with memory

what work and what don’t and your reasoning about?
yes,

Does the GA-EX58-UD5 boot DUET?
Yes, see youtube film

Which version of DUET you used before?
I did the latest one!

Did the USB get recognized while inserted in another PC?
yes, I made the USB in an other PC

Some photo might also help, anyway…
See youtube film

try the 2015 version on the first page, if that doesn’t work either see on the board manual if the RAM module are installed correctly in their channel.
Ok, need to try that!

About the disappearing RAM check the tightness of the CPU cooler, resetting the BIOS to the default setting and disabling unnecessary on-board stuff might also help.
CPU checked,
to default going to try that
I have disabled a few items in the bios that I do not use. Going to do a few extra items to see if that helps

Booting up with nvme disk and clean windows 10 with duet
https://youtu.be/aYVrL6cJCYY

Booting up with sata disk with windows 10 without duet
https://youtu.be/2tiC1xikhOQ
I will update above when I have found new things

@ bonet69
What Mobo do you have if I may ask ?

@Gamma-ed

Yea, sorry but I don’t understand the "when bios want to do dram testing, it suddenly reboots… ETCETC"

Did the GA-EX58-UD5 BIOS has an RAM test utility or something?
If so, DUET is not loaded at that stage.

Check anyway the memory channel configuration on the board manual\motherboard layout.
Usually on X58 board with that slot type the second bank from the CPU is the first.
If you populate 6 slot you populate (DDR3_2) DDR3_1 (DDR3_4) DDR3_3 (DDR3_6) DDR3_5
If you populate 5 slot you populate (DDR3_2) DDR3_1 (DDR3_4) DDR3_3 DDR3_5
If you populate 4 slot you populate (DDR3_2)DDR3_1 (DDR3_4) DDR3_3
If you populate 3 slot you need to populate DDR3_1 DDR3_3 DDR3_5
If you populate 2 slot DDR3_1 DDR3_3
If you populate 1 slot DDR3_1
Parity problem cause signal loss on round back.

On you board and from your point it look like [CPU] → (DDR3_2) <-DDR3_1 (DDR3_4) <-DDR3_3 (DDR3_6) <-DDR3_5
(element) are to be populated only if the memory is installed into the main relative slot [DDR3_1 DDR3_3 DDR3_5].



If this current implementation of DUET reboot on it’s initial memory check, sort of empty screen with a progress bar and memory size info, it mean the configuration is not supported.


…or are you referring about the monitor output change seen by the video?
If so: that the primary output port of the graphics card in UEFI.
I don’t own a ATI\RANDEON video card to check, that’s how it work on the system I have at mine disposal.
On the video card locate the HPLE2201w and change it’s port with your main monitor.
If it doesn’t work or keep changing to another it could also mean your main monitor doesn’t support the selected GOP resolution (max).
Try to re-name the TV port name to HDMI\PC or HDMI\DVI PC with the help of the TV remote IR-controller or by the panel push the “SOURCE” button and select the port in use by the PC.
Once the port is selected ( if unconfigured the name could be “—” ) push the “TOOLS” on TV remote IR-controller/panel to rename\change the name to anything with “PC” if available.
If the function is not available on the back of the TV locate the cable and re-attach it on the HDMI 1 port to rename the TV port to PC.



About userbenchmark.com dunno how or IF their application actually check for the available memory (no remote DB comparison).
If you download RAMMap and open the “Physical Ranges” tab you should be able to see the addressed range from START to the END along other useful information about the usage.


An explanation for the non-available hardware reserved area is;

There no hardware reserved memory except for the NonPaged low limit hard set to 1MB (BIOS).
On X58 there no integrated GPU or anything critical by default running below or requiring an reserved (user inaccessible) area within the memory.
The way this (EFI implementation) DUET is currently mapping the memory make all the above from a certain range available to the next owner, usually the next owner is the OS or it’s kernel implementation.

Ok so its normal i guess, check my build at signature

@bonet69

Duo the underlying BIOS it’s a sort of on TOP way of working.

I recently did a wild and big update on the way REFIND work.
Mainly fixed an old but critical issue on pointer removal and sequential poll once used in conjunction of DUET and KVM switches.
Other proprietary EFI firmware might not be affected or would not be able to take any advantage of the change while using the non-bootable REFIND option alone.
Most of the customized MAC(OSX) code for accessing its own legacy OS firmware, unused or untested by this DUET type of booting (UEFI over legacy BIOS) has been disabled during the build or removed.
You should receive a warning about if detected: to boot MAC OSX see CLOVER or something.
I have also removed all the unused icon and updated the decoder/encoder for the PNG menu images\screenshot along minor changes on EGL and added an internal versioning build.

If something you used before doesn’t work anymore but you think it should still: report back.
These changes are by the way definitive ( if no issue are found ).

Hello, all.
Today I tried to prepare a USB flash drive with DUET-REFIND, but had some difficulties.
CLEAN and FORMAT passed normally, but when I press BOOT the following errors occur:
and

I circumvented this problem by creating a USB flash drive with DUET-REFIND on another computer.
Perhaps the error in the work of “USBSetup” is associated with the account under which the work is carried out. But this assumption requires verification.The difference between computers:
- my main: Windows 7 x64 Pro, account “Main Administrator”.
- another: Windows 10 x64 Pro, standard account “User”.

Eventually, DUET-REFIND on my main comp started fine, and next, using a slightly different installation method of Windows 7, I’ve got a perfectly working system with a bootable NVME SSD and Windows 7 x64 on it.

Hardware:
- Asus P5B Deluxe (Intel P965 / ICH8R, legasy Bios),
- NVMe SSD: MyDigitalSSD SBXe 480 Gb.

I want to express many thanks to this forum and its active participants. Due to your efforts, there is a lot of important useful information here, and qualified consultations available.
The old “iron” gains a second life. Thanks to all!

@Krukermann

Thank you for the report.
Yeah, that part is kinda messy dunno if ANSI\ASCII text will go trough without issue.
I’ve made a change on the way the directory are stacked together on that passage.
Only English OS code page (UTF8) is currently supported by USBSetup.
Accented character or special ANSI\ASCII code by relative path (EG: User ŃĂMÊ) it’s not natively handled by the (StandardInput [StreamWriter : TextWriter]) run-time on which the application run on (C#) probably a bug on the on the virtual class encapsulation of (Stream BaseStream ) or by the “Default” encoding since by console output or by log to file the encoding is generated fine.
Will look on it, someday.
StreamWriter class is unreliable for the operation or require double write while on memory to stick.
If the error message say “Unable to find” whatever.
I can potentially “fix” it by introducing unhanded issue with 437 DOS encoding for the operation but since this will break someday down, or with multiple invalid character within the directory path I rather not.
If it fail with the BOOT stage move the application directory on C: or use the CreateUSB.


1
 
Updated the non-standalone graphical user interface USBSetup ver.1.0.3.0
 

Try to get windows 10 onto a nvme drive via clover. The closest I’ve got is clover working with the nvme driver installed but when I select the win 10 install (rufus disk per instructions) all I get is a line of text saying it is loading but nothing happens. I’ve tried the bu utility moving the drivers into the correct dirs, I’ve also tried boot directly fro the iso with no joy any ideas?

https://www.amazon.com/gp/product/B06VSL…0?ie=UTF8&psc=1
https://www.amazon.com/gp/product/B07RXQ…0?ie=UTF8&psc=1

@scottfree123 :
Welcome to the Win-RAID Forum!
You are not able to boot off your NVMe SSD, because the required NVMe EFI module is not present within the LEGACY (non-UEFI) BIOS of your mainboard and cannot be inserted into it.
Since your problem is BIOS resp. Boot Sector and not storage driver related, I have moved your request into this already existing better matching thread, hoping, that you will get support from the thread opener @noInk .
Good luck!
Dieter (alias Fernando)

@scottfree123

This is not Clover but it might work with the 2015 version.
If you decide to use this method requirement are different.

Download the DUET (UDK2015) version and connect the Windows installation USB media made by Rufus.
• 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 text below.



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



How to CLEAN install WINDOWS 10
• Download the windows 10 media creation tool and make the WIN10 ESD-USB directly from the media creation tool.
• Boot the PC with the DUET USB connected and wait for it to reach the graphical boot manager.
• Connect the WINDOWS 10 ESD-USB and refresh the visual representation list by hitting the ESC keyboard KEY to make the “Boot Fallbcak boot loader from ESD-USB” option appear.
• Launch the EFI WINDOWS 10 installer from the WINDOWS 10 ESD-USB by selecting the “Boot Fallbcak boot loader from ESD-USB”.
• Select CUSTOM: Install Windows only (advanced) on the next screen delete all the partition till the NVME drive show as “Drive 0 Unallocated Space” and select NEXT, YES, NEXT.
• Once the Windows Setup screen end copying and installing Windows disconnect the WINDOWS 10 ESD-USB before it self-reboot. On some legacy board this is required.

@Krukermann

I -should- have actually fixed the diacritics (accents) in the file path for the boot utility with USBSetup ver.1.0.3.1
Issue was duo C# memory UTF16 string begin wrongly auto-converted in UTF8 by the runtime (TextWriter) output console interface (DOS shell).
Dropped the usage of the DOS console in favor of powershell for quicker handling in the USBSetup boot MBR processing\patching and updated the given parameter.
Should now let you have almost any type of allowed windows character on path by encoding the on memory UTF16LE string with UNICODE base64 and making use of that value as direct command.

Also enabled the -GenBootLOG switch for USBSetup.
It should does just that, log the boot process parameter used while making the USB bootable.
To decode the Base64String on powershell use the following command:

1
 
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String('Base64String'))
 

Base64String & EncodedPathCommand should always mach.


Maybe it's not required anymore to remove manually the USB during the process, IDK.
Removed the unplug\plug message.


1
 
Updated the non-standalone graphical user interface USBSetup ver.1.0.3.2