- Overview of Boot Options in Windows
- Boot Loading Architecture
- Boot Configuration Data
- Editing Boot Options
- Adding Boot Entries
- Adding a new boot entry
- Editing the boot menu
- Removing and deleting a boot entry
- Boot Options Identifiers
- Boot Option Inheritance
- GUIDs and Identifiers
- Arch Linux
- #1 2016-06-27 18:35:29
- Installed systemd-boot. Arch works but no Windows entry.
- #2 2016-06-27 18:41:09
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #3 2016-06-27 19:09:57
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #4 2016-06-27 20:03:39
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #5 2016-06-27 20:30:37
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #6 2016-06-27 20:46:33
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #7 2016-06-27 21:03:42
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #8 2016-06-27 21:25:24
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #9 2016-06-30 06:56:20
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #10 2016-07-02 00:18:49
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #11 2016-07-04 11:04:07
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #12 2016-07-04 21:48:46
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #13 2016-07-05 22:27:09
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #14 2016-12-21 21:27:52
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #15 2016-12-24 21:01:26
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #16 2017-09-14 18:54:22
- Re: Installed systemd-boot. Arch works but no Windows entry.
- #17 2017-09-14 19:06:28
- Re: Installed systemd-boot. Arch works but no Windows entry.
Overview of Boot Options in Windows
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 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.
Boot Loading Architecture
Windows includes boot loader components that are designed to load Windows quickly and securely. The previous Windows NT boot loader, ntldr, is replaced by three components:
Windows Boot Manager (Bootmgr.exe)
Windows operating system loader (Winload.exe)
Windows resume loader (Winresume.exe)
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, which resides in the root directory, 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.
The boot loaders reside in the root directory of each Windows partition. Once selected, the boot loaders take over the boot process and load the operating system in accordance with the selected boot parameters.
Boot Configuration Data
Windows boot options are stored in the Boot Configuration Data (BCD) store on BIOS-based and EFI-based computers.
BCD provides a common, firmware-independent boot option interface for all computers running Windows 10, Windows 8, Windows Server 2012, Windows 7, and Windows Server 2008. It is more secure than previous boot option storage configurations, because it permits secure lockdown of the BCD store and lets Administrators assign rights for managing boot options. BCD is available at run time and during all phases of setup. You can even call BCD during power state transitions and use it to define the boot process for resuming after hibernation.
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 extremely important for debugging and troubleshooting, especially when a BCD store must be restored while running Startup Repair from a DVD, from USB-based storage media, or even remotely.
The BCD store, with its familiar object-and-element architecture, uses GUIDs and names such as «Default» to precisely identify boot-related applications.
BCD includes its own set of boot options. For more information about these boot options, see BCD Boot Options Reference.
Editing Boot Options
To edit boot options in Windows, use BCDEdit (BCDEdit.exe), a tool included in Windows.
To use BCDEdit, you must be a member of the Administrators group on the computer.
You can also use the System Configuration utility (MSConfig.exe) to change boot settings.
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.
Adding Boot Entries
The first step in customizing boot options in operating systems is to add a new boot entry for an operating system. A boot entry is a set of options that define a load configuration for an operating system or bootable program.
You can have multiple boot entries for an operating system, each with a different set of boot parameters. Windows Installer creates a standard boot entry when you install an operating system, and you can create additional, customized boot entries for an operating system by editing the boot options.
You can add, delete, and change the options in the boot entry that Windows Installer created. However, it is prudent to keep the standard entry and, instead, add a separate entry that you customize.
To add a boot entry, copy an existing boot entry, and then modify the copy.
This topic applies to Windows Vista and later, Windows Server 2008 and later, and Windows Recovery Environment.
Adding a new boot entry
In Windows, you use BCDEdit to modify your boot options. To add a new boot entry, open a Command Prompt window with elevated privileges (select and hold (or right-click) Command Prompt and select Run as administrator from the shortcut menu).
NoteВ В Before setting BCDEdit options you might need to disable or suspend BitLocker and Secure Boot on the computer.
The easiest way to create a new boot entry is to copy an existing entry and then modify it as you need. To do this, use BCDEdit with the /copy option. For example, in the following command, BCDEdit copies the Microsoft Windows boot entry that was last used to boot Windows, identified as , and creates a new boot entry. The /d description option specifies DebugEntry as the name of the new boot entry.
If the command succeeds, BCDEdit displays a message similar to the following:
When you copy a boot loader entry that appears on the boot menu, the copy is automatically added as the last item on the boot menu.
The GUID in the preceding message (which appears between braces (<>)) is the identifier of the new boot entry. The /copy option creates a new GUID for the boot entry. You use the identifier to represent the entry in all subsequent BCDEdit commands.
If the command fails, be sure that you are running in a Command Prompt window with administrator privileges and that all of the command parameters are spelled correctly, including the braces around .
You can also add a boot entry using the /create option. This method is more difficult because you need to provide additional information about the boot entry type. You also need to specify the /application, /inherit, or /device options. For example, the following creates a new operating system boot entry called «My Windows Vista»:
When you use the /create option, the new boot loader entries are not added to the boot menu automatically. The /create option creates a new GUID for the boot entry. You must add the new boot entry to the boot menu by using the /displayorder option. You can place the boot loader entries in any order.
For information about the /create command parameters, type bcdedit /? /create in a Command Prompt window.
Editing the boot menu
In Windows, new boot loader entries are not added to the boot menu automatically. You can place the boot loader entries in any order.
You can use the /displayorder option to set the order in which the boot manager displays the boot entries on a multi-boot menu. The command has the following syntax:
The ID is the GUID of the boot entry or a reserved identifier, such as ). Separate each identifier with a space. Be sure to include the braces (<>).
For example, to add the DebugEntry boot entry to the boot menu after the entry, use the following command (remember to use ‘
You can also use the options /addlast, /addfirst, and /remove to order and remove items from the menu. For example, the following command adds the DebugEntry boot entry as the last item on the menu:
Removing and deleting a boot entry
The following command removes the <49916baf-0e08-11db-9af4-000bdbd316a0>boot entry item from the boot menu.
When you remove the specified boot entry using the /displayorder and /remove options, the boot entry is removed from the boot menu, but it is still in the BCD store. To completely remove a boot loader entry from the boot menu and from the store, use the /delete option.
To verify that the display order is correct, use the following command:
When you type bcdedit without additional parameters, BCDEdit displays the boot manager entry and the boot loader entries in the order that they will appear in the menu.
The Windows Boot Manager entry also includes the boot menu display order, as the following example shows.
Boot Options Identifiers
Many of the bcdedit commands require identifiers. An identifier uniquely identifies entries contained in the boot setting store.
Use bcdedit /enum to display the identifers.
Several entries can be identified by well-known identifiers. If an entry has a well-known identifier, bcdedit displays it in output unless the /v command-line switch is used. For more information, run «bcdedit /? /v».
The common well-known identifiers are often used:
Identifier | Description |
---|---|
Specifies a virtual identifier that corresponds to the boot manager default application entry. | |
Specifies a virtual identifier that corresponds to the operating system boot application entry for the operating system that is currently running. | |
Specifies the Windows boot manager application entry. |
These common well-known identifiers can be inherited by any boot application entry:
Identifier | Description |
---|---|
Contains the collection of global settings that should be inherited by all boot application entries. | |
Contains the collection of global settings that should be inherited by all boot loader application entries. |
These well-known identifiers are also available for use:
Identifier | Description |
---|---|
Contains the global debugger settings that can be inherited by any boot application entry. | |
Contains the hypervisor settings that can be inherited by any OS loader entry. | |
Contains the global Emergency Management Services settings that can be inherited by any boot application entry. | |
Contains the collection of global settings that should be inherited by all Windows resume from hibernation application entries. | |
Contains the global RAM defect list that can be inherited by any boot application entry. | |
Specifies the memory diagnostic application entry. | |
Contains the additional options required by the boot manager for RAM disk devices. |
These well-known identifiers are used with earlier versions of Windows:
Identifier | Description |
---|---|
Specifies a OS loader (Ntldr) that can be used to start operating systems earlier than Windows Vista. | |
Specifies the firmware boot manager entry, specifically on systems that implement the Extensible Firmware Interface (EFI) specification. |
Boot Option Inheritance
Some boot settings can be inherited. This allows for groups of settings to be used in different boot scenarios, for example when resuming from hibernation.
Use the bcdedit command /enum option to display information about any identifier.
In the example below, displaying information on the
Use the bcdedit /enum command to see which settings are inherited.
In the example below,
Use the inherit option with bcdedit /enum to display information about inheritance.
Use the bcdedit /enum all command to see all of the settings.
GUIDs and Identifiers
An identifier uses a globally unique identifier, or GUID. A GUID has the following format, where each «x» represents a hexadecimal digit. Because working with GUIDs is error prone, it is recommended to use the english identifier name, such as
The position of the dashes (-) and the braces at the beginning and end of the GUID are required.
Use bcdedit /enum /v to display GUIDs associated with identifiers.
Arch Linux
You are not logged in.
#1 2016-06-27 18:35:29
Installed systemd-boot. Arch works but no Windows entry.
I have a installed Windows 10 x64-bit with UEFI. I want to keep it beside so I tried to install Arch Linux (2016.06.01) with UEFI aswell. I followed the Beginners’ guide and actually it worked well. But i was not able to get the Dualboot to work right. When I start my computer you can see the BIOS/ UEFI Text like ‘Press key A to enter setup’. After this my screen stays with background lighting for a few secons black and then Arch Linux boots without any errors. Instead of this I want a menu where I can choose whether to boot WIndows or Arch Linux.
Because I use an Intel CPU i installed the package ‘intel-ucode’ like the guide recommended. After that I used #bootctl install to install systemd-boot. Next I edited ‘/boot/loader/loader.conf’
/boot/loader/entries/arch.conf was the next.
I tried to enable microcode updates like the link in the guide said. I’m not sure if I did it right, thats why I commented some code.
Okay now I wanted to create a entry for Windows. I created a win.conf in the same folder as arch.conf
I guess here are more information needed, but I have no template. What have I done wrong? What did I missed? Secure-Boot is off.
Have a great day!
#2 2016-06-27 18:41:09
Re: Installed systemd-boot. Arch works but no Windows entry.
As a sanity check, tell us which boot loader you are using.
The ucode update is important; Once you are booted, does the journal indicate that the ucode updates are installed and working? I ask because it will help confirm that the arch.conf file you provided is actually controlling the start up.
Nothing is too wonderful to be true, if it be consistent with the laws of nature — Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. — Alan Turing
—
How to Ask Questions the Smart Way
#3 2016-06-27 19:09:57
Re: Installed systemd-boot. Arch works but no Windows entry.
I’m sorry if I get this totally wrong: I thought systemd-boot IS the boot loader provided by systemd. I didn’t install any other loader.
Hopefully this is the information you asked for:
#4 2016-06-27 20:03:39
Re: Installed systemd-boot. Arch works but no Windows entry.
No problem. I don’t use a boot loader at all. Others prefer Grub, others prefer rEFInd. Some people install more than one and become hopelessly confused; that is why I did a sanity check
Are you saying then that bootctl did not generate the Windows information? I’m working from memory, but it should be automatic
Do you get a menu at all at start up? Any chance you used a tool like efibootmgr to configure it so Linux boots directly?
Any chance you nuked Windows when you did the install?
Nothing is too wonderful to be true, if it be consistent with the laws of nature — Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. — Alan Turing
—
How to Ask Questions the Smart Way
#5 2016-06-27 20:30:37
Re: Installed systemd-boot. Arch works but no Windows entry.
If I rerun bootctl install I get this:
Does this mean the Windows Bootloader is found but not installed? Yes I thought it should be found automatically if esp is located at /boot.
I get no menu at the startup. Only the text where ist says stuff like ‘press key F11 for entering BIOS setup. etc.’ I dindn’t use any tool, just edited the files mentioned in the guide and I posted here.
Well, I cant prove my windows isn’t damaged but I feel quite save installing arch with the guide so I would say no.
#6 2016-06-27 20:46:33
Re: Installed systemd-boot. Arch works but no Windows entry.
Try getting the pre-boot menu for your system (often erroneously called the BIOS menu). See if there is a Windows entry. You should have that, and the Linux loader (systemd-boot) , and perhaps a USB, DVD or PXE option.
If there is a Window entry, see if it works.
Nothing is too wonderful to be true, if it be consistent with the laws of nature — Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. — Alan Turing
—
How to Ask Questions the Smart Way
#7 2016-06-27 21:03:42
Re: Installed systemd-boot. Arch works but no Windows entry.
Ok, that was a GREAT idea!
You were totally right. The menu has an entry for Windows and Linux. I can boot both systems without any problems. Now I can at least use Windows too, if I’m fast at startup
Anyway, Windows seems to be not broken.
#8 2016-06-27 21:25:24
Re: Installed systemd-boot. Arch works but no Windows entry.
Great! I am going to stand down as I am not a systemd-boot expert and this seems to be nontrivial. I am sure someone who is knowledgeable will step up.
Nothing is too wonderful to be true, if it be consistent with the laws of nature — Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. — Alan Turing
—
How to Ask Questions the Smart Way
#9 2016-06-30 06:56:20
Re: Installed systemd-boot. Arch works but no Windows entry.
Uncomment the line «timeout 5» in /boot/loader/loader.conf
And optionally change the timeout value if you want ofc
EDIT:
Oh and you don’t need to create a conf file for windows so remove /boot/loader/entries/win.conf
Last edited by Omar007 (2016-06-30 06:58:29)
#10 2016-07-02 00:18:49
Re: Installed systemd-boot. Arch works but no Windows entry.
Hello, and thanks for your answer.
I edited loader.conf and set the timeout value to X. Beside this I removed win.conf, like you told me. Unfortunately it had no effects except that my screen will stay black for X seconds before the linux boot begins.
#11 2016-07-04 11:04:07
Re: Installed systemd-boot. Arch works but no Windows entry.
Ok it is odd that you’re still not seeing anything but at least we do have it waiting for a selection now. (no timeout defined == instantly boot default unless ‘space’ is held during boot).
Also, fyi: even if for some reason the ‘Windows Boot Manager’ entry would be missing, you’d normally still see the menu (assuming you’ve set a timeout) with 2 options; ‘Arch Linux’ and ‘EFI Default Loader’.
You could try pressing the down arrow once and then press enter to see if it boots windows (if everything is ok I believe the order for you should be 1) Arch Linux, 2) Windows Boot Manager, 3) EFI Default Loader, with 1) Arch Linux being the default selection).
If that works I wonder if it’s rendering off-screen for some weird reason (do you have any other monitors attached?).
Last edited by Omar007 (2016-07-04 11:05:40)
#12 2016-07-04 21:48:46
Re: Installed systemd-boot. Arch works but no Windows entry.
no timeout defined == instantly boot default unless ‘space’ is held during boot
@OP: Try holding down the space bar during bootup, this should show the systemd-boot menu.
The Windows bootmanager appears to be present on your ESP (/boot/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI) and so a menu entry should be generated automatically.
A manual entry would look like this:
But it shouldn’t be needed.
#13 2016-07-05 22:27:09
Re: Installed systemd-boot. Arch works but no Windows entry.
So you had some good advices which generate more questions for me:
When I start my pc I told you that my screen will stay black after the first picture where it says the stuff like ‘press key for bios setup, etc.’ Well, its seems that during this few seconds which seem to be the time defined in ‘/boot/loader/loader.conf’ the systemd-boot menu IS present but it isn’t shown. I tried to select blind my Windows entry by using the Down-Arrow-Key and voila Windows boots. Also if I hit the Enter-key Linux will start instantly. You two were right. The entries seem to be there and I can select them but I cant see them. That is at least a relief. I’m not able to say why the menu isn’t shown. I have no second monitor attached and it is directly connected to the nvidia card via HDMI. In case the entries are only shown if more than one entry is in /boot/loader/entries/ defined I added again a win.conf but nothing changed. I also plugged the HDMI cable in the port on the mainboard but that didn’t help neither. If i press and hold the spacebar the black screen will stay forever.
Thanks do far. At least I have a hidden secret Windows entry
#14 2016-12-21 21:27:52
Re: Installed systemd-boot. Arch works but no Windows entry.
Hello, I’m experiencing this exact issue. daynite, did you figure it out?
I’m new to Arch (been a Linux user for many years though). When I first loaded the arch packages and the bootloader to my SSD, I didn’t create the entry for «Arch» so it ONLY had a Windows option and the Preboot Firmware Setup option (or whatever it calls it).
As soon as I added the Arch entry from /usr/share/systemd/boot/arch I was able to boot into Arch, however my boot screen is just blank. Well, it actually just still shows the HP logo from the PC startup part, but I can tell that’s no longer there. It’s just a lingering frame on the buffer or something, because the «PRESS ESCAPE TO ENTER SETUP» disappears. It waits for about 3 seconds, which is what systemd-boot is configured to do. Just no menu. I haven’t actually tried hitting the arrow keys like you’ve described, but I would be willing to bet that they would work fine.
Again, the menu DID work when it was ONLY Windows being shown. Very weird!
#15 2016-12-24 21:01:26
Re: Installed systemd-boot. Arch works but no Windows entry.
Just to provide a further update: the arrow keys do NOT seem to work in my case (as it was suggested above that perhaps the menu is there, but just not visible). I do get the blank screen (with the HP logo) for the 3 seconds it’s configured for but I don’t see the actual menu. However, if I enter the HP setup and then immediately exit out, I do see the menu (where I can use the arrow keys to select Windows or Arch). Very bizarre
#16 2017-09-14 18:54:22
Re: Installed systemd-boot. Arch works but no Windows entry.
This seems to be an old thread, yet it put me on the right track to solve the ‘invisible but there’ systemd-boot screen.
For me this issue was solved by disabling the graphical splashscreen in bios.
(For my asus vivobook I had to disable ‘fast boot’ in bios to see the systemd-boot screen.)
#17 2017-09-14 19:06:28
Re: Installed systemd-boot. Arch works but no Windows entry.
Thanks for sharing. I am going to go ahead and close this old thread now.
Sakura:-
Mobo: MSI X299 TOMAHAWK ARCTIC // Processor: Intel Core i7-7820X 3.6GHz // GFX: AMD Radeon RX 5700 XT // RAM: 32GB (4x 8GB) Corsair DDR4 (@ 3000MHz) // Storage: 1x 3TB HDD, 6x 1TB SSD, 2x 120GB SSD, 1x 275GB M2 SSD