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.
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!