What can TianoCore's DUET be used for in a PC?

I've recently become interested in DUET, Intel's UEFI emulator for developers. I'm reading that it can be installed to a hard disk, but what does this make it? Some kind of boot monitor? A virtual machine? Would I be able to make BIOS computers run like EFI computers? Could it be used for a software-based secure boot?


Solution 1:

You can think of DUET is a sort of boot loader that loads an EFI environment on BIOS-mode computers. When run, DUET essentially turns a BIOS-based computer into one with EFI support. It's not a virtual machine. The last I checked, DUET did not include Secure Boot support, but that may have changed with recent builds. (Even if it did include Secure Boot support, it wouldn't really be all that effective, since DUET still depends on the basically insecure BIOS boot path to get started.) It does let you run EFI-based boot loaders and other EFI tools, though. As the name implies, it was originally designed for developers, but I imagine that most developers now have real EFI hardware. Its most practical application these days is likely to be for people with BIOS-based computers who want to boot Windows from hard disks that are larger than 2TiB. Such disks need to use the GUID Partition Table (GPT), and Windows can only boot from GPT disks when using EFI. DUET enables this. OTOH, it's also something of a pain to set up, so you should consider it only if you've got more time and/or expertise than money. If you have one or two hundred bucks to spare for a desktop system (or a bit more than that for a laptop), you'd be better off replacing the motherboard (or the whole computer) with an EFI-capable model.

The process of installing and using DUET is too complex to describe here; but I've written a Web page on the topic:

http://www.rodsbooks.com/bios2uefi/index.html

Note that DUET is extremely finicky. In my experience, it works best on Intel-based computers. I've tested it on at least three AMD-based computers, and it failed completely on two of those and worked poorly on the third. You'll need another BIOS-based boot loader (such as GRUB or SYSLINUX) to get DUET started at all. My Web page describes how to set that up, though.