This page discusses the boot.ini file, an integral part of the traditional Windows bootloader for older versions of Windows (Windows NT, 2000, and XP).
Contents
About BOOT.INI
A file called BOOT.INI stores information regarding the physical location(s) of your various Windows NT-based installations. NTLDR accesses this file to get a list of the installed operating systems and display them in the on-screen boot menu for the end user to pick and OS to load into.
If you’re getting a BOOT.INI-related error, then you need to create or update your BOOT.INI file to reflect the correct system information.
Location
BOOT.INI is stored in the root of your “system” partition, which contains other files like NTLDR, NTDETECT, and a BOOT folder.
A typical BOOT.INI file:
[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="Windows XP Professional" /fastdetect multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows Server 2003" /fastdetect
[boot loader]
The section entitled [boot loader]
contains the global NTLDR settings. These include timeout
which defines how long NTLDR will wait for the end user to select an OS, and default
which tells NTLDR what OS to boot into if the timeout value runs out.
[operating systems]
This section lists the operating systems installed on this physical machine. Each operating system has a line that describes its location in standard ARC path format.
multi(0)
: The adapter of the hard disk that Windows is on. Keep it set to 0.disk(0)
: The physical disk number to load Windows from ifmulti
is not used. Since we’re usingmulti
, keep this 0 as well.rdisk(x)
: The physical disk number to load Windows from.rdisk()
begins counting from 0, so the first drive on your system isrdisk(0)
, the second isrdisk(1)
, and so on and so forth.
These numbers do not relate to the SATA channel numbers or the IDE primary/secondary – master/slave connections, but to the order of your drives as seen by the BIOS, so that rdisk(0) is the drive you are booting from etc.partition(y)
: The number of the partition on the driverdisk(x)
.partition(y)
starts counting from 1, so the first partition ispartition(1)
, the second ispartition(2)
, etc.partition(y)
counts primary partitions first then counts logical partitions. The extended partition (the “container” for logical partitions) itself isn’t counted, though.
These numbers are taken from the Partition Table in the Master Boot Record, which will generally be the order in which they were created, which will not necessarily be the same as the order in which they appear on the disk
Because of the two italicised notes above, it can be quite difficult to identify the correct rdisk() partition() combination to describe your XP partition. For this reason alone, you might like to take the first of the following options to create BOOT.INI.
Related boot.ini errors
- Invalid boot.ini file
- NTLDR is missing
- NTLDR is corrupt
- NTLDR: fatal error reading boot.ini
- Windows could not start
- Unmountable boot volume
- Hal.dll is missing or corrupt
- Ntoskrnl.exe is missing or corrupt
Rebuilding BOOT.INI
There are multiple ways of re-creating BOOT.INI to get your system up and running once more, the simplest of which is to download EasyBCD 2.0 and use it to add an XP entry to your Vista BCD. It will offer to create boot.ini for you and ensure that it accurately describes your XP system(s) and is correctly located and accompanied by the other necessary XP boot files which it will automatically copy to the correct location. All you need to do is say “yes please”.
Manually Creating/Updating BOOT.INI
If you’re feeling masochistic and you want to create it manually instead of letting EasyBCD do the hard work for you, the historic instructions follow.
- If you don’t have a file called BOOT.INI on your boot partition (usually C:), create a new file in notepad and save it to there, calling it
"BOOT.INI"
(with the quotes). - Copy this to the notepad window:
[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="Windows XP Professional" /fastdetect
- Update the
rdisk(0)
andpartition(1)
values to point to the correct disk and partition numbers. Refer to the information above for details on how this number is determined. Make this change to both ARC path lines – make sure they’re both exactly the same. - Save your changes to BOOT.INI and exit notepad.
- Reboot to test.
Automated Creation of BOOT.INI
If you have a Windows XP or Windows 2000 CD lying around, you can use it to automatically re-create your boot.ini file to point to the correct partitions.
- Insert your Windows 2000 or XP CD in the drive, and proceed to boot from it.
- When prompted to “Press ‘R’ to enter Recovery Console,” do so.
- Once in the recovery console you may be asked for the Administrator password for security purposes. If you know it, enter it and hit <enter>. If you don’t, use a Windows 2000 CD to bypass the prompt.
- Enter this in the console:
bootcfg /rebuild exit
- The
bootcfg
command will search your hard drive for valid, available Windows NT-XP installations, and proceed to add each to boot.ini. You will be prompted to name each entry (give it any name you like) and provide load options (give it “/fastdetect” without the quotes). - The
exit
command will quit the Recovery Console. - Remove the 2000/XP CD from the drive and reboot.
Boot.ini has been recreated and should do the trick.
By Repair-Installing (aka “In-Place Upgrade”) Windows XP
This is the proverbial “sledgehammer to crack an acorn” approach, and if you dual-boot with a newer version of Windows such as Vista/7/8, it will also require that you repair the new BCD boot process subsequently, because any install of XP after Vista/7/8 will regress the newer bootmgr/bcd boot to XP’s NTLDR, which is incapable of being made to boot anything newer than Windows XP.