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

@boketa979


If the more recent DUET build linked at the moment on the first page of this thread doesn’t load past the same stage, while giving you a different message: it could mean your hardware is not supported.

Hello

I wanted to install DUET-REFIND combo on my CompactFlash card (because MB I would like to use doesn’t support USB booting).
However I can’t do that since CreateUSB thinks it’s IDE HDD.
I did replace files created by Clover installer (and it kinda works).

Now, my problem at this moment is simple :
I want to install Windows 7 SP1 on AHCI PCI-e M.2 drive (SM951 AHCI) formated as MBR.

Q : Does DUET-REFIND support CSM/Legacy booting ?
Because at this moment, pendrive that I prepared with Windows installation isn’t visible in boot menu.

If you have booted to duet with the flash drive already plugged in, just hit the escape key and duet should re-scan for bootable media and then show you the windows 7 flash drive. I have no clue how to install using legacy and mbr because I am using this duet with a nvme sm961. But I would think it doesn’t matter because windows will install how it wants to based on the drive you are using. But that is a good question.

EDIT: Oh, and you could use Boot Disk Utility (BDU) from Windows to make a Clover setup on your IDE HDD device (in the settings it will let you select any device to write to). Then just overwrite all the files it creates with the DUET-Refind files? I am guessing this should work. I am sure there are many other ways too. What modern system with PCIe slots doesn’t have USB boot support???

http://cvad-mac.narod.ru/index/bootdiskutility_exe/0-5

It’s called Socket 939 :smiley:
And like I said, I already did BDU and copy files on CF, and it does kinda work (it starts as Clover, and then I have to switch to DUET-Refind… so, success ?).
My problem is with DUET/Clover not finding Windows installer from both USB stick and DVD (I tried both).

PS. I know Windows will install fine once DUET will let me boot.
But I have to install it from BDU, because DVD installer doesn’t allow me to finish Windows installation on SM951 (AHCI) drive.

@agentx007

DUET is an UEFI emulator to be loaded from a legacy environment.
REFIND scan specific partition type ( @source ) to read and execute EFI files upon user input,script,config request.
You might need to make both window 7 installation USB and DISK GPT compliant to “achieve” what’s you looking for.
Some content switch ( back and forth ) could be possible if the media is wrote to do that’s, anyway this shouldn’t be the case.

Interesting stuff, duet has always seen every medium I have ever thrown at it no matter what OS installer I put on it. I have a working socket 939 lying around here somewhere, maybe I should see if I can power it up and try duet on it for the fun of it. The only machine I have that doesn’t boot up from USB is my old Presario with a Athlon XP 3200+, or so I thought.

What about using a IDE SSD and create a small partition for duet, and then use the remaining space for storage. That way you have a fast duet installation. And if you determine the machine simply can’t see bootable media from the PCIe slot than you can install the OS to the ide SSD.

I know GPT should work, but GPT isn’t supported by Windows XP at all.
That’s why I wanted to avoid it for Socket 939, and why I bought PCI-E AHCI drive.

Compact Flash card with IDE adapter (that’s what I’m using), can count as basic SSD (with slow transfer speeds sure, but DUET doesn’t need much) :slight_smile:
With it, I can avoid bulky additional hard drives (compared to CF card), permanently occupied USB ports + pendrives, it bypasses that “no USB booting” problem on old boards since CF standard is ATA/IDE compatible and my “Data”/OS drives can have their own boot sectors that can’t collide with DUET/Clover one.

SATA HDD plan is problematic in another way : My board, DFI nF4 Ultra-D (moded to SLI support), has SATA ports in worst location possible -
long dual slot GPUs always block them.
I don’t want to use additional PCI SATA controller.
That’s second reason for me going M.2 M-key.

I think my problems may come from Windows 7 OS, since it simply “doesn’t like” the idea of UEFI booting from MBR disk, maybe Windows 8 could help with that…
I will check this today.
Thank you for all the help so far.

@agentx007
Even if not supported, it should be supposedly possible to run anything by chainloading compatible bootloader|manager if the architecture is meet.
You’ll be facing different type of issue from the inability to restore the system via recovery till driver not getting correctly loaded within the installation wizard.

Windows 7 should be capable to handle GPT partition, the installation media may require modification.
Windows XP x64 sp2+ could be capable to handle GPT partition even at boot, the OS image may require experimental feature enabled and/or additional developer feature.

