Microsoft Windows – About Boot.ini (and examples)

Boot.ini is one of the very first files that come into play when a Windows XP system is started up. It is a plain text file that is kept in the system root, so it is usually C:\boot.ini. Because it is an essential system file, the attributes are set to hidden, system, read-only to protect it.

Be careful with your typing when you edit Boot.ini. And remember that spaces are as important as content.

A few examples:

bootcfg /rebuild uses correct syntax.
bootcfg/rebuild is wrong!

attrib -s -r -h c:\boot.ini uses correct syntax.
attrib-s-r-hc:\boot.ini is very wrong!

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect

uses correct syntax (beware of word-wrap!).

multi(0) disk(0) rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP" /fastdetect

is wrong!

C:\="Microsoft Windows 98" uses correct syntax.
C="Microsoft Windows 98" is wrong!

multi()disk()rdisk()partition()\directory="menu text"

in Boot.ini's ARC path on x86-based computers.

These define the location where that Windows XP/2K/NT's folders/files are installed i.e. the OS boot partition. Each line must be a complete line (no Word Wrap), and must be exactly correct! Otherwise you are likely to get 'Hall.dll', or other error, indication the Windows can not be found.

The Bootcfg /rebuild command normally handles a Boot.ini creation quite efficiently. Occasionally user intervention is required or preferred.



The multi() syntax indicates to Windows that it should rely on the computer's BIOS to load system files. It's virtually always set to 0 (zero). If the SCSI() notation is used instead of multi() it indicates that Windows will load a boot device driver (NTBOOTDD.SYS) and use that driver to access the boot partition.



This is always 0 when multi(0) is used because the INT 13 call is involked. If scsi() is used then the number will be the SCSI ID of the target disk.

For the vast majority of users the correct syntax will be multi(0)disk(0).



rdisk() refers to physical hard disks and starts counting from 0. Therefore rdisk(1) refers to a second disk.

  • Every hard disk counts, not just disks with OSs installed.
  • The Primary Master hard disk is always rdisk(0).
  • If a Primary Slave exists, it has priority over any Secondary disk(s).
  • If a Secondary Master exists, it has priority over a Secondary Slave.



A number is allocated to each partition in the order that they occur on the hard disk specified by rdisk(). It starts counting from 1, and primary partitions on that disk are counted first.. Therefore partition(2) is the second Primary partition on the disk.

rdisk(0)partition(1) refers to the first hard disk and its first partition. An example of the third partition on a second hard disk would be rdisk(1)partition(3).


Directory is the name of the installation directory of that Windows. The default is WINDOWS for Windows XP but WINNT for Windows 2000 and NT.

However if you upgraded Windows 2000 to Windows XP then the directory is still likely to be WINNT.

="menu text"

Menu text contains a description of what appears in the Boot Loader menu. It's used only in the [operating systems] section of Boot.ini and never in the [boot loader] section.

You can alter the description to your own liking but must use the = and enclose the description between the quotes.