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

Nope, that’s not normal. Should all goes without error. ( ie. Write DBR: sucessful! )
Can you RUFUS it? and try it again? …
Testing on Win10 FCU

and yep, it’s Win10 FCU!
( HOLD ON TESTING ON REAL EFI, might be duo the memory protected area on emulator )
OK.
Mine real machine with Win10 without the FCU work stright away.
So, could be either duo EFI running with EMU variable, or that Win10 FCU lock something in that area.
ADDEDUM: same machine ( x58 ) the genbootsector work on both Win10 pre FCU and Win7, it seems microsoft is doing something with the FCU.
Will check on that and let you know, sorry I didn’t know.

@noInk

OK, I used refus 2.17 three times with varying changes, i.e with and without boot support etc, with and without rufus mbr. All three times the duet fails at the same write DBR part. I don’t understand now… I want to find another windows machine, but all my other machines are Linux based.

@noInk

Good news and bad news.

Bad news first, both my XEON machines fail to succesfully format any usb drive using duet and both machines are on build 1709.

Good news, all of them worked on my fathers (had to run next door) x79 system using the very first ever released Windows 10 (he never ever updates for some reason).

So I have it formatted, but have not tried it yet. Doing that now. Thanks for replying here.

EDIT: OK, it worked and it booted my windows install straight away.

I updated the previus post, glad you self-solved the issue.
I have no way to quick solve it duo the time required for the DL/installation of the fall creator update to just check on hardware.
Anyway, same machine x58 it work from both Win10 pre FCU and Win7, so it seems microsoft is doing something with the FCU.

Yes, and I noticed that Clover also failed. It actually finished the format just fine and said everything was succesful, but when I tried booting to it, it was just a black screen that never booted. So, both my xeon machines failed, but my fathers x79 and his i7 worked just fine on much older Win10 build. Weird…

One of my machines is x58 with X5650 running 1709 (clean 1709 ISO install), but the other machine is a Asus P5B Deluxe with a E5450 XEON running on 1709 FCU (updated install from Windows update). So yeah Microsoft must be doing something strange on some machines, or a missed bug?

Can’t be a BUG too specific. That’s a provision that even system can’t touch.

Ok, it seems Win10 FCU has deployed a sort of MBR filter to stop a wild range of ransomware relying on the disk sector.
The GenBootSector does write on it to make the USB bootable.

Here the full source;

GenBootSector.c

I’m not currently aware how to temporarily disable it.
Anyway, except for that Win10 FCU issue, how this DUET version work for you?

July I last worked with UEFI emulation. I had the exact, maddening problem. I used a Win7 laptop that happened to be around (we roll Win10s here) to avoid it once. I did eventually discover the workaround. It escapes me. I can offer some ideas with potential:

From BOOTICE:
<br />@ PBR Operation<br />===========================================<br />BOOTICE [DEVICE] /pbr [/install /backup /restore] [parameters]<br /><br />/install &gt;&gt; Install some kind of PBR, requires /type parameter.<br /> /type=[msdos | GRUB4DOS | ntldr | bootmgr | syslinux]<br /> If /type= is missed, the program will stop at the PBR screen.<br />/backup &gt;&gt; Backup PBR to a file. Requires /file= parameter.<br /> /file=xxx &gt;&gt; File name. Could be a rel. path or full path name.<br /> /sectors=n &gt;&gt; Specify the sectors number to be backupped.<br />/restore &gt;&gt; Restore PBR from a file. Requires /file= parameter.<br /> /file=xxx &gt;&gt; File name. Could be a rel. path or full path name.<br /> /keep_bpb: Keep BPB(Bios Parameter Block) untouched.<br />/boot_file=xxx &gt;&gt; Specify the boot file of GRUB4DOS, NTLDR or BOOTMGR boot record.<br />/v4 &gt;&gt; Install SYSLINUX v4.07 (default: v5.10).<br />

The great thing about BOOTICE is it allows imaging the PBR and Partition Table as files. IINM noInk could send those from his new build’s successful creation. It might have something to do with the writing software’s signing. HP_USB_Format_Tool or BootDiskUtility (a Clover installer that can be used without adding it) might be relevant. Several others said the HP tool would no longer function and it works fine with my configuration. Every combination of Admin privileges and script edits were fruitless before something succeeded. Do not give up.

@noInk

