Module compatibility: What's this? |
Materials: Working complete PC Blank Diskette Student Diskette, "New Boot A Ver 2.0+" Student CD-ROM, "Room 6359" Objectives: The student will become familiar with: The Windows NT family boot process, How to create a floppy diskette that will launch the OS on the HDD, The function of the BOOT.INI file, How to edit the BOOT.INI file, The BOOT.INI ARC Syntax. Competency: The student will learn how to create a diskette that will launch the OS on the HDD when the low level boot sequence structures have become corrupt. The student will become familiar with the BOOT.INI file's function, and the ARC syntax in order to create an NTLDR boot menu that will allow the diskette to launch an OS residing on any partition of an HDD on the local system. |
This floppy is designed specifically for supporting the RAID-1 Mirror created in this exercise. Below is an explanation of the ARC (Advanced RISC Computing) syntax used in the BOOT.INI file. See also the Diagnostic Boot Methods or Windows 2000 and the BOOT.INI Switches for related information.
First open My Computer and right click on the 3 ½" Floppy Drive A: icon. In the popup menu that appears, choose "Format..."
While Format can do error checking of the integrity of the diskette it is better to use CHKDSK.EXE for this since it is a more powerful utility and this is a mission critical diskette. Therefore place a check in the "Quick Format" box:
Upon clicking the "Start" button this warning message will appear:
Click "OK" and the progress bar should move quickly as the system only rewrites a new empty FAT12 and root directory to the diskette. Then issues this message:
Click "OK" Now the floppy diskette should be thoroughly examined by at least CHKDSK.EXE. Open a DOS box and type in the command directing it to check the A: drive. When complete the screen looks like this:
C:\WINDOWS>chkdsk a:
The type of the file system is FAT.
Volume Serial Number is 2D4C-0E01
Windows is verifying files and folders...
File and folder verification is complete.
Windows has checked the file system and found no problems.
1,457,664 bytes total disk space.
1,457,664 bytes available on disk.
512 bytes in each allocation unit.
2,847 total allocation units on disk.
2,847 allocation units available on disk.
C:\WINDOWS>_
Now open the root of the C: drive and be sure that hidden files have been made visible. (See Windows 98 Show All Files tutorial but the property sheet for this is found in Tools > Folder Options... for Windows 2000). Select the files "ntldr", "boot.ini", and "ntdetect.com" from the root of the C: drive. You must include the file "ntbootdd.sys" if it exists (indicating that a SCSI controller needs this driver in order for the system to boot up) and right click on any one of the selected files and select "Send to 3 ½" Floppy Drive A:" in the popup menu that appears:
After the files are copied to the floppy diskette, open the 3 ½" Floppy Drive A: and select the "boot.ini" file. It may be "Read-Only" so change it if necessary. (See the Windows 98 Modifying MSDOS.SYS tutorial for more details). Now right click it and select "Open" The file will appear in Notepad.exe:
Copy and paste the line below [operating systems] so that you have two identical lines in the section. Then make the changes to it so that it reads the same as the line highlighted in the next picture. The system is using a second IDE drive configured as the Secondary Master that is the mirror drive. There is no Primary Slave HDD so this is the second drive in the BIOS discovery order. See the ARC Syntax rules below for more information. Save these changes and exit Notepad.exe.
At this point the boot diskette has been completed and should be able to successfully boot up the operating system from either the original C: drive or the mirror on the other drive. See also the tutorial on Creating a mirror of the C: drive.
For x86 based systems the Windows NT/2000/XP operating systems rely during the boot sequence on reading the BOOT.INI file in order to find and load the operating system starting with the file NTOSKRNL.EXE. The syntax used to specifiy the location of the operating system kernel is called the ARC (Advanced RISC Computing) syntax. While designed for RISC machines a variant has been developed for use on x86 based systems. The two major ARC pathtypes that can be specified in the BOOT.INI are: multi(x) and scsi(x).
multi(x)
When the ARC path begins with multi(x), NTLDR will rely on the BIOS INT13 calls to access the drive and find the operating system files and load them into memory. This means that SCSI host controllers that load INT13 BIOS handlers during the POST may function using the multi(x) syntax. The basic test for this functionality is that if DOS will boot off of the SCSI drive without having to load a driver in order to access the drive, then that drive's SCSI host controller is loading an INT13 BIOS handler during the POST. If DOS must load a driver in order to access the drive, then the multi(x) path will probably fail.
The full multi(x) path looks like this: multi(x)disk(y)rdisk(z)partition(z)\WINNT. Each of these parts of the path have a specific meaning which in turn dictates what values should be used for x, y, z, and w.
Here are examples of the usage of multi(x) paths:
scsi(x)
Using the scsi(x) syntax the x refers to the controller and is significant. It should also be noted that NTLDR will immediately load and use the real mode driver NTBOOTDD.SYS which must be in the root of the boot disk where NTLDR itself is located. This file is the expanded and renamed *.SYS driver provided by the controller's manufacturer or one that is provided by Microsoft in the installation (I386) folder for the controller. So using the scsi(x) syntax instructs NTLDR to access the boot drive by loading this driver and then make access to the drives through it. If there are more than one SCSI controller installed on the system, then each will be numbered starting with zero. It is not clear in the documentation if: all SCSI controllers on the system receive a number, or if only supported (by the driver) controllers are the only ones that will be enumerated. It is also not clear from the documentation what controller will be enumerated first (i.e. which controller will be numbered zero?) Therefore, under these circumstances it would be wise to put several different ARC path instructions into the BOOT.INI that will allow the operator to attempt to boot from any of the choices until one works (Ugh!).
The full scsi(x) ARC path syntax is: scsi(x)disk(y)rdisk(z)partition(w)\WINNT.
Here are a few examples of scsi(x) ARC paths:
Copyright©2000-2004 Brian Robinson ALL RIGHTS RESERVED