Boot.ini file in Windows 2000, XP, & Server 2003
Windows could not start because of a computer disk hardware configuration problem.
Could not read from the selected boot disk. Check boot path and disk hardware.
Please check the Windows documentation about hardware disk configuration and your hardware reference manuals for additional information.
The easiest solution to this problem was to:
1) Insert your Windows disk and when you are prompted, press R to enter the Windows Recovery Console.
2) You'll then need to select one of your Windows installation and enter the Administrator's password.
3) When you reach the command prompt, type bootcfg /rebuild and hit Enter.
If you need more help, I recommend this Microsoft Knowledge base:
While going through that problem I learned quite a bit about the boot.ini file and ended up writing this brief guide.
The boot.ini file format is a standard ini file that determines which Windows operating system to load at boot, and also determines which Windows installations are available from the menu at boot up. From Microsoft: "Windows (specifically Ntldr) uses the Boot.ini file to determine the operating system options to display during the startup (boot) process"
Here's a sample boot.ini file from a Dell computer with XP Home and Professional installed:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect /NoExecute=OptIn
multi(0)disk(1)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
The first line, [boot loader] contains two variables, the first one, timeout, corresponds to the amount of seconds to display the boot menu. The second value, default, specifies the Windows installation that will boot if no other installation is chosen. In this case, the Dell computer defaults to loading the Windows XP Home installation, on the first hard drive.
Multi refers to the type of hard disk interface. In this case it is multi, which means that it is either an IDE, EIDE, ESDI drive, or a SCSI adapter with no built in BIOS. In other words, the only time you'd replace multi, is if you had a SCSI interface with a built in BIOS. disk(0) refers to the 1st physical hard drive. disk(1) would refer to the second hard drive on that channel. rdisk(0) is specific to SCSI drives, and is usually fine at 0. partition(1) means the actual 1st partition on the drive, so in the above example, the Windows XP Home installation is on the first hard disk on the first partition. Windows XP Professional is on the second hard disk, and on the second partition on that hard drive. \WINDOWS="Microsoft Windows XP Home Edition" says that the Windows folder is located at \WINDOWS and the "Microsoft Windows XP Home Edition" tells the NTLDR boot screen to literally display "Microsoft Windows XP Home Edition" as the selection. The final boot options we'll discuss are /fastdetect /NoExecute=OptIn which are flags that pass parameters to Windows when loading. The following list is from Wikipedia:
/3gb - Allocate 3 GB of virtual address space to programs and 1 GB to the kernel; used for some programs that require more than the standard 2gb allocation for user programs.
/basevideo - The computer starts up using the standard VGA video driver.
/baudrate=nnn - Sets the baud rate of the debug port that is used for kernel debugging.
/bootlog - Write a log file when Windows boots
/burnmemory - Amount of memory Windows is not allowed to use
/channel - Use with /debug and /debugport to have kernel debugging messages sent over an IEEE 1394 (firewire) port
/fastdetect - Turn off mouse detection
/HAL=filename - Define Hardware Abstraction Layer to use
/kernel=filename - Use an alternate kernel on boot
/maxmem=nn - Set maximum memory Windows can use (use /burnmemory recommended instead).
/nodebug - Turn off debugging; can cause Stop Error if a program uses debugging.
/noguiboot - Don't use the bitmap progress bar when starting up.
/nopae - Do Not Support Physical Address Extension.
/numproc - Set number of processors Windows is allowed to use; useful if some processors are failing or defective.
/pae - Support Physical Address Extension.
/pcilock - Let the BIOS assign device addresses instead of Windows.
/redirect - Turn on Emergency Management Services on certain versions of Windows.
/safeboot - Enter Safe Mode.
/userva - Specify additional memory rules in combination with /3gb switch.
/sos - Display driver names while loading.
A complete list can be found here.