Edit or create a startup menu that lets you choose which operating system to boot into in multiboot systems, or create a menu that lets you choose different startup options for your single operating system if you have only XP installed.
If you’ve installed another operating system (in addition to XP) on your system, your PC starts up with a multiboot menu, which allows you to choose which operating system you want to run. The menu stays live for 30 seconds, and a screen countdown tells you how long you have to make a choice from the menu. After the 30 seconds elapse, it boots into your default operating system, which is generally the last operating system you installed.
You can customize that multiboot menu
and how your PC starts by editing the
file, a hidden system file, to control a
variety of startup options, including how long to display the menu,
which operating system should be the default, whether to use the XP
splash screen when XP starts, and similar features. And as
you’ll see later in this hack, you can also use the
file to create a startup menu that will allow you to choose from
different versions of your operating system—for example, one
that you’ll use for tracking down startup problems,
and another for starting in Safe Mode.
boot.ini file is a plain text file found in
C:\ folder. You might not be able to
see it, because it’s a system file, and if you can
see it, you might not be able to edit it, because
it’s a read-only file. To make it visible, launch
Windows Explorer, choose View → Tools → Folder
Options → View and select the radio button
“Show Hidden Files and Folders.” To
make it a file you can edit, right-click on it in Windows Explorer,
choose Properties, uncheck the Read-Only box, and click OK.
To edit the
file, open it with a text editor such as Notepad. Following is a
boot.ini file for a PC that has two
operating systems installed on it—Windows XP Home Edition and
Windows 2000 Professional:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000 Professional" / fastdetect
As you can see, there are two sections in the file:
customize your menu and startup options, edit the entries in each
section. Before editing
boot.ini, make a copy of
it and save it under a different name (such as
boot.ini.old), so that you can revert to it if
you cause problems when you edit the file.
Following are details about how to edit the entries in each section:
This section controls how the boot process works; it specifies the default operating system and how long a user has to make a selection from a boot menu, if a boot menu has been enabled. The
timeoutvalue specifies, in seconds, how long to display the menu and wait for a selection before loading the default operating system. If you want a delay of 15 seconds, for example, enter
15for the value. Use a value of
0if you want the default operating system to boot immediately. If you want the menu to be displayed indefinitely and stay onscreen until a selection is made, use a value of
defaultvalue specifies which entry in the
system]section is the default operating system. (The
defaultvalue is used even if there is only one operating system in the
system]section.) To change the default operating system, edit the setting, in our example, to
So, in our example, if you change the menu settings so that the screen appears for 10 seconds before loading the default operating system, and the default operating system is Windows 2000 Professional, the section reads:
[boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
This section specifies which operating systems are present on the computer, and detailed options for each one. XP uses the Advanced RISC Computing (ARC) path to specify the location of the boot partition. In our example, the ARC path is:
The first parameter, which identifies the disk controller, should be
0. The second parameter, the
diskparameter, should also be
rdiskparameter specifies the disk number on the controller that has the boot partition. The numbers start at
0. So, if you have three hard disks installed and the second hard disk has the boot partition, the setting is
partitionparameter identifies the partition number of the boot partition. Partitions start with the number
1. The final section, which in our example is
\WINDOWS, specifies the path to the folder where the operating system is installed.
To the right of the ARC path in the example is
="Microsoft Windows XP
/fastdetect. The words within quotes are what will appear on the boot menu next to the entry. To customize the text on the menu you can change these words to whatever you wish—for example, “My Favorite Operating System.” The
/fastdetectswitch disables the detection of serial and parallel devices, which allows for faster booting. The detection of these devices isn’t normally required in XP, because the functions are performed by plug-and-play drivers, so as a general rule it’s a good idea to use the
/fastdetectswitch is only one of many switches that can be used in the
boot.inifile to customize how the operating system loads. Table 1-1 lists others you can use.
Table 1-1. Switches for boot.ini
When you’ve finished editing the
boot.ini file, save it. The next time you start
your computer, its settings will go into effect.
In our example, if we want the menu to appear for 45 seconds, the
default operating system to be Windows 2000, and the XP splash screen
to be turned off when we choose to load XP, the
boot.ini file should look like this:
[boot loader] timeout=45 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect /noguiboot multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows 2000 Professional" / fastdetect
Even if you have only one operating system, you can create a boot menu that will let you choose to load your operating system with different parameters. For example, for menu choices, you might have your normal operating system; a mode that lets you trace any startup problems; and Safe Mode. To give yourself the option of operating systems with different parameters, create separate entries for each new operating system choice. For example, for the version of the operating system that traces potential startup problems, you could create this entry:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Trace Problems XP Home Edition" /fastdetect /bootlog /sos
This entry creates a startup log and also displays information about the drivers and other operating system information as it loads.
For the version of the operating system that loads in Safe Mode but that still allows networking, you could create this entry:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Safe Start XP Home Edition" / fastdetect /safeboot:network
boot.ini file would look like this, assuming
that you want the menu to display for 30 seconds and you want normal
XP startup to be the default:
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Trace Problems XP Home Edition" /fastdetect /bootlog /sos multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Safe Start XP Home Edition" / fastdetect /safeboot:network
If you’re leery of using a text editor to edit
boot.ini directly, you can use the System
Configuration Utility [Hack #4]
msconfig at a command prompt or the
Run box and click on the BOOT.INI tab, shown in Figure 1-1. You’ll be able to add
several switches (but not as many as you can if you edit the
boot.ini file yourself using a text editor).
Get Windows XP Hacks now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.