Boot.ini made simple
Suppose Windows XP is giving you some trouble, so you decide to boot in Safe Mode to correct the problem. You reboot and press F8 to enter the Windows Advanced Options menu, but you aren't quick enough with the keyboard. You reboot and try again, your finger poised at F8—to no avail. You reboot a third time, and this time your hand-eye coordination is good enough to get you to the right menu. Finally, you can start troubleshooting!
Who decided that getting into Safe Mode should require the keyboard reflexes of a fanatical game player? When you install Windows 2000 or later on an empty hard disk, the OS doesn't create a boot.ini file; therefore, boots are faster, but recovery operations are more difficult. The absence of a boot.ini file means that you don't have a 30-second window in which to press F8, so recovery options such as Safe Mode and Directory Services Restore Mode are tough to access.
The solution, of course, is to create a basic boot.ini file that offers only one choice of OS. Although the file offers only one OS choice, it will give you 30 seconds in which to press F8. However, building a basic boot.ini file can be a pain because of its arcane Advanced RISC Computing (ARC) disk terminology. To ease your frustration, you can use Windows Server 2003's and Windows XP's Bootcfg command.
To create a boot.ini file (assuming one doesn't already exist), open a command prompt and type
bootcfg /copy /d "Normal boot" /id 1
The /id 1 option copies the default boot configuration to a new entry in the boot.ini file. The /d option, which describes a boot.ini entry, gives that configuration the label "Normal boot". I use Bootcfg on all my Windows 2003 and XP boxes that lack a boot.ini file—you might call it boot insurance.
But Bootcfg offers further functionality. The tool can also help you smoke out memory problems. Suppose you have a system that periodically locks up or complains of memory exceptions. A cheap diagnostic method I use in such scenarios is to force the OS to run within a certain amount of memory. For example, I might suspect bad RAM on a Win2K system that has 512MB of RAM and is behaving strangely. The \[operating systems\] portion of boot.ini might look like
multi(0)disk(0)rdisk(0)partition(1) \WINNT="2KPro" /fastdetect
By adding the /maxmem=32 option, I can force the OS to run in just the bottom 32MB of my RAM, ignoring all other RAM. So, that section of boot.ini now looks like
multi(0)disk(0)rdisk(0)partition(1) \WINNT="2KPro" /fastdetect /maxmem=32
With less RAM to work with, the system will run slowly. But if it no longer crashes or locks up, I would strongly suspect that the system's memory is causing the problem.
I can never remember the /maxmem= option, so I appreciate the ability to use bootcfg /addsw to add new options to my boot.ini file. On a Windows 2003 or XP machine, I could have accomplished the boot.ini change by entering the command
bootcfg /addsw /mm 32 /id 1
which automatically adds the /maxmem= option to the first boot.ini entry. You might ask why remembering this Bootcfg command is any easier than remembering the /maxmem= option. The answer to that question is simple: Boot.ini options don't have a Help file, whereas Bootcfg does. You can use the bootcfg /addsw /? command to remind yourself how to change your memory setting.
To delete boot options from boot.ini, you can use the /delete option. For example, the command
bootcfg /delete /id 2
deletes the second boot option from the boot.ini file. Of course, you can just as easily use Notepad to perform such a deletion—but not in an automated fashion. Bootcfg /delete lets you perform the job of deleting a boot.ini entry in a batch file.
Bootcfg has other features, but I'm out of space. I'll finish with one more thought about how you might use it: remotely. To use Bootcfg on any remote machine, just add the /s machinename, /u username, and /p password options.