The Windows boot loader architecture includes a firmware-independent boot configuration and storage system called Boot Configuration Data (BCD) and a boot option editing tool, BCDEdit (BCDEdit.exe). During development, you can use BCDEdit to configure boot options for debugging, testing, and troubleshooting your driver on computers running Windows 11, Windows 10, Windows 8, Windows Server 2012, Windows 7, and Windows Server 2008.
Administrative privileges are required to use BCDEdit to modify BCD. Changing some boot entry options using BCDEdit could render your computer inoperable. As an alternative, use the System Configuration utility (MSConfig.exe) to change boot settings. For more information, see How to open MSConfig in Windows 10.
In this configuration, the Windows Boot Manager is generic and unaware of the specific requirements for each operating system while the system-specific boot loaders are optimized for the system that they load.
When a computer with multiple boot entries includes at least one entry for Windows, the Windows Boot Manager, starts the system and interacts with the user. It displays the boot menu, loads the selected system-specific boot loader, and passes the boot parameters to the boot loader.
BCD provides a common, firmware-independent boot option interface. It is more secure than previous boot option storage configurations, and lets Administrators assign rights for managing boot options. BCD is available at run time and during all phases of system setup.
You can manage BCD remotely and manage BCD when the system boots from media other than the media on which the BCD store resides. This feature is can be used for debugging and troubleshooting, especially when a BCD store must be restored while running Startup Repair, from USB-based storage media, or even remotely.
To change boot options programmatically in Windows, use the Windows Management Instrument (WMI) interface to boot options. This BCD WMI interface is the best method to programmatically change the boot options. For information about the BCD WMI interface, see Boot Configuration Data WMI Provider in the Windows SDK documentation.
This section covers editing boot options on a computer and provides a procedure for customizing the basic elements of boot options. It describes a method of using BCDEdit, a tool included with the operating system.
Administrative privileges are required to use BCDEdit to modify BCD. Changing some boot entry options using the BCDEdit /set command could render your computer inoperable. As an alternative, use the System Configuration utility (MSConfig.exe) to change boot settings. For more information, see How to open MSConfig in Windows 10.
Change the boot menu time-out. You can shorten the boot menu time-out so that Windows boots quickly. Or, lengthen the boot menu time-out so that you have ample time to select the preferred boot entry.
Read through the answers here to get an understanding of the process and tools (even though it's technically the opposite of what you're trying): How to use BCDEdit to dual boot Windows installations?. This is not very obvious or well-documented, and it can be very difficult to fix if done incorrectly.
Like Changan mentions, you need a new boot partition on HD2 first. Take a look at the steps and linked answers here, or a walkthrough with pictures here -10/create-uefi-partition-windows-10-0725.html.
So I have been building images for Windows 8 using SCCM. I am noticing that after I image it a few times during testing I am getting multiple Windows Boot manager entries in the "Bios" How do I get rid of these and what is causing so many to be created? Here is a picture of them on a Surface device.
Thanks for the info, now I need to figure out to keep my task sequence from creating a new one each time run it or at least delete it during the task sequence. I am using a usb hub, and a usb network dongle from Lenovo. The usb is a task sequence media disk. Works great. I am using SCCM 2012 w sp1 and mdt integration. Using MDT task sequence.
Hadn't seen that but, it is basically what I am doing however I am not using the raw source media but rather a captured wim. I build my Wim using HyperV machines. And just to clarify I do not see multiple entries unless I reimage the machine multiple times.. I am also using the Create MDT Task Sequence. I will keep digging and let you know if I find anything.
I am having the same issue. Building through MDT as a new computer, the task sequence does the format and partition disk stage but looking at diskpart after building, there are still 4 partitions remaining:
In my case I fixed it by recovering boot sequence (bootrec /FixMBR /FixBoot /RebuildBCD in Command line from Troubleshoot -> Advanced boot options) and then remembering BIOS settings and then resetting them to default, switching needed ones back and then booting from my system drive. This problem was not bcdeedit related at all because it showed only 2 proper records (only bcdedit /enum firmware showed the full list). Sorry for necro-posting, maybe it'll help someone too.
It's not possible to add Grub boot entry in Windows Boot Manager.
But something similar can be achieved using a third party boot manager like Rod Smith's rEFInd. Installation steps are well explained in this gist
But Acer laptops (tested on 3 Acers) apparently forgets boot entries and only windows boot manager loads despite refind/grub is present in ESP.
Acer laptop's UEFI menu has two hidden settings that become available only when you set a password for the UEFI menu. You can then mark any third party boot manager as TRUSTED without signing the boot manager with RSA key (as shown in the gist and many other places). You can disable secure boot too if a password is set. If UEFI is enabled, only TRUSTED boot managers are loaded by UEFI and all others are ignored because of which only windows boots and we incorrectly think UEFI forgets boot entries.
An alternative is to disable UEFI but why lower the security ourselves when there is a solution?
My old laptop used MBR scheme and I was able to install grub on Ubuntu's partition (not on MBR) and then added a boot entry for grub in Windows boot manager.This enabled me to keep windows boot manager as well as grub.
I rebooted into Windows and ran EasyBCD 2.3 (latest) to add a boot entry for grub in windows boot manager.But that option was greyed out. EasyBCD say that because I have secure boot enabled some features are not supported. I can see option for adding a boot entry for another Windows OS but the same options are greyed out for linux OSes.
Update 1: UEFI boot menu (from F12 key) shows only one entry which is for Windows. If grub is present in /boot or /EFI/Ubuntu it should show up in boot menu. I have tried reinstalling without a /boot partition but still no luck.
Update 2: I followed @RodSmith 's blog and fixed grub not being shown in UEFI boot menu using efibootmgr. I am now using GRUB (via shim with SecureBoot Enabled) as the default bootloader. But my question is still unanswered. How do I add Grub/Ubuntu bootloader entry to Windows Boot Manager? Does Windows Boot Manager support such configuration? I am in doubt now because when Windows Boot Manager was default, it deleted GRUB boot entry in EFI at every boot.
Another thing worth noting, I did not disable fast startup in Windows probably because of it Ubuntu installer could not install GRUB (or it installed grub but Windows Boot Manager that loaded first because of fast startup, removed it at boot)
Update 4: I configured boot order from Windows bcdedit and now the boot order persists across boots. I had to disable secure boot. Secure Boot toggle is ungreyed after setting Supervisor password in UEFI. I have to enter that password everytime I goto UEFI menu. This probably implies it would be impossible for any app to modify UEFI settings when Secure Boot is disabled. I don't think my UEFI is buggy, it's quite advanced and more secure than other vendors
You should first be aware that modern EFI-based computers boot in entirely different ways from older BIOS-based computers. I suspect you're laboring under incorrect BIOS-mode mental models, which is leading you astray. I recommend reading:
That's admittedly a long reading list. If you have time for just one, I'd go with the first, or possibly the second. The third and fourth are more practical tutorial on installation, but you've already got a working system, albeit one that's not working in quite the way you want.
Of particular importance for this discussion, under EFI, boot loaders are stored as ordinary files in the EFI System Partition (ESP). The boot loader to be launched by default is stored in NVRAM, which can be displayed by sudo efibootmgr -v in Ubuntu, and modified with other options to efibootmgr. (Type man efibootmgr for details, in the usual terse manpage style.) Your /boot partition holds Linux kernels, GRUB configuration and support files, and a few other boot-related tools; but the main GRUB binary, grubx64.efi, is stored on the ESP, which is mounted at /boot/efi in Ubuntu.
That out of the way, Windows requires the Windows boot loader, and Ubuntu requires a Linux boot loader. The latter is GRUB 2 by default, but can be any of several other EFI boot loaders for Linux. The task of a boot loader is to load an OS kernel into memory and start it running.
A boot manager, OTOH, displays a menu or otherwise provides a way for a user to select what OS to launch. GRUB and the Windows boot loader both provide boot manager functions as well as boot loader functions; but there are programs that provide boot loader functions only or boot manager functions only. In fact, all EFIs provide some sort of boot manager, although in some cases it's so primitive that it's useless.
d3342ee215