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 boot.ini 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 on
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.
The boot.ini file is a plain text file found in your root 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.
Editing Files
To edit the file open it with a text editor such as Notepad. Following
is a typical 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)WINDOW S
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Micro soft 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: [boot loader] and
[operating systems]. To 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:
[boot loader]
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 timeout value
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 15 for the value. Use a value
of 0 if 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 -1. The default value specifies
which entry in the [operating system] section is the default operating
system. (The default value is used even if there is only one operating
system in the [operating system] section.) To change the default
operating system, edit the setting, in our example, to default=multi(0)disk(0)rdisk(0)partition(2)WINNT.
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
[operating system]
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:
multi(0)disk(0)rdisk(0)partition(1)WINDOWS
The first parameter, which identifies the disk controller, should be 0.
The second parameter, the disk parameter, should also be 0. The rdisk
parameter 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 rdisk(1). The partition parameter 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
Home Edition" /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 /fastdetect switch 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 /fastdetect switch. The
/fastdetect switch is only one of many switches that can be used in the
boot.ini file to customize how the operating system loads
Switches for boot.ini
/BASEVIDEO: Starts XP using the standard VGA driver. It’s most useful if you can’t boot normally because of a video driver problem.
/BOOTLOG: Logs information about the boot process to the ntbtlogl.txt file in the C:Windows folder.
/CRASHDEBUG: Loads the debugger at boot, but the debugger remains inactive unless a crash occurs.
/DEBUG: Loads the debugger at boot and runs it.
/FASTDETECT: Disables the detection of serial and parallel devices.
MAXMEM:n: Specifies the maximum amount of RAM that XP can use.
/NOGUIBOOT: Does not allow the XP splash screen to load during boot.
/NODEBUG: Stops the debugger from loading.
/SAFEBOOT:switch: Forces XP to boot into the safe mode specified by the switch parameter, which can be minimal, network, or minimal(alternate shell).
In minimal safe mode, only the minimum set of drivers necessary to
start XP are loaded. In network safe mode, networking drivers are
loaded in addition to the minimum set of drivers. In minimal(alternate
shell) the minimum set of drivers are loaded and XP boots into the
command prompt.
/SOS: Displays the name of each driver
as it loads and gives descriptions of what is occurring during the boot
process. It also offers other information, including the XP build
number, the service pack number, the number of processors on the
system, and the amount of installed memory.
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="Micro soft Windows XP Home
Edition" /fastdetect /noguiboot
multi(0)disk(0)rdisk(0)partition(2)WINNT="Windows 2000 Professional" /
fastdetect
Create a Startup Menu Even if You Have Only One Operating System
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
The 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)WINDOW S
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Micro soft 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 unsure about using a text editor to edit boot.ini directly,
you can use the System Configuration Utility instead. Type msconfig at
a command prompt or the Run box and click on the BOOT.INI tab. 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).