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

@Bankas85

Thanks for reporting back.
I’m not getting that error on the current 2019 version.
Maybe some file used by the process were missing from your system.
Can you run anyway the 2019 USBSetup.exe from the command prompt with the following case-senstive switch:

1
2
3
 

USBSetup.exe -GenDirMD5
 
 


On the newly generated MD5.txt you should find those line:

1
2
3
4
5
6
7
 

17087ebbab4bacc93bd62b983982991a Binaries
2dd87bbe0a96bc73882ff8686fa8d8e8 BootSector
19e6e690cc2bdbb6d17e89ad73cffa03 EFI
3f8358f5cdc5004d919141366cabde63 Efildr
a05972dbf549d0371e3a8afd3203db8a Refind
 
 


Those MD5 should be the default for the 28-10-2019 DUET version

Hi! I did it. But I did get this MD5.txt file instead (by DUET_UDK2019_REFIND.zip linked in the thread):

17087ebbab4bacc93bd62b983982991a Binaries
2dd87bbe0a96bc73882ff8686fa8d8e8 BootSector
ae1de7b9cb236aef25b3d2d2d48be63e EFI
3f8358f5cdc5004d919141366cabde63 Efildr
b9f330056a258f6aa63ab0489d2f7827 Refind

@Bankas85

That’s not the MD5 of the 28-10-2019 DUET content available on the first page.
Download again and check the location on which you are trying to download or unpack the archive in a new folder or see if something is modifying the files.

• Current download link for DUET (UDK2019) with REFIND included

Hi again!

Opening MD5.txt inside the DUET 2019 archive the MD5:s are the same I can see.

However… If I do a "USBSetup -GenDirMD5" on DUET2019 (cmd/admin) it gives me this other output of MD5.txt:

17087ebbab4bacc93bd62b983982991a Binaries
2dd87bbe0a96bc73882ff8686fa8d8e8 BootSector
19e6e690cc2bdbb6d17e89ad73cffa03 EFI
3f8358f5cdc5004d919141366cabde63 Efildr
b9f330056a258f6aa63ab0489d2f7827 Refind

The MD5 for Refind changes. This output is also true when I test on Windows Server 2019 and other systems aswell, with both 7zip/WinRAR.

Might be some old string in the GenDirMD5 function? Just to help out :slight_smile:

@Bankas85

YEa, nope. Should be the one I’ve posted.
Are you manually modifying something in those directory except for extracting the archive from the DUET_UDK2019_REFIND.zip?
The current MD5 for the 28-10-2019 DUET ZIP archive is: F633378448C9EA4648E268311A6A23F0

The case-sensitive command line parameter to disable the MD5 check is:

1
2
3
 

-DisableMD5
 
 


But if you are starting from a non-working prospective, try first to use it without modifying anything.

The MD5 for the ZIP is correct.

No I just download using the link provided and then unzip it with WinRAR/7-zip, enter the folder via cmd and run the "USBSetup -GenDirMD5" command and end up with the same result no matter what system. Strange. This was done on a Windows Server 2008 R2 for example right now, just downloaded the zip above, unzipped, go via cmd/admin and did the regeneration of MD5 directly. The MD5.txt then changes modified date and looks like this:

17087ebbab4bacc93bd62b983982991a Binaries
2dd87bbe0a96bc73882ff8686fa8d8e8 BootSector
19e6e690cc2bdbb6d17e89ad73cffa03 EFI
3f8358f5cdc5004d919141366cabde63 Efildr
b9f330056a258f6aa63ab0489d2f7827 Refind

@Bankas85

Can you zip the Refind directory and make it available to download?
You should try to enable the “show hidden file” and uncheck the “hide system file” on your system to see if something is copying itself on these directory.
Also, in case check on Process Monitor or Process Explorer and run the sfc /scannow under an administrative command prompt.
If nothing change, since you just got it on the NVME, do an “in-place install” with the ESD-USB to repair whatever and select to keep your files and application during the process.

Anyway I’m pretty sure about those MD5.
Something is OFF on your system.

Let me show you how I do it. Here’s a video of the procedure about 1 1/2 min long (13MB, MP4):

http://www.sjowall.se/duet_md5.mp4

I’ve also tried it on two other systems aswell with same result.
There is no antivirus or such on the terminal server used.

