1

I am tasked with upgrading a number of machines to Windows 11. However, some accounting software refuses to work on Windows 11. This is why I need to offer a Windows 10 installation as well. When doing remote administration, I can wake up the system and it will perform a PXE boot (giving me the option to boot into any system remotely). I can chainload bootmgfw.efi which will then continue into one of the Windows installations. It would be very helpful if I had control over which Windows installation is being booted. This article gives a nice overview of the Windows boot procedure in UEFI (via this question).

When examining the efivars, I noticed that bootmgr seems to accept a parameter named BCDOBJECT. It looks like one can specifiy the UUID of the BCD entry bootmgr is to boot. This mechanism apparently is used to start Windows Recovery. However, I found no clear source of documentation regarding this feature, not even in this detailed post. Is there any option to tell bootmgfw.efi which BCDOBJECT to use via UEFI?

Related questions on askubuntu: https://askubuntu.com/questions/1192128/booting-multiple-copies-of-windows-via-grub and https://askubuntu.com/questions/1328223/getting-rid-of-the-windows-boot-manager-when-dual-booting/1328229
A similar question: Make Linux GRUB run directly multiple Windows systems

Hermann
  • 223
  • 2
  • 8
  • Does the software not work in Compatibility Mode? While I can't answer your question, if you add both to the BCD Store, the Windows bootloader will give a 30s boot selection menu when the Windows bootloader loads. I've never tried PXE boot, so the following may not be helpful: [BCDOBJECT](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/bcd/bcdobject) and [`BcdEdit /Set`](https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/bcdedit--set) – JW0914 Apr 26 '22 at 12:38
  • I have had no success with compatibility mode. The Software obtains it license from a USB dongle. It seems that it won't work with Windows 11 and also not with VMs. The boot selection menu is very handy for selecting the system – but it requires local user interaction. However, quite often I am not even in the same city when doing administrative tasks remotely. Of course, I can boot a random system and if it is the wrong one, change the default, then reboot. Though that is rather cumbersome. – Hermann Apr 26 '22 at 18:10
  • This may be a remedial question - does booting WinPE via PXE boot not allow using `BcdEdit /Set` to boot to the OS version installed? This may be more convoluted, but if not, can be automated by editing WinPE's [`Windows\System32\StartNet.cmd`](https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/wpeinit-and-startnetcmd-using-winpe-startup-scripts) to run a script stored within WinPE's `boot.wim` to set the OS version to boot to via `BcdEdit /Set`, then reboots via `wpeinit reboot` _(modify `StartNet.cmd` and add script by mounting WinPE `boot.wim` via `Dism /Mount-Image`)_ – JW0914 Apr 27 '22 at 12:08
  • @JW0914 Convoluted indeed – but automatable. I would take that as an okay-ish answer. :) – Hermann Apr 27 '22 at 17:42

0 Answers0