Multi-Boot USB drive with dual BIOS/UEFI support

#1
Mahmoud, almost two years ago, I was asking you about EFI.
Now that the situation with EasyBCD is better and it supports EFI in v2.2, I would like to return to some of my questions I then.


My Test Setup and assumptions

  1. All the questions below are related to creating bootable USB drives.
  2. I know that UEFI requires FAT32 partition, so I used it on USB drive.
  3. I have a computer that supports both UEFI and Legacy BIOS boot (Dell XPS series)
  4. Since some bootable media (like Windows boot CDs) contain both UEFI and Legacy BIOS boot files, I tested my Dell XPS to ensure that I can force the desired boot mode if my USB drive contains both types of BCDs. Here's how:
    • I manually created a USB drive through DiskPart and copied Windows 7 installation disk to it.
    • Then in order to 100% determine which mode is used, I used EasyBCD to rename boot entries.
      • Windows boot menu entry in \EFI\Microsoft\Boot\BCD was renamed to UEFI and the menu was configured to wait for user selection.
      • Windows boot menu entry in \Boot\BCD was renamed to Legacy BIOS and the menu was configured to wait for user selection.
    • I tested my Windows bootable USB drive on my Dell in both mode and ensured that I can force either UEFI or Legacy BIOS boot loaders through the computer boot menu and that the correct BCD is loaded in each respective mode.


Now that I tested the basics - back to my original task - I want to create a multiboot USB drive that works both in EFI-only and Legacy BIOS-only computers and boots several different Windows-based ISOs through a boot menu.


Challenges


Dual UEFI/BIOS BCD

  1. I determined that BCD Deployment >> Install BCD tool is dependent on the OS from which EasyBCD is run.
    • If I Install BCD from EasyBCD in EFI Windows, I get EFI BCD in \EFI\Microsoft\Boot\BCD on my USB drive
    • If I Install BCD from EasyBCD in Legacy BIOS Windows, I get the legacy BCD in \Boot\BCD on my USB drive
  2. Windows disks come with both BCDs and I successfully tested that dual-BCD boot as described above.
Is it possible to have a better control over EasyBCD's Install BCD tool and force either (or both) EFI or Legacy BIOS BCD regardless of how my current OS is loaded?
For example, some tools ask to Windows installation disk and copy the Boot managers/loaders from that disk. You can use that approach or simply include them as a part of your EasyBCD installation (if licensing permits).


Syncing multiple BCDs
Let's say I manually create the necessary dual-BCD structure on my USB drive. Both BCDs are still separate and I need to modify them in EasyBCD separately.
It would be great to have a feature that syncs multiple BCDs.
For example, if I add a new entry based on ISO to Legacy BIOS BCD, I would like it to also be created in my EFI BCD on the same USB drive.


EFI BCD does not work

  1. I used EasyBCD to Install BCD on my USB drive from UEFI Windows 7 x64.
  2. I got a proper EFI BCD on my USB drive.
  3. I opened that BCD from EasyBCD, removed the default Windows entry, added a single entry for an Windows ISO that supports both Legacy and EFI boot modes, and configured the menu to wait for the user input. Overall a simple task, that I performed many times before in EasyBCD.
  4. When I take this USB drive and boot it on my Dell XPS in Legacy mode, it fails (quite as expected since I only have the EFI BCD).
  5. When I boot this USB drive and boot it on my Dell XPS in UEFI mode, I successfully get the boot menu with my single boot menu record.
  6. However, when I select that boot menu record, I get the following error:
    • File: \NST\AutoNeoGrub0.mbr
    • Status: 0xc0000098
    • Info: The selected entry could not be loaded because the application is missing or corrupt.
Please advise what could be the issue.
 

mqudsi

Mostly Harmless
Staff member
#2
Hello,

We are working on the UEFI issue. Microsoft currently has locked out the ability to boot into non-Windows entries from the UEFI menu. We've been working on a custom UEFI bootloader-based alternative, but it is going to be a ways down the line as we may actually have to supplant the UEFI BOOTMGR entirely and perform all boot-related changes to the actual underlying EFI firmware's bootmenu.
 

Chulup

New Member
#3
Hello,

We are working on the UEFI issue. Microsoft currently has locked out the ability to boot into non-Windows entries from the UEFI menu. We've been working on a custom UEFI bootloader-based alternative, but it is going to be a ways down the line as we may actually have to supplant the UEFI BOOTMGR entirely and perform all boot-related changes to the actual underlying EFI firmware's bootmenu.
Why didn't you write this info somewhere? I had an error 0xc000007b when chose boot entry other than standard Windows 8 (Linux GRUB2, ISO image, anything!). It took me half a day to find this thread!
 

Terry60

Knows where his towel is.
Staff member
#4
We can't control what Microsoft choses to do with its software.
EasyBCD 2.0 pre-dates Windows 8.
This is a volunteer forum supported by a few geographically disparate individuals, without the time or resources to go back through the thousands of historic documents and keep them in sync with the changing whims of MS and a few score Linux development teams.
It's hard enough to keep the software in line with such a variety of moving goalposts.
It's always been the case that the most up to date information is to be found in the contemporary forum posts.
If you find a wiki tutorial dated several years ago, chances are that it will apply to the situation that existed then, unless the change log indicates later updates.
MS changed the booting rules with W8 "for your protection". We can't influence them, but CG is looking at going around them as explained.
You should have seen that you can't do what you were trying in their documentation.
 
#5
Hello,

We are working on the UEFI issue. Microsoft currently has locked out the ability to boot into non-Windows entries from the UEFI menu. We've been working on a custom UEFI bootloader-based alternative, but it is going to be a ways down the line as we may actually have to supplant the UEFI BOOTMGR entirely and perform all boot-related changes to the actual underlying EFI firmware's bootmenu.
Thanks for your response. However you addresses only one of my 3 questions (the last one - about EFI BCD not working with non-Windows entries).
What about the other two questions/suggestions:
- Dual UEFI/BIOS BCD
- Syncing multiple BCDs
Anything like that in the works?
 

mqudsi

Mostly Harmless
Staff member
#6
No, they have never been requested before.
 
#7
Ohps! sorry to jump in to discussion.
Can anyone tell me what Easy-BCD capabilities in UEFI and W8?

My situation: My daughter got a new A55VD on which 750 GB HDD W8 preinstalled.

Our intention is to shrink HDD to max 150 GB, let the remain place for data (NTFS). In addition I buy a 128 GB SSD for Kubuntu installation.

The plan is to exchange the HDD with the SSD but to let the option to start W8 on (later external HDD) through USB-3/SATA3-adaptor.

The question: Can i move the the data of ESP/UEFI-partition (actual on HDD) to the new created 1GB ESP on SSD with Easy-BCD?

@ thread starter. I heard of "rEFInd"-boot-manager but not sure if can handle a mix of UEFI and MBR boot-loaders contemporaneous.

Thanks All of you and best regards
 
Last edited: