An Easy Way to Boot Between Vista and XP

A batch file is all you need to boot to your nondefault OS in a dual-boot configuration

Readers

May 26, 2008

4 Min Read
ITPro Today logo in a gray background | ITPro Today


Windows XP will be around for many years, so many IT pros will likely want to keep it on their system in a dual-boot configuration with Windows Vista. If you’re like me, no matter how long you set the boot menu display time, you’ll miss the menu when you want to boot under the nondefault OS. Here’s a simple trick to reboot your system under your nondefault OS without having to wait for the boot menu to appear. You’ll be able to leave your system while it reboots and find that it started under the right OS when you come back.

The trick is to use BCDEdit (bcdedit .exe), a Vista command-line tool that can add, modify, and delete data in the Boot Configuration Data (BCD) store. In Vista and Windows Server 2008, the BCD store houses the boot configuration parameters that were in the boot.ini file in earlier OS versions. You can use BCDEdit’s /bootsequence command to specify the boot entries and boot order for a one-time boot sequence. After that boot has occurred, the OS goes back to its regular boot sequence. Thus, you just need to create a batch file that uses BCDEdit’s /bootsequence command to reboot your computer under the nondefault OS. If Vista is your default OS, you need to create RebootXP.bat, which reboots the computer under XP. If XP is your default OS, you need to create RebootVista.bat, which reboots your computer under Vista.

Creating and using RebootXP.bat. Open Notepad and enter the following two commands:

bcdedit  /bootsequence {ntldr} /addfirstShutdown /r /t 0

(Although the first command wraps here, you’d enter it on one line in the Command Prompt window.) The /bootsequence command specifies that there’s only one boot entry—ntldr, which is the boot loader ID for pre-Vista OSs—in the one-time boot sequence. The /addfirst parameter makes sure the specified boot entry is at the beginning of the one-time boot sequence. That way, when the Shutdown command shuts down and restarts (which the /r parameter specifies) the computer, it’ll reboot under XP. The Shutdown command’s /t 0 parameter ensures that the shutdown begins immediately. After you enter these two commands, save the file, naming itRebootXP.bat.

In Vista, running BCDEdit commands requires administrative privileges, so you need to run RebootXP.bat under an administrative account. One way to do this is to use the Administrator Command Prompt window, which you can access by right-clicking Command Prompt in the Start menu, then selecting Run as administrator. If you’re prompted for a password or confirmation, type the password or provide confirmation. When the Administrator Command Promptwindow opens, run the command

MyPathRebootXP.bat

where MyPath is the path to RebootXP.baton your computer.

If you’re afraid you’ll forget to run RebootXP. bat under administrative privileges, you can use the modified batch file that Listing 1 shows. When you run ModifiedRebootXP.bat without administrative privileges, you’ll receive a warning message and the batch file will automatically end so that your computer doesn’t reboot under the default OS.

Creating and using RebootVista.bat. If your default OS is XP, you have to work a little harder to create the batch file. Before you can create RebootVista.bat, you need to get the boot loader ID for the version of Vista you’re using. To do so, open a Command Prompt window (or an Administrator Command Prompt window if you’re on Vista) and run the command

 X:windowssystem32bcdedit

where X refers to the driver letter on which Vista is installed. You’ll need to replace X with the drive letter specific to your system (e.g., D). In this command’s output, find the “Windows Boot Loader” section and look for a 32-digit hexadecimal globally unique identifier (GUID) that takes the form {xxxxxxxx-xxxx-xxxxxxxx- xxxxxxxxxxxx}. Open Notepad and enter the commands

X:windowssystem32bcdedit    /bootsequence {ID} /addfirstShutdown /r /t 0

where X refers to the driver letter on which Vista is installed and ID is the 32-digit GUID you just found. Save the file, naming it RebootVista.bat. To run this batch file, open a Command Prompt window and run the command

MyPathRebootVista.bat

where MyPath is the path to RebootVista .bat on your computer.

You can download RebootXP.bat, Modified- RebootXP.bat, and RebootVista.bat by going to www.windowsitpro.com, entering 98816 in the InstantDoc ID box, clicking Go, then clicking the Download the Code Here button. You can find more information about how to use BCDEdit in the “BCDEdit Reference” documentation, which you can download at www.microsoft.com/whdc/system/platform/firmware/bcdedit_reff.mspx.

After you create the appropriate batch file, rebooting your computer under the nondefault OS is just a matter of running that file. You’ll never wait for or miss seeing the boot menu again.

—André Boutet, technical analyst, CSST Québec

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like