@SkOrPn
DUET could be imaged on anything the legacy BIOS is capable to view as bootable. If the (DXE) driver is present DUET will be capable to boot from the target in question.
You can view these driver by opening the Efildr20 with LZMA or 7zip and unpack the Efildr20~ UEFI firmware image. Additional driver require to be either loaded manually or added to the /drivers/ directory of REFIND.


I LOVED my Lanparty board, but no matter how hard I try I can’t remember what I did with it. I still have those beautiful bright yellow petite SATA cables though, and if I remember correctly I removed that silver oval fan from the chipset and installed a copper heatsink (That eventually made its way over to my P5B). That DFI Lanparty board is the board that made me buy my first CCFL UV tube, haha. I think we did a review of the DFI Lanparty NF4 Ultra-D over at my old website PlanetAMD64, but we shut down that website in 2013 so I cant be for sure.

You should have no troubles booting Win7, but PLEASE let me know if you succeed with Windows XP, I would be blown away if you figure that one out. Windows XP is already super fast on the DFI board, but if you get it running from M.2… just wow. I have one of them IDE CF setups myself (Transcend 133x 2GB on a IDE card labeled SD-CF-IDE-DI), but I used it in a old Shuttle PC and only for a test. CF just never really got fast enough for me and when KingSpec made real IDE SSD’s that were fairly cheap I just went that route. Did CF ever get fast enough for a decent OS experience, or are you planning on using it just for DUET? I would think you could install both OS’s the normal duel boot way, then create you CF DUET card and set boot order to that. Have DUET boot to Windows 7’s bootlader and choose Windows XP from that when you need it. Any issues with this idea? DUET most definitely will boot to Windows 7 and Windows 7 most defintely will see XP from its bootlader. No?

By the way, why do you need Windows XP? Can you use Windows XP 64bit SP3 by chance? FYI, it has full GPT support if your willing to use the 64bit SP3 version.

Because having 2GB/4GB of RAM is limiting on anything newer than XP :frowning:
Also, I wanted Windows XP because this board was designed to work with it.

However : I made some progress :slight_smile:

^Pretty good for nForce 4 SATA2 controller if I can say so myself
Oh, M.2 drive uses PCI-e 1.1 @ x2 (because GPU port is set to x16 speed).

Basicly :
Clover/DUET want FAT32 partitions with EFI files on them.
They don’t care how they get them, they simply want that exact configuration for booting.

So, I created 100MB fake “EFI” partition on my MBR drive. I used files from my hidden EFI partition as base (copied by xcopy command in admin cmd), and after adding new entry for partion where Windows will be in EasyBCD program, I checked if both Clover and DUET were “happy” with it (for EasyBCD to work I had Windows 7 installed on IDE HDD).
They were happy enough to boot :slight_smile:
Then I had to force reset manually when Win 8 OS installer “gave up” again on restarting PC (after it completed copying files from DVD).
FYI : If you don’t reset installation then, everything will be deleted and you will be at square one with OS installation.
After force restart, I booted from CF card to almost completed installation :slight_smile:

Now I only need to find a AHCI driver that will work with SM951 AHCI drive under Windows XP…
I think something like this : LINK but with my M.2 DeviceID baked in (?).
Don’t know how it will perform, but if this drive was designed to work with generic AHCI Microsoft driver, I doubt it’s fancy enough to complain much about not standard driver.
But I can be 100% worng here :smiley:

Woohooo, you did it. Yay

I am trying the same thing today, but on a P5B Deluxe. It has one IDE port, and I have one IDE CF card, lol (but it also boots usb just fine). Then I am going to try getting my SM961 to boot Windows 10. I also only have 4GB of ram for it but Windows 10 runs absolutely perfectly on it for several years now (again my Home Server), better than any other OS on that machine. I can only wonder how it will run from PCIe though, lol. I hope it works…

I am doing this just because I need to sell my primary Rampage III Extreme with my Xeon and 12GB ram and upgrade that same box to a Ryzen 5 build. Someone will give me $400 for this X58 as it is now. So I need to get this done this week.

Glad you got it figured out. I’m still not 100% sure on how you got DUET to CF card though. lol

@SkOrPn How to “Compact Flash a DUET” - dirty and complicated method (should work with HDDs as well) :
1) Use BDU program to create Clover installation on CF card (or HDD).
To install Clover on HDD, in configuration menu check "enable fixed disks"

Here’s zip file with Clover version I used (you can use it by selecting local and putting it in the same folder as BDU, do not unpack it) : LINK

