Saturday, January 15, 2011

Issue with boot.ini SIGNATURE entry

Windows 2000's boot.ini ARC syntax adds the signature() statement. See NT's boot.ini for a writeup of Windows NT's ARC syntax. The signature() syntax added to Windows 2000 is equivalent to the scsi() syntax, but adds support for Plug and Play architecture. For Plug and Play operating systems, the SCSI controller number instance may vary each time you start the operating system, especially if you add new SCSI controller hardware after Setup is finished. An example of the signature( ) syntax:
signature(8c468c12)disk(1)rdisk(0)partition(2)\winnt="Windows 2000"

In Windows 2000, the signature() syntax instructs the NTLDR program to locate the drive whose disk signature matches the value in the signature parentheses, no matter which SCSI controller number the drive is connected to. The signature() value is extracted from the physical disk's Master Boot Record (MBR). The signature value is a hexadecimal number that is written to the MBR during the text-mode portion of Setup, or it is written by an installation of Microsoft Windows NT version 4.0 or earlier. Yes, its that signature written to the disk the first time NT / W2K / XP accesses the hard drive using Disk Manager.

Windows 2000 / XP uses the signature( ) syntax in the boot.ini if one of the following conditions exists:

Your PC's BIOS or the IDE controller does not support int13 BIOS extensions
The int13 BIOS extensions are disabled.
The installation partition is larger than 7.8 GBs.
The ending cylinder number for the installation partition is higher than 1024.
Your SCSI controller's BIOS is disabled and thus int13 BIOS calls cannot be used during the boot process.
There is an important gotcha! if the signature gets corrupted or changed. Now the boot.ini can not find the correct partition to boot from and you get the following error:

Windows 2000 could not start because of a computer disk hardware configuration problem. Could not read from selected boot disk. Check boot path and disk hardware. Please check the Windows 2000 documentation about hardware disk configuration and your hardware disk configuration and your hardware reference manuals for additional information.

You can try replacing the signature(#####) portions of the statement with multi(0) and the disk should boot fine in most cases.

No comments:

Post a Comment