It is OK. A bit slower to boot than Clover was, but I am OK with that. What is important is that it works. Sadly, on Friday, after 11 years my Dell monitor suddenly died on me (blown caps) so I lost the ability to see the BIOS screen or the DUET boot process. Thank heavens that it is automatically booting Windows now because my Korean 1440p IPS (an LG screen with an aftermarket video board) does not turn on until windows loads (perfectly normal for this setup). Something that only affects my video card and this particular PCB (all other video cards are OK). So here soon I will need to get a newer video card so that it works with my 1440p display OR rebuild the Dell’s video board and its psu myself, which I will have to do eventually anyway. Oh well…

Anyway, thanks for making fs1 boot automatically by default. You saved me from having to connect the TV to my PC, lol. Thank you for that…

@silekonn
Hi, Thanks I’ve dirty fixed the issue, dunno the implication :smiley:
Anyhow it work now on Win10 FCU too.
Just be sure to have an healty MBR already on the USB DISK else some unexpected behevior could happen.

@SkOrPn
Sorry to hear that, just to let you know I’ve updated the DUET package.
Took the SCSI DXE and lot’s of other thing to 2017, the build is ahead of 2016 in certain aspect.
Without removing the logo delay(2sec), the default shell timeout (5sec) and initial check(instant on mine end) the system seems boot normal can you be more explicit? or do you mean the 7-8 seconds more, after the BIOS is just too much?

@noInk ,

The time is NOT too much for me. But if you must know, on my Clover setup there was no 5 second wait (could be because it was booting from SATA SSD), it just loaded the UI and I “physically hit the enter key” because Windows was always the “highlighted OS” by default, thus no wait time. Clover also allows for me to auto boot but I never bothered with it, just too lazy even though it is copy/paste code (lol). With DUET we are forced to wait the 5 seconds before startup.nsh can even start loading fs1. Again, I really do not care because I didn’t care on Clover, so why would I care now, haha. I am used to using DUET anyway from last year and most of earlier 2017. I am just happy its autobooting. That way I can turn the computer on, go get my cup of coffee, oatmeal and apple, come back and its already loaded, YAY! If I was still on Clover I would be greeted with a black screen (because I never set autostart within clovers .config files) and have to sit down to a booting Windows.

I hope that was clear bud, and that the few seconds time difference, if there even is any, just doesn’t matter to me. What bothers me more now is that the new Windows 10 1709 wont let me format a DUET usb drive. But hey its running OK so far.

THANKS AGAIN for this updated DUET. Any idea if I will ever be able to format a USB using my 1709 build of Windows?

Rod

@SkOrPn
Yep, the format should work now on WIN10 1709 FCU too.
I’ve checked on an old laptop with a MEROM - bringed back the GPU to life with an hair dryer and infrared thermometer (just 100C) after disassebying it yesterday LOL and the X58.


For the delay, well to me it’s just fine, eventually I could embedd a shell without video output and timeout so, a gain 5 sec could be expected.
To access a shell with video output tho you’ll need to hit ESC or F12 and manually locate it on the USB from the grahpical menu.

The grahpical bootmanager app can do that tho, issue is the configuration cannot yet to be saved on the USB - will eventually see how to do that, I’ll be updating the core functionality first.



Wow thanks, I didn’t realize you had fixed it.

Oh, and a few years ago I accidentally back flashed my p5b deluxe with xeon code trying to resolve an issue only to kill the board. I tried everything, removing battery, waiting days upon days, but nothing would bring it back from the dead. I was going to de-solder the bios chip and solder on a new one but instead just went back to using my old Dell for my server duties. Then about 4 months back, maybe after 20 months of being dead, I decided to try a new battery on it and low and behold the dam bios posted… wtf… I almost fell over because I spent weeks in 2015 trying to get it to post a bios screen, both with and without a xeon in it. Why 20 months of no power resolved it I have no clue. Funny thing is that same board was also killed way back in 2012 from my brothers blown water cooling system, but in 2015 I decided to soak it in alcohol for a bit, brush it carefully and then used pressured electronics cleaner and then put it in the oven at lowest setting for 15 minutes praying nothing would melt, haha.

Sure enough the damn thing came back to life and ran fantastic again. Not counting my brain fart back flashing this thing keeps on coming back from the dead. Now if only we would stop doing things to kill it in the first place… lol

@SkOrPn

Oh well, the laptop died already T.T
Gonna use something with higher temperature and perhaps some flux on that go7700…
Anyway, I’ve updated DUET pretty much to 2017 release, so, making it a separate file.
I will update that package from time to time, maybe!
DUET UDK2017 for X58

