[Fix] F8 Legacy Boot does not work

The “bootmenupolicy” setting in the Boot Configuration Database (BCD) defines the type of boot menu (Standard vs. Legacy) the system will use. For Windows 11, 10, Windows 8.1, Windows 8, and Windows RT, the default is Standard. For Windows Server 2012 R2, Windows Server 2012, the default is Legacy. When Legacy is selected, the Advanced options menu (F8) is available.

f8 legacy boot menu

When Standard is selected, the boot menu appears but only under certain conditions: for example, if there is a startup failure, if you are booting up from a repair disk or installation media, if you have configured multiple boot entries, or if you manually configured the computer to use Advanced startup. When Standard is selected, the F8 key is ignored during boot.

If you’ve set “bootmenupolicy” in BCD to “legacy” and also set “advancedoptions” in {globalsettings} to true, the F8 legacy boot menu does not work. Note that the “advancedoptions” entry, if set to “yes”, boots automatically to Advanced Startup settings. And, if you realize this and set “advancedoptions” to “false” (disabled), the F8 legacy boot still fails to work.

You may wonder how to set the advanced options to only load when F8 is pressed.

Resolution

To enable the F8 legacy boot menu, delete the “advancedoptions” value from the Boot Configuration Database. If the value exists in the BCD (whether set to “yes” or “no”), the F8 legacy boot key won’t work at startup.

Open an admin Command Prompt window.

First, backup the BCD database by running the following command:

bcdedit /export C:\bcd.backup

And then, delete the “advancedoptions” entry from the BCD by running the following command:



bcdedit /deletevalue {globalsettings} advancedoptions

And then, enable the F8 legacy mode by running the following:

bcdedit /set {default} bootmenupolicy legacy

You should see the output “The operation completed successfully.” for each command.

That should do the trick!

INFO: Sample BCD

Before running the commands:

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows 10
locale                  en-us
inherit                 {bootloadersettings}
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \windows
resumeobject            {9f4b8cfe-2734-11ee-aac7-1866da06b846}
nx                      OptIn
bootmenupolicy          Standard

Global Settings
---------------
identifier              {globalsettings}
inherit                 {dbgsettings}
                        {emssettings}
                        {badmemory}
advancedoptions         No

After running the commands:

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \windows\system32\winload.exe
description             Windows 10
locale                  en-us
inherit                 {bootloadersettings}
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \windows
resumeobject            {9f4b8cfe-2734-11ee-aac7-1866da06b846}
nx                      OptIn
bootmenupolicy          Legacy

Global Settings
---------------
identifier              {globalsettings}
inherit                 {dbgsettings}
                        {emssettings}
                        {badmemory}

I hope that helps.


One small request: If you liked this post, please share this?

One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:
  • Pin it!
  • Share it to your favorite blog + Facebook, Reddit
  • Tweet it!
So thank you so much for your support. It won't take more than 10 seconds of your time. The share buttons are right below. :)

Ramesh Srinivasan is passionate about Microsoft technologies and he has been a consecutive ten-time recipient of the Microsoft Most Valuable Professional award in the Windows Shell/Desktop Experience category, from 2003 to 2012. He loves to troubleshoot and write about Windows. Ramesh founded Winhelponline.com in 2005.

Leave a Comment