2) Delete selected Clover folders leaving only files in root directory (FYI : I do have “show hidden folders/files” box ticked) :


3) Copy all DUET files and folders from pendrive that has it (I used one with DUET + REFIND)


4) Restart, and try booting from CF card (or HDD)

5) To start DUET :
In “grey menu”, go to “Boot Maintenance Manager” and “Boot from File” option.
From list, choose device with “Clover” (other ones may be your SSD or USB pendrive that have .efi booting files on them) :


6) Go to EFI\Boot folder, select bootx64.efi, and click Enter.

After that, DUET menu should load after few seconds.

Also : In my case (SM951 AHCI), I didn’t have to add any .efi drivers to Clover/Duet because AHCI is supported “by default”.

Critical thing :
MAKE SURE Clover pendrive works/boots before deleting Clover folders !

Good luck.

PS. I bet there is a way to modify boot files to start bootx64.efi from EFI folder automaticly, but I didn’t bother to figure out how at this point :smiley:

Thanks agent man,

I think it will be more simplified for me since I am using GPT and EFI already. DUET already has NVMe express efi drivers built in also, so it should just instantly see my SM961 as-is, I hope. DUET currently see’s my SM961 AND all my boot partitions (Windows10 and Linux Mint) on it when I boot up my X58, so I would think it will work the same way here on my P5B. So I bet I wont need to go to the grey menu and do all that other stuff, since I never had to before. However, maybe this is a caveat from using the CF card or the SM951 perhaps?

I will reply here once I get that far. It took me FOREVER to find a normal molex to 4-pin floppy power source to power up the CF card in the first place. But I got it working. Now I have to get my old 8800 GTX thermal pads renewed because this machine was headless and the old pads ruined.

My IDE-to-CF adapter is the one below, and it clearly says it can power up on IDE pin 20, but it didn’t work. The floppy power does work though. I might not even use this method in the end since I bet USB will be twice as fast as this 133x CF (12 mbps I think).

https://www.newegg.com/Product/Product.a…N82E16822998003

Amazing software coming from this small start. Here are a few ideas for improvement:
Executing createusb without the correct switches or lacking a switch yields:
------------------------------------------------------------------------------
‘DUET’ is not recognized as an internal or external command,
operable program or batch file.
The system was Win7 Pro x64.
These utilities take a step out of the creation process and can be scripted in:
http://www.uwe-sieber.de/drivetools_e.html
Keep up the good work.

Well my very old P5B Deluxe is now rocking a SM961 PERFECTLY and as easy as could be.

I downloaded the latest Windows 10 1709 iso using MediaCreationTool. Then I downloaded the latest Rufus and flashed the ISO onto a 32GB flash drive using “GPT for UEFI only”. That worked perfectly. Then I created the DUET with REFIND onto the old CF card, booted up to DUET with the REFIND UI, it instantaneously saw my Windows 10 installer, I clicked on it and Windows 10 installed PERFECTLY. Now when I boot this old system it just automatically boots Windows 10 without a hitch on a GPT formatted NVMe Samsung SM961. Couldn’t have been any easier. For some reason that even felt easier and faster than my much more powerful and newer Rampage III Extreme, haha. Thanks again @noInk for this wonderful implementation of DUET and for making it work with REFIND.

Now to sell some stuff so I can finally upgrade to Ryzen, lol. I waited a year for the refresh and it’s almost here. w00t

Hey guys. Have figured out how to get rid of that annoying Red ‘Welcome to EFI World’ garbage text and get rid of the delay while the logo displays with Duet. Not sure if the Op here has made those optimizations or not. If anyone wants…



Are you talking about that part where its like testing memory? Yeah I absolutely hate that part. I don’t mind the OS selection delay because I actually need that, but I hate that first ugly RED part with the bottom white line that says Testing Memory or something.

EDIT: Yeah it says "Entering DXE" and is color RED, but that is like half a second long if that, then it disappears to a black screen with a white cursor and then on the bottom a white line appears (looks like a progress screen) that says "bytes of system memory tested" (something like that). THAT takes a lot of time. But I wonder if it’s needed?

@SkOrPn

At that point the memory is getting mapped\reserved for the system.
Since skipping that part make the OS incapable to see over the dafault fallback value (2GB) and hiding the process doesn’t change the required time, I opted to leave some visual feedback


Yeah I figured that was important stuff going on. I just thought the guy above figured out how to remove it, but guess not. Thanks for the confirmation noInk