Purpose of the BOOT.INI File


BOOT.INI and ARC Path Naming Conventions and Usage : Q99743

Some people get an error message in the Event log from source Serial stating
Not enough resources for the driver. NT is probing the
serial ports for a serial mouse, and finding that there is no resource usable
for this purpose. You can ignore the message, its informational, or to eliminate
it (assumes you DO have a ps/2 mouse), use the /NoSerialMice parameter, which
suppressed this test at boot.

sample boot.ini

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Windows NT Workstation Version 4.00″ /NoSerialMice
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Windows NT Workstation Version 4.00 [VGA mode]” /basevideo /sos /NoSerialMice

[any text]
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Windows NT Workstation Version 4.00″ /NoSerialMice
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Windows NT Workstation Version 4.00 [VGA mode]” /basevideo /sos /NoSerialMice
C:\=”MS-DOS”


The above example, the [any text] section hides the bottom 3 selections. You
can use the [any text] header to keep boot options but make them unavailable at
boot.

The pathing portion which defines where NT is to boot from, uses the ARC
convention:

default=scsi(0)disk(0)rdisk(0)partition(1)\winnt

where the above is a standard example. Your paths will have either scsi or
multi.

multi() is used for IDE and also for SCSI drives when int13 is used to find
and load the NT kernel file, ntoskrnl.exe. multi(), when used, is normally set
to 0 because BIOS can only indentify a single INT 13 controller at a time.

multi() and disk() are not applicable to IDE and are always 0.

If the controller is SCSI and int13 is not enabled, then scsi and drive tell
NT which SCSI controller (0=first controller, 1=second) and drive has the active
partition. The partition portion specifies which partition is active (1=first
partition, 2=second partition).

disk() is set to 0 when using multi() because the disk info is provided
through INT 13 and doesn’t need to be enumerated.

rdisk() is the ordinal number of the disk on the adapter. With EIDE
controllers, this varies from 0 to 3 with the primary boot drive being 0.

Partition() is the partition number which follows the same numbering
convention as multi()’s partition numbering.

In both multi() and scsi() the final parm is the pathname to the system
files, normally, winnt.

Study Q102873, which has the definitive discussion of the ARC
convention and how to interpret it. For more information on int13 and its
limitations, see Int 13 x86
boot limitation and C partition

If your need to set the default operating system to boot, the easiest and
safest approach is to click

Start : Control Panel : System icon : Startup/Shutdown
dropdown : Select default

There is a minor gotcha! if partitions have changed or you edited the
boot.ini and the line defining the default is invalid, you will get the
existings options and an option labelled default. Fix the defective “default”
line and the extra “bad” option will disappear. It something you can’t ignore
because NT will boot using the info in the defective “default” line until the
error is corrected.

Don’t mistake the complexity of boot.ini. Microsoft’s multi-boot support is
very elementary. It can not handle more than one non-NT/W2K operating system,
potentially a severe defect, and it is limited to 10 entries in the menu, not a
biggie. Want to test the 10 entries limitation. Copy one of the entries and
change the label. You will only see the 1st 10 entries displayed.:

multi(0)disk(0)rdisk(0)partition(1)\WINNT=”Microsoft Windows 2000
Professional” /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #2″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #3″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #4″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #5″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #6″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #7″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #8″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #9″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #10″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #11″
/fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT=”W2K #12″
/fastdetect
Reboot and you should only see the 1st 10 entries displayed. Any
entry beyond 10 will not display.

Mark Russinovich has a good writeup covering all the switches in boot.ini at
www.sysinternals.com/bootini.htm. They include :
/NOSERIALMICE ( NOSERIALMICE : disables serial mouse detection),

/PCILOCK ( PCILOCK : lets BIOS configure PCI devices),
/WIN95DOS (
WIN95DOS : directs NTLDR to boot the DOS boot sector stored in
BOOTSECT.DOS),
/WIN95 ( WIN95 : directs NTLDR to boot the Win9x boot sector
stored in BOOTSECT.W40),
/3GB ( 3G : give applications more
memory),
/KERNEL and/or /HAL= (specify kernel and/or hal image
file),
/BREAK ( BREAK : stop at breakpoint in HAL),
/BAUDRATE= and
/DEBUGPORT= (used in remote kernel debugger),
/CRASHDEBUG ( CRASHDEBUG:
kernel debugger is loaded),
/NODEBUG ( NODEBUG overrides /baudrate and
/debugport),
/BASEVIDEO ( BASEVIDEO : use standard vga),
/SOS ( SOS : show
drivers being loaded),
/NUMPROC= (NUMPROC : only use set number of
processors),
/ONECPU ( ONECPU : only use 1 processor),
/BURNMEMORY (don’t
use x amount of memory – BURNMEMORY),
/MAXMEM= (use as maxmem),
/USE8254 (
use8254 timer chip as its base timer),
/CLKLVL ( CLKLVL : use level-sensitive
system clock),
/YEAR= (use year specified as system year),
/TIMERES=
(TIMERES : sets the resolution of the system timer),
/MAXPROCSPERCLUSTER= (
MAXPROCSPERCLUSTER : max cpus to use in cluster),
/INTAFFINITY ( INTAFFINITY
: sets interrupt affinity),
/BOOTLOG ( BOOTLOG : writes boot log to
%SystemRoot%\NTBTLOG.TXT),
/FASTDETECT ( FASTDETECT : causes NTDETECT to skip
parallel and serial device enumeration)

Leave a Comment

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top