Thursday, 20 September 2012

Windows 8 Boot Manager – Goodbye

I’ve split my hard disk into a couple of partitions and am dual booting Windows 7 and Windows 8. Consequently I have the Windows boot manager pop up to give me a choice of OS to boot into for 30 seconds, before the default OS (Windows 8) is launched. One rather annoying thing I’ve discovered about Windows 8 is its new boot manager and the amount of time it takes to show up on power up or system restart.

Windows 8 boot manager

To be fair, the new boot manager looks much more appealing to the eye than the last one, which was old school text mode. It’s had quite some work done to it to ensure that it will be usable and appealing even on a keyboard-less Windows RT ARM device. You can read about the boot manager’s evolution on the Windows Team‘s blog post.

Windows 7 boot manager

The new one supports touch and sports the modern "Windows Store app" appearance(y'know, the "Metro" style...). It does certainly look pretty swish and makes the previous version look rather archaic. Additionally, when you choose Windows 8 from the boot menu, Windows 8 appears very quickly afterwards.

All good points for the Windows 8 boot manager, right? Right.

However, the boot manager itself takes a really long time to wind itself up and display the options. That's because it requires a good chunk of Windows 8 to be loaded up in order to do so, which of course then explains why Windows 8 can start so quickly after being chosen from its boot manager.

If I want to boot to Windows 7 then I have to wait for a good chunk of Windows 8 to load in order to be presented with the option of booting to Windows 7, which then results in the machine restarting, and popping out of the BIOS screen into the Windows 7 startup sequence.

So the question is: can I get my old, simple, text mode boot manager back?
The answer is: yes.

There's two approaches to sorting this. One is simply switching which the default boot OS is. When Windows 8 is the default OS to boot to you get the Windows 8 boot manager, when Windows 7 is the default OS to boot to you get the old Windows 7 boot manager. The other is to tell Windows 8 to use the 'legacy' boot manager instead of the 'standard' one, which then means the text mode boot manager appears regardless of which OS has been set to be the default.

Let's take a look at these two options.

Setting Windows 7 to be the default boot OS

 

From Windows 7 GUI

Advanced System Properties

You need to bring up System properties, perhaps using one of these approaches:

- ÿ+Break (Win+Break)
- press the Windows key to pop up the Start menu, type System and choose System from the Control Panel section in the Start menu search results
- press ÿ+R (Win+R) and type control system and press Enter
- press ÿ+E (Win+E) to start Windows Explorer and right-click on Computer in the left pane and choose Properties

Windows system properties

Now click Advanced system settings

Alternatively you can go directly to the advanced system settings: press the Windows key to pop up the Start menu, type adv and choose View advanced system settings from the Control Panel section in the Start menu search results.

Advanced system properties

In the Startup and Recovery group press the Settings button:

Startup and recovery settings

In the Default operating system: list choose your non-Windows 8 OS, which for me is Windows 7.

MSConfig

Press ÿ+R (Win+R), type msconfig and press Enter. Go to the Boot tab, select the non-Win8 OS and press the Set as default button.

msconfig.exe boot options

From Windows 8 GUI

Advanced System Properties

You need to bring up System properties, perhaps using one of these approaches:

- ÿ+Break (Win+Break)

- ÿ+X,Y (Win+X,Y) to choose the System item from the Quick Link menu
- press ÿ+W (Win+W) to invoke the Settings Search Charm, type System and choose System from the list  of Settings search results
- press ÿ+R (Win+R) and type control system and press Enter
- press ÿ+E(Win+E) to start Windows Explorer and right-click on Computer in the left pane and choose Properties

Now click Advanced system settings

Alternatively you can go directly to the advanced system settings: press ÿ+W (Win+W), type adv and choose View advanced system settings from the search results.

In the Startup and Recovery group press the Settings:

In the Default operating system: list choose your non-Windows 8 OS, which for me is Windows 7.

MSConfig

Press ÿ+R (Win+R), type msconfig and press Enter. Go to the Boot tab, select the non-Win8 OS and press the Set as default button.

From Windows 8 boot manager

You can also change the default OS from the Windows 8 boot manager, while enjoying the appearance of the shiny, new UI. Click/touch the button that says: Change defaults or choose other options.

Win 8 boot manager options

From here you can see the option: Choose the default operating system:

Choosing default OS in Win 8 boot manager

This all works fine, but if you want the text mode boot manager all the time and still want to retain Windows 8 as the default boot OS, the plan comes unstuck. At which time we need to switch to the other possibility. We need to change the boot menu policy.

Setting Windows 8 to use the Text Mode Boot Manager

For this we need an administrative command prompt, so in Windows 8:

  • if currently looking at the Desktop screen, press the Windows key to switch back to the Start screen
  • Type cmd and press Ctrl+Shift+Enter to launch the command prompt as Administrator

Now enter the command: bcdedit /v to list out the entries in the Boot Configuration Data (BCD)

Dumping BCD entries

Notice the bootmenupolicy value in the Windows 8 boot loader dump? Its value is Standard, which means the Modern UI boot manager menu.

This needs to be changed using this command:

bcdedit /set {current} bootmenupolicy legacy

If you run the bcdedit /v command again, you’ll see the change has been applied:

Dumping BCD entries after turning off the new Windows 8 boot manager UI

Now we have the old-style boot manager menu, no matter which OS is set as the default.