1

The question appeared after asking this one. It seems that the Win8.1 UEFI x64 Boot Manager is unable to boot anything other than the windows itself (winload.efi). Trying to launch any other UEFI image (.efi) from it gives the error code 0xC000007B and I'm pretty sure that this isn't because of a missing file but instead because the file is 'invalid' as when I rename that file the error changes to 0xC000000F. I have disabled the secure boot but without any luck.

At the moment I'm trying to integrate the rEFInd bootloader. I can say that it's UEFI image is working as it is able to boot from a USB flash drive using the firmware. Using the Windows Boot Manager however give the same results explained above (error code 0xC000007B). At the moment my BCD configuration is (picture):

Command line screenshot http://imageshack.com/a/img811/7857/kbth.png

As F:\rEfit\refind is the directory where refind is stored and "refind_x64.efi" is the program image.

NOTE: I'm also wondering are only UEFI images (.efi files) allowed to boot in an UEFI Windows and also what is the format of the non-UEFI one's (like ntldr, bootmgr)?

EDIT: Moving rEFInd to a standard directory ("EFI") didn't solved the problem.

2
  • I have embedded your image inline, but copy-pasting it could improve readability. You can copy text from cmd window by right-clicking, then selecting Mark, dragging the text block you want to copy and pressing Enter. Then you can paste it into the SU editor and apply formatting (preformatted block will work great).
    – gronostaj
    Dec 21, 2013 at 23:35
  • Possibly related: Windows 8.1 upgrade blew out other OSes on GPT disks?
    – jww
    Jan 2, 2015 at 22:10

3 Answers 3

3

After 1 year I came across the same problem again. Luckily this time I found a solution. In order to add an OsLoader in windows Boot-Manager which loads non-Windows UEFI images you need to manually edit BCD registry. In RegEdit there is a key named "HKEY_LOCAL_MACHINE\BCD00000000" - which is loaded from Windows EFI System-Partition and editing it's subkeys directly edit the BSD file. There is a key named "Description" under it but we'll focus on the other one named "Objects". Under it you need to a new object (or modify existing). Then under the target-object-GUID-name you need to edit the "Description" Type value to "0x10100003" (which means firmware application osloader - credits for this find go to this page). That's it - then the 'path' and 'device' elements of this object specify an UEFI file which will be loaded when the OS-Loader is selected.

BIG WARNING:

Don't do the above just to test it - loading an Uefi this way burns it down into the Uefi Boot configuration and after loading - you may wouldn't be able booting to Windows again (unless the app you loaded doesn't reset the Uefi Boot Cfg) - so use this only if you're sure about it.

I did so and then I should manually fix my Windows boot-up using Uefi Boot Cfg. Which is prefered to use.

EDIT: I forgot to add that you first need to own permission for editing "HKEY_LOCAL_MACHINE\BCD00000000", which is easy - just click Properties on it and change permissions ;).

EDIT: This discovery shows that the most powerful (and easy - at least for me) way of editing Windows BSD is using the registry. The behavior I accomplished by doing so - isn't possible to be done using BCDedit, neither the BCD WMI.

2
  • Setting 0x10100003 seems to have BCD update the UEFI firmware as well to add a new entry to the boot menu (which works with my specifications). But, I continue to get 0xC000000D errors though. I can boot from the UEFI Firmware options. But, Windows doesn't like the Fat32 partition with the gummibootx64.efi file. I MUST use Windows 8.1's Boot Manager because of touch on my tablet - no virtual keyboard at power on! Apr 29, 2015 at 17:00
  • This code 0x10100003 which represents neither a real osloader (0x10200003) nor a real EFI object like a boot manager (0x10100002) seems more like a bug than anything else to me. That is, it might appear in the menu just because of a bug in current BootMgFw.EFI. Also, it does not seems that BootMgFw.efi has the code to chain-load other EFI applications: despite the extension, winload.efior memdiag.efi are not EFI applications, then are "boot applications"; also they need to be specifically signed by Microsoft, even when test-signing.
    – AntoineL
    Sep 12, 2015 at 20:36
