Windows NT, 2000 and XP use a configuration file called BOOT.INI to control how the operating system is booted and any startup options. By modifying the startup switches you can manage the boot process including booting Windows in Safe mode, creating a log file, or disabling the splash screen. Open you the root partition of your hard drive (normally C:\) and find the file called "BOOT.INI".
You may need to enable hidden files under Folder > Options. Right-click on the file, select Properties and uncheck "Read-only" then click OK. You may like to make a backup of the file at this point to allow you to restore if you experience problems. Open the file in Notepad and under the [operating systems] section you will find a list of all the installed operating systems.
For example:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
To enable or disable startup options simply change or add any of the switches listed below to the default command-line.
For example you could add "/SOS" to the command-line above to display the splash screen and view the drivers being loaded.
Explanations for each part of BOOT.INI
timeout=30
The "timeout" entry is how many seconds (30 in this case) that the menu will remain onscreen before trying to boot up the "default" OS.
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
Most of these lines use what are known as ARC (Advanced RISC Computing) paths to specify the location of various boot partitions. Almost every machine using ATA (EIDE / IDE) hard drives will have:
"multi(0)disk(0)". The multi(x) parameter is used to set the disk controller number, where x=0,1,2,... .
The multi(x) parameter is always followed by disk(0); unless you're using a SCSI controller without the BIOS enabled.
The "rdisk(n)" parameter is for the HDD drive number, where n=0,1,2,... depending upon which physical drive this HDD is in your system.
The "partition(p)" parameter is its partition on that drive, where p=1,2,3,... in order, counting from a 1 (not a zero).
So, the very first partition on this first physical drive (where our main Windows OS is: "multi(0)disk(0)rdisk(0)partition(1)."
The "\WINDOWS" which follows that, lets the OS Loader know that the system files are in the "C:\WINDOWS" folder! However, the Windows™ 2000 OS uses the folder name of "C:\WINNT," so the last part of its ARC might be "\WINNT" instead.
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
The second line under the "[operating systems]" section is what you could call an alternate, backup or rescue copy of my main Windows XP OS which is located in the same volume as the main OS. A line like this will only be found if you install the Recovery Console files from your install CD onto your hard disk!
How to Edit the boot.ini
At
the MS-DOS prompt, type:
c: <press enter>
cd\ <press enter>
attrib -r -a -s -h boot.ini
<press enter>
edit boot.ini <press enter>
How to edit the Boot.ini file in Windows XP
How to edit the Boot.ini file in Windows 2000
How to manually edit the Boot.ini file in a Windows Server 2003
Possible Switches
/3GB - New to Service Pack 3. This causes the split between user and system portions of the Windows NT map to become 3GB for user applications, 1GB for System. To take advantage of this the system must be part of the NT Enterprise suite and the application must be flagged as a 3GB aware application.
/BASEVIDEO - The computer starts up using the standard VGA video driver. Use this if you have installed a graphics driver that is not working.
/BAUDRATE - Specifies the baud rate to be used for debugging. If you do not set the baud rate, the default baud rate is 9600 if a modem is attached, and 19200 for a null-modem cable.
/BOOTLOG - Makes 2000 write a log of the boot to the file %SystemRoot%\NTBTLOG.TXT Windows 2000/XP Only.
/BURNMEMORY=x - Makes NT forget about the given amount of memory in MB. If /burnmemory=64 was given then 64MB of memory would be unavailable.
/CRASHDEBUG - The debugger is loaded when you start Windows NT, but remains inactive unless a Kernel error occurs. This mode is useful if you are experiencing random, unpredictable Kernel errors.
/DEBUG - The debugger is loaded when you start Windows NT, and can be activated at any time by a host debugger connected to the computer. This is the mode to use when you are debugging problems that are regularly reproducible.
/DEBUGPORT=comx - Specifies the com port to use for debugging, where x is the communications port that you want to use.
/FASTDETECT - Specifying FASTDETECT causes NTDETECT to skip parallel and serial device enumeration for a boot into Win2K, whereas omitting the switch has NTDETECT perform enumeration for a boot into NT 4.0. Win2K setup automatically recognizes dual-boot configurations and sets this switch for BOOT.INI lines that specify a Win2K boot. Windows 2000/XP Only.
/HAL=<hal> - Allows you to override the HAL used, for example using a checked version.
/INTAFFINITY - Sets the multiprocessor HAL (HALMPS.DLL) to set interrupt affinities such that only the highest numbered processor in an SMP will receive interrupts. Without the switch the HAL defaults to its normal behavior of letting all processors receive interrupts. Windows 2000/XP Only.
/KERNEL=<kernel> - Same as above but for the kernel.
/MAXMEM:n - Specifies the maximum amount of RAM that Windows NT can use. This switch is useful if you suspect a memory chip is bad.
/NODEBUG - No debugging information is being used.
/NOGUIBOOT - When this option is specified the VGA video driver responsible for presenting bit mapped graphics during Win2K's boot process is not initialized. The driver is used to display boot progress information, as well as to print the Blue Screen crash screen, so disabling it will disable Win2K's ability to do those things as well. Windows 2000/XP only.
/NOSERIALMICE=[COMx | COMx,y,z...] - Disables serial mouse detection of the specified COM port(s). Use this switch if you have a component other than a mouse attached to a serial port during the startup sequence. If you use /NOSERIALMICE without specifying a COM port, serial mouse detection is disabled on all COM ports.
/NUMPROC=n - Only enables the first n processors on a multiple processor system.
/ONECPU - Only use the first CPU in a multiple processor system.
/PCILOCK - Stops Windows NT from dynamically assigning IO/IRQ resources to PCI devices and leaves the devices configured
by the BIOS.
/SAFEBOOT - This is an automatic switch which NTLDR should complete for you when you use the F8 menu to perform a safe boot. Following the colon in the option you must specify one of three additional switches: MINIMAL, NETWORK, or DSREPAIR. The MINIMAL and NETWORK flags correspond to safe boot with no network and safe boot with network support. The safe boot
is a boot where Windows 2000/XP only loads drivers and services that are specified by name or group in the Minimal or Network Registry keys under HKLM\System\CurrentControlSet\Control\SafeBoot. The DSREPAIR (Directory Services Repair) switch causes NT to boot into a mode where it restores the Active Directory from a backup medium you present. An additional option that you
can append is "(ALTERNATESHELL)". This tells NT to use the program specified by HKLM\System\CurrentControlSet\SafeBoot\AlternateShell as the graphical shell, rather than to use the default which is Explorer. Windows 2000/XP only.
/SOS - Displays the driver names while they are being loaded. Use this switch if Windows NT won’t start up and you think a driver is missing. This option is configured by default on the [VGA] option on the boot menu.
/WIN95 - This switch is only pertinent on a triple-boot system that has DOS, Win9x and Windows NT installed. Specifying the /WIN95 switch directs NTLDR to boot the Win9x boot sector stored in BOOTSECT.W40. See Microsoft KB Article Q157992 for more information.
/WIN95DOS - This switch is only pertinent on a triple-boot system that has DOS, Win9x and Windows NT installed. Specifying the /WIN95DOS switch directs NTLDR to boot the DOS boot sector stored in BOOTSECT.DOS. See Microsoft KB Article Q157992 for more information.
/YEAR= - Specifying this value causes NT/Windows 2000 core time function to ignore the year that the computer's real-time clock reports and instead use the one indicated. Thus, the year used in the switch affects every piece of software on the system, including the NT kernel. Example: /YEAR=2005. Note: this option is only available on NT 4.0 Service Pack 4 and Windows 2000/XP. Save the file and restart Windows for the change to take effect.
Question: How to rebuild the Windows boot.ini.
Answer: Users who have a corrupt or missing boot.ini file, are running Microsoft Windows XP, and have a Microsoft Windows XP CD can rebuild the systems boot.ini file by following the below steps.
-
Insert the Microsoft Windows XP CD into the computer.
-
Reboot the computer with the CD and press any key when prompted to press any key to boot from the CD.
-
Once in the Microsoft Setup menu press R to open the recovery console.
-
Select the operating system you wish to use; if you only have Windows XP on the computer you will only have one prompt.
-
Once prompted for the password enter the Admin password and press enter.
-
Once at the command prompt type bootcfg /rebuild to start the rebuild process.
-
The rebuild process will step you through a number of steps depending upon how many operating systems you have.
-
Once you have completed all the available options in the rebuild and are back at the prompt type exit to reboot the computer.
Editing the boot.ini Through the System Configuration Utility
Start - Run - Msconfig

Or you can run a command within a command window called "bootcfg.exe"
It can be used in the Recovery Console to repair a damaged boot.ini file or in a command window to edit entries to the file.
Here are its parameters