(EDIT after reading your post edited: The NVMe is never involved.)

@Bankas85

Saw the video, dunno, maybe try to use 7zip to extract the archive or the OS built-in ZIP extractor?
If the MD5 of the archive is the same but the output is different, it mean something got changed during the extraction or after.

Yeah strange… but as I wrote before, I’ve tried 7zip aswell - same result - and here’s the checksum of the DUET ZIP:

Checksum of ZIP, correct MD5: http://www.sjowall.se/duet_md5.png

@Bankas85

Yea, that’s the current MD5 for the 28-10-2019 DUET ZIP archive.
Last thing you can try is to open and use the powershell (CD to the same path the archive is located) and extract the zip with something like:

1
2
3
 

Expand-Archive "DUET_UDK2019_REFIND.zip" "DUET_UDK2019_REFIND"
 
 


And check again on the MD5.
Something local might interfering with the extraction or the directory anyway.
I just checked for 20 time on different VM and live system. The archive and internal MD5 once extracted remained the same each time.. as expected.

Well yeah holy mother of Gods… Powershell worked while WinRAR wouldn’t, how the f*. Here’s a summary:

* The Powershell Expand does make the USBSetup -GenDirMD5 command put out correct MD5 checksum for REFIND.

* The latest version of WinRAR (x64, v5.90) does not do it. It makes USBSetup generate the wrong MD5 checksum for REFIND time after time.

* Also the 7-zip extraction I tried on the same file on my personal laptop generated the wrong MD5 checksum for REFIND.

Asking myself: Why only for the Refind folder? Never seen anything like it…

So what do we say here - quantum observer effect? Lol!

For the note: No antivirus or Windows Defender on neither system.

I guess I would say this made us both quite confused…

Powershell for the win for this time!

Anyway thanks noInk! Have a nice day! And you’re a damn quick replier… :slight_smile:

EDIT: I later found out that Powershell ALSO put the incorrect MD5 checksum on my local personal laptop (Win10 64-bit) for REFIND. Indeed f* strange stuff here.

@Bankas85

You might have some proliferation of unwanted stuff going on those system.
You can check by leaving the powershell open once extracted.

While the powershell it’s open the MD5 would NOT change.

To know what run Process Monitor and check for unrecognized application or see directly for hard\high page fault count on the memory.


Best thing you can do is to detach the internet cable and do an “upgrade in-place” or “install in-place” form the ESD-USB while selecting the “keep application” and “personal files” maybe the culprit would be left behind.
On the NVME it would take 10 min at max to repair the system.

Minor overhaul on CreateUSB.
Enabled by default the CLEAN function and added an minimal fail-safe detection mechanism for the disk type.
Implemented a simplified detection mode to copy the NvmExpressDxe when using the REFIND mass-storage without the DUET option from the command line.
Major changes: USBSetup updated to version 1.0.1.8. Changed the directory tree and the way file are handled, also fixed a wildcard and empty character regression and removed old unused code.

Adjusted the How-TO on the first page, the readme and image to reflect the change.




@Bankas85

If you still get an MD5 mismatch you should try to find out what process\application is causing effectively the mismatch by monitoring the directory access or something and report back.
Anyway, each version has it’s own checksum reported in the MD5.txt and if it change but work it could also mean it got silently updated.

These are the new MD5 for the time begin on the 2019 version unless something get reported and somehow fixed or added.

1
2
3
4
 

427dc23e77c75b10522f6593dee4beb4 DUET
a05972dbf549d0371e3a8afd3203db8a Refind
 
 

OK, Dutch guy over here, ready to pull my hair out as well. Hopefully someone can help me out.

I have an Gigabyte ga 58ex ud5 mobo, with a NVME ssd and adapter for pcie 4.0x

I have made a duet with refind usb, and when starting up, it gives me the menu and can choose between shell prompt, and reboot, and 2 other things on the bottom what I can not recall. I have seen pictures from others, that above these text there should be 2 things you can select, a windows and 3 circle thing. But I do not have that

SO I thought perhaps the usb is crapp, so I formated the usb, and made a new one. Directly from the media creation (I think 1903 if I remember right), and tried that, no succes. I did it again with rufus, mbr, let it write a iso windows 10 file to the usb.

And then boot again, what happends now, I do not see the Duet menu, but I see straight away the windows start up menu, so I thought lets install, after a while I see the menu on what harddisk to install. So I select the NVME, but here it comes what is freaking me out!

I get the message that windows10 can not be installed, because windows tells me that the bios does not support a boot from this nvme disk.

Well, my question is, how can i solve this?

SO I was thinking, is it seeing the DUET usb? so I pulled out the usb with windows, and then boot again, it starts up with the DUET menu, and thought lets go into the shell, but here it does not show any other disk then only the usb with duet. FS1: to FS9:, nothing to find. So its not seeing any other disk, only fs0: is there. So its not seeing the sata disk what is installed or the nvme.

I forgot to mention, that I have altered the bios, to first go into the DUET USB and then the Windows install usb, and last part to start up from the old sata disk

@Gamma-ed

If WINDOWS 10 doesn’t let you install the OS on the selected NVME drive it mean your board didn’t boot from DUET.
Some legacy board will auto-boot the legacy installer first and require to attach the WINDOWS 10 ESD-USB installer after the UEFI environment is loaded.

Attach the DUET 2019 USB on the first available 2.0 USB port and boot the PC.
Once it reach the graphical menu like in the image below



attach the WINDOWS 10 ESD-USB and refresh the USB list by hitting the ESC keyboard KEY to make the “Boot Fallbcak boot loader from ESD-USB” option appear.



Once the “Boot Fallbcak boot loader from ESD-USB” appear click\select the option to load the EFI installer of WINDOWS 10 to install the OS on the NVME device.

Yes, the escape button on the keyboard does the trick.

But now I got the message its not a gpt disk. Wanted to convert with windows 10 but windows did not let me. So I have downloaded another tool, called niubi, and converted the disk to gpt.

Boot again with duet USB, do the escape trick, etc, now I wanted to select the gpt nvme drive, yes, but now it gives the message, we can not make system partition or find a used system partition. (I have translated it from Dutch so not sure if it’s missing something)

I have formated the nvme with the windows install but now it can find anything of the nvme. Even in windows 10 I can not find it anymore. How to fix this, seems I lost a driver on the disk or what happened?

SSD : ADATA SX6000 LITE

@Gamma-ed

If you are at the point of doing a clean install on the NVME instead of the "Format" during the install use the "Delete" option on each partition of the NVME till it become a DISK with "unallocated space"
Once the NVME is RAW select the "New" option to make the layout GPT.
If for some reason the NVME is not recognizable anymore by the EFI WINDOWS 10 installer it could mean the disk layout got previously broken at some point and/or certain partition are hidden for EFI the installer.

What you can do is;
boot the WINDOWS 10 installer without DUET to "Delete" the broken hybrid \ hidden MBR layout from the NVME disk
boot an WINDOWS 7 installer without DUET to "Delete" the broken hybrid \ hidden MBR layout from the NVME disk
boot an WINDOWS OS without DUET to "Delete" the broken hybrid \ hidden MBR layout from the NVME disk

1
2
3
4
5
6
 

%windir%\system32\compmgmt.msc /s
"storage" > "Disk Management"
SELECT broken DISK
right click > "Delete Volume"

 

To know which disk is the NVME compare the SIZE
Once the broken hybrid \ hidden MBR layout has been deleted and back to RAW you can install WINDOWS 10 as GPT with DUET by selecting "New" on the NVME disk.

If you are at the point of doing a clean install on the NVME instead of the “Format” during the install use the “Delete” option on each partition of the NVME till it become a DISK with "unallocated space"
Once the NVME is RAW select the “New” option to make the layout GPT.

I did this, and the windows installer let me install windows 10 on the nvme, so far so good, but after a while it does a restart. But it would’nt boot up in windows. I have taken out the windows usb, and reboot with DUET with refine, but the NVME harddisk is not shown or it wouldn’t boot up.

So I did the windows 10 install again to see if the nvme is vissable, but it was gone.

I did a reboot with the old harddisk with installed os, and I noticed that the NVME was listed as D drive and that there are windows files on it and its in the format gpt. Also noticed that it is reconised in the hardware again, but with windows drivers, so no type or brand named in it. So the installation did something right, but now how to boot from it ?

What else can I try?