1

EFI is a pre-boot environment. As such, EFI itself is not a Windows tool, a Linux tool, or any other OS-level tool. I want to make this clear because some of your phrases make it sound as if you think EFI is a part of Windows. It isn't.

The path rEfit\refind is an unusual one for an EFI boot program. Such programs normally reside in subdirectories of the EFI directory on the ESP, as in EFI\refind or EFI\Microsoft. Although such a non-standard location is unlikely to be the source of your problem, I can't rule out that possibility. Thus, using a more normal location is my first suggestion.

I'm not very familiar with the output of the Windows bcdedit command that you've shown, so I can't comment on it; however, I can suggest that you review the rEFInd installation instructions for installing from Windows. It's entirely possible that you erred in typing in one of the commands.

If that doesn't help, then try installing rEFInd from another OS. Presumably you've installed rEFInd to boot something else along with Windows. For most people that's Linux, and if the Windows tools aren't working, you should be able to install rEFInd from Linux.

5
  • Yes - moving it to "EFI" folder didn't solved my problem. But I don't want to use the rEFInd as a primary boot manager - instead I want to boot Windows XP from it and to link it with the Windows 8 Boot Menu.
    – Nemo759
    Dec 22, 2013 at 18:00
  • Any other suggestions?
    – Nemo759
    Dec 23, 2013 at 11:35
  • Nobody???? Why - I mean this is crazy - haven't you tried using an UEFI Windows with other OS?
    – Nemo759
    Dec 23, 2013 at 23:54
  • Although the EFI-mode Windows boot manager is theoretically capable of chainloading other EFI boot loaders, I have yet to see a clear explanation of how to set this up. Thus, my only suggestion is to use rEFInd as the primary boot manager. It is highly configurable, so if there's something you don't like about it, you may be able to change it. Please skim the configuration file options described in Table 1 in the rEFInd configuration file documentation.
    – Rod Smith
    Dec 24, 2013 at 17:54
  • For the record, the ESP partition (where the EFI binary/bootstrappers are stored) should be FAT32 to be "sharable" across Linux and Windows. They are also usually hidden from Windows normally (you can see it in Disk Management). The original question has the author trying to boot an additional EFI firmware located in his ESP partition - as EFI allows for multiple boot strappers in a single partition. Just pick what you want. I, like the author, MUST use the Windows Boot Manager in 8.1. My reason is for the Touchscreen it supports on my tablet with no Keyboard!!! Apr 29, 2015 at 17:11
0

All the efi boot managers/loaders need to be on the ESP partition; you cannot have refind on your F: drive, which is probably formatted as an NTFS drive. EFI systems look in a specific partition partition which is labelled as the "ESP" and formatted as fat32. EFI systems do not have drivers for other filesystems.

refind includes drivers for ext2/4 reiserfs btrfs and iso9660, but as you see your windows EFI loader is located at \EFI\Microsoft\Boot\bootmgfw.efi. This partition is not viewable from windows as it is hidden, but if you boot with a linux live (with gparted for instance), then you will be able to see it. Then you need to put refind in \EFI\refind so the rEFInd loader is at \EFI\refind\bootx64.efi

Then you can attempt getting it to chainload from the windows loader but it would be far better to point your system at refind's .efi file as the default loader as this will scan your system and give you icons representing the efi/legacy boot options available to you. I use refind and when i switch on my laptop i have a windows 7 icon, a windows 8 icon, an ubuntu icon, a fedora icon and an ubuntustudio icon to choose from. If I have bootable usbs or dvds inserted an icon will also appear for them.

It works great with the default settings but is also easily customizable. You won't be able to load an efi bootloader from any partition other than the fat32 ESP partition, although once refind has been loaded from the ESP partition it can access loaders efi and legacy loaders on other partitions.

1
  • 1
    You may want to edit to include some line breaks and proof read this. Right now it is unreadable.
    – YLearn
    Dec 25, 2013 at 4:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.