If you do already have made the USB bootable for DUET, all you need to do is replace the Efildr20 on the root directory.
Cheers

@noInk

It is working perfectly, so thanks for that. And sorry to hear about your laptop. I lost interest in my laptop years ago, so I just keep Manjaro on it just in case I need it for something and want it to run as fast as possible when I need it (I take my Samsung Tablet everywhere now instead). Yeah you have DUET at UEFI 2.60 now and Shell at 2.2.

What are the benefits of having newer versions of UEFI anyway on older systems? Does our OS or Hardware work any better with UEFI improvements?

@SkOrPn

Yes, there seems to be lot’s of code optimization for just anything ( OS, CPU, MEMORY ETC,ETC ) so, it shall make a minimal difference over the 2015 version.
Keep in mind that not everything work in UEFI 2.7 spec, I didn’t yet find the culprit code to break DUET on UDK current main repository on our system, some part regarding the firmware execution in the memory are still within 2015 specification to actually make the build, also, there dummy code for the network (no IPv6) and other thing literally not used to make it on the OS while starting from the BIOS.
About the laptop, yea, me neither tho I found handy to drop in it the USB instead of the more worthy X58 to have it boot/reboot to check the boot process while updating all the revision for DUET.

@noInk ,

One more question if you dont mind. I saw that you once said that this was tailored to x58 platform. I am not sure what you mean by that. Isn’t DUET universal and thus will run on practically anything? I have a Asus P5B Deluxe (965 chipset used as local Cloud Server), also a old BFG (nForce chipset with Intel Xeon CPU) motherboard for Plex Server, and I also have a Gigabyte Z68X-UD3H-B3 with i7-2500. Couldn’t I get a Samsung SM961 for each of these and use DUET to boot the OS on them too?

By the way, I understand fully the benefits of UEFI vs BIOS. I just didn’t think newer DUET with newer UEFI code would come with code optimizations that would help decade old hardware run better. I figure all the optimizations and feature inclusions would be for new hardware only. Am I wrong on what I was thinking? Can the new OS’s and my old Xeon get real benefits by keeping UEFI up to date? Or does it really only help with me including newer hardware such as new GPU’s and this 2017 Samsung NVMe SSD? What do you think?

@SkOrPn

DUET is just an EFI emulator and require the right hardware to boot it. It doesn’t do all the thing the BIOS is doing and is dependant mainly by the CPU architecture and chipset.
I physically tested the boot process only on mine X58 ( now on the i945 too ), still targeting the X58 for daily use.
You could eventually try the build linked on audiocricket guide to see if these system you have mentioned boot or don’t or if there are evident difference from this version, anything that could come in your mind can be tested! :stuck_out_tongue:
There are code changes for protocol and standard like SATA, fallback from greater revision, errata and different firmware compression and structure, change in bare driver and pretty much any dependency out of the DUET source directory package.
From an human prospective, considering it’s not a real EFI: it depend by how much you know your system.
Long story short.
To bypass the SATA2 limitation and test those not cheap NVME, I made the step to revive the X58 I had, and, for things like a bootloader I’ve made the choice to review the code and rather build from the source cause it is avaiable and have it updated at need :smiley:

Good stuff man. Thanks again and two thumbs up from me.

I was thinking we may need a DUET guide to installing Windows and or Linux here at win raid, similar to the one at audiocricket. Since you clearly know what your doing with updating DUET, maybe you could provide a fresh update quarterly or every six months or so, or when ever meaningful UEFI updates have come. We have a Clover Guide here but I don’t think there is one for DUET yet. Not sure though…

Have a great weekend.

Rod

@SkOrPn

For your display I changed the default resolution on the 2017 version, it might let you visualize the boot process on the korean monitor.



I doubt that, but thanks a ton man.

My Korean monitor is a self built Yamakasi using a LG IPS 1440p display. The input PCB requires most any Video Card except for the 5870, which is known NOT to work with this PCB for some reason (just during the BIOS thankfully), which was specifically advertised by the manufacturer (I knew this going in which was why I kept my Dell connected at all times). In other words, my video card is on the "Not compatible" list. The only other GPU I have is the 8800GTX, and that is a huge downgrade from my 5870.

I hope to buy a new GPU maybe this xmas, or maybe by this next summer at least.

P.S. Will this new version work on 1080p using HDMI? I have my PC now connected to my Sony TV, just for viewing the BIOS boot process.