2016-07-03

‎Menu does not appear after Windows upgrade: moved to UEFI article since it's not specific to systemd-boot

← Older revision

Revision as of 16:36, 3 July 2016

Line 216:

Line 216:

=== Menu does not appear after Windows upgrade ===

=== Menu does not appear after Windows upgrade ===



For example, if you upgraded from Windows 8 to Windows 8.1, and you no longer see a boot menu after the upgrade (i.e., Windows boots immediately):

+

See
[[
UEFI
#Windows
changes
boot order]].



+



* Make sure
[[
Dual boot with Windows
#
Fast_Start-Up|Fast Startup]] (
Windows
power option setting) is disabled

+



* Make sure [[Secure Boot]] is disabled (if you are not using a signed boot loader)

+



* Make sure your UEFI
boot order
puts systemd-boot over Windows Boot Manager (UEFI/BIOS setting).

+



+



Some people have problems with Windows 8+ (including Windows 10) resetting their boot order. It has been claimed that Windows put itself as the default after each reboot. This is dubious and does not appear with every motherboard (it might be the case for a major upgrade like Windows 8 -> Windows 10). There are different motherboards and some motherboards might do it. The first thing to try if you are affected is to see the UEFI (often called Bios by the manufacturer) configuration page and ensure than Windows is not the default. Some motherboards do not truly respect the settings done via efibootmgr and have a special entry for Windows that they put first by default, not respecting the standard; that might nevertheless be changed in the UEFI settings (this is confirmed on a Packard Bell laptop). Another problem to take into consideration is that the default boot file ''esp''/efi/boot/bootx64.efi is normally handled by Windows (and kept identical to ''esp''/EFI/Microsoft/Boot/bootmgfw.efi) and bootctl overrides it with systemd-boot. Windows updates this file very frequently and this can cause a conflict. You can try to restore it by copying ''esp''/EFI/Microsoft/Boot/bootmgfw.efi and ensure that your motherboard boots ''esp''/EFI/systemd/systemd-bootx64.efi by default and not ''esp''/efi/boot/bootx64.efi. Remove any entry referring to systemd-boot (efibootmgr -b XXXX -B where XXXX are the four digit number of the corresponding boot entry) and re-add it manually: [[systemd-boot#Manual entry using efibootmgr
]].

+



+



As a last resort, if your motherboard only boots from ''esp''/efi/boot/bootx64.efi or if you do not succeed to make it boot something other than Windows by default, you can, as a last resort, try the following work-around from Windows.

+



+



Enter a Windows group policy and have it execute a batch (''.bat'') file on startup. In Windows:

+



+



# Open a command prompt with admin privlages. Type in {{ic|bcdedit /enum firmware}}

+



# Find the Firmware Application that has "Linux" in the description, e.g. "Linux Boot Manager"

+



# Copy the Identifier, including the brackets, e.g. {{ic|<nowiki>{31d0d5f4-22ad-11e5-b30b-806e6f6e6963}</nowiki>}}

+



# Create a batch file (e.g. {{ic|bootorder.bat}}) somewhere on your system with the following contents: {{ic|bcdedit /set {fwbootmgr} DEFAULT {''identifier_copied_in_step_3''<nowiki>}</nowiki>}} (e.g. {{ic|<nowiki>bcdedit /set {fwbootmgr} DEFAULT {31d0d5f4-22ad-11e5-b30b-806e6f6e6963}</nowiki>}}).

+



# Open ''gpedit'' and under ''Local Computer Policy > Computer Configuration > Windows Settings > Scripts(Startup/Shutdown)'', choose ''Startup''. That should open a window named ''Startup Properties''.

+



# Under the ''Scripts'' tab, choose the ''Add'' button

+



# Click ''Browse'' and select the batch file you created in step 4.

+



+



Alternatively, you can make the default Windows boot loader load ''systemd-boot'' instead. In an administrator command prompt in Windows, one can change this entry as follows:

+



+



# bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi

+

== See also ==

== See also ==

* http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/

* http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/

Show less