When a PC system is first powered on, the system runs a POST. If errors are encountered during the POST, you usually see a text error message displayed onscreen. Errors that occur very early in the POST might happen before the video card is initialized. These types of errors can't be displayed, so the system uses two other alternatives for communicating the error message. One is beepingthe system beeps the speaker in a specific pattern that indicates which error has occurred.
The alternative is to send a hexadecimal error code to I/O port address 80h, which can be read by a special card in one of the bus slots. When the ROM BIOS is performing the POST, in most systems the results of these tests are continuously sent to I/O Port 80h so they can be monitored by special diagnostics cards called POST cards (see Figure 5.11). These tests sometimes are called manufacturing tests because they were designed into the system for testing systems on the assembly line without a video display attached. Figure 5.11. A typical POST card with two-digit hexadecimal code display (left) and a POST card in operation (right).
The POST cards have a two-digit hexadecimal display used to report the number of the currently executing test routine. Before executing each test, a hexadecimal numeric code is sent to the port and then the test is run. If the test fails and locks up the machine, the hexadecimal code of the last test being executed remains on the card's display. Note The DVD accompanying this book contains an exhaustive listing of additional error codes, error messages, and BIOS POST codes for BIOSs from Phoenix, AMI, Award, Microid Research, and IBM. Many tests are executed in a system before the video display card is enabled, especially if the display is EGA or VGA. Therefore, many errors can occur that would lock up the system before the system could possibly display an error code through the video system. Because not all these errors generate beep codes, to most normal troubleshooting procedures, a system with this type of problem (such as a memory failure in Bank 0) would appear completely "dead." By using one of the commercially available POST cards, however, you can often diagnose the problem. These codes are completely BIOS dependent because the card does nothing but display the codes sent to it. Some BIOSs have more detailed POST procedures and therefore send more informative codes. POST cards can be purchased from JDR Microdevices or other sources and are available in both ISA and PCI bus versions. For simple but otherwise fatal errors that can't be displayed onscreen, most of the BIOS versions also send audio codes that can be used to help diagnose such problems. The audio codes are similar to POST codes, but they are read by listening to the speaker beep rather than by using a special card.
General BIOS Boot Text Error MessagesDuring the boot process, the bootstrap loader routine in the motherboard ROM BIOS reads the first physical sector of each of the bootable drives or devices, which is cylinder 0, head 0, sector 1 in CHS mode or logical block address 0 in LBA mode. The code from the first sector is loaded into RAM, and the last two bytes are checked to see whether they match a signature value of 55AAh. If the signature bytes match, that tells the ROM that the first sector contains a valid MBR and that the ROM can continue by transferring control to the MBR code. If the last two bytes of the first physical sector do not match 55AAh, the ROM continues by checking the first physical sector of the next bootable device in the boot sequence until it either finds one with a valid MBR or runs out of devices to check. If after checking all the drives or devices in the boot sequence, none are found to have the proper signature bytes indicating a valid MBR, the ROM invokes an interrupt 18h that calls a subroutine that displays an error message. The specific text or wording of the message varies according to the ROM manufacturer and version. The messages are detailed in the following section. ROM BIOS Messages Indicating Boot Failure (No Valid MBR Found)With no valid MBR or bootable device found, systems with a very old IBM BIOS display the infamous ROM BASIC interpreter, which looks like this: The IBM Personal Computer Basic Version C1.10 Copyright IBM Corp 1981 62940 Bytes free Ok
With no valid MBR or bootable device found, some systems with a modern IBM BIOS display a screen using text graphic characters that look similar to Figure 5.12. Figure 5.12. When the PC can't find the master boot record on a modern IBM BIOS, you are confronted with this graphic.
The meaning here is, "Insert a bootable floppy disk into the A: drive and press the F1 key." With no valid MBR or bootable device found, systems with an AMI BIOS display the following message: NO ROM BASIC - SYSTEM HALTED This message is confusing to some because it seems to point to a problem with ROM BASIC, which of course is not what it really means! The AMI ROM does not include a BASIC interpreter in the ROM (neither do any other ROMs except those found in very old IBM machines), so instead of jumping into BASIC or displaying a useful message indicating there are no bootable devices, it displays this confusing message. The real meaning is the same as for all these messages, which is to say that none of the bootable devices in the boot sequence were found to contain signature bytes indicating a valid MBR in their first physical sectors. With no valid MBR or bootable device found, systems with a Compaq BIOS display the following message: Non-System disk or disk error replace and strike any key when ready This is another confusing message because this very same (or similar) error message is contained in the DOS/Windows 9X/Me VBR and normally is displayed if the system files are missing or corrupted. So, if you see this message on a Compaq system, you can't be sure whether the problem is in the MBR, VBR, or the system files, which makes tracking down and solving the problem more difficult. With no valid MBR or bootable device found, systems with an Award BIOS display the following message: DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER So far, that appears to be the least confusing of these messages. You don't need a secret decoder ring to figure out what it is really trying to say. With no valid MBR or bootable device found, systems with a Phoenix BIOS display either this message: No boot device available - strike F1 to retry boot, F2 for setup utility or this one: No boot sector on fixed disk - strike F1 to retry boot, F2 for setup utility Which of these two messages you see depends on whether no boot devices were found or readable, or a boot sector could be read but was found not to have the proper signature bytes. Although the message displayed varies from BIOS to BIOS, the causes are the same for all of them. Several things can cause these messages to be displayed, and many of them relate to the MBR. The primary causes are disks that are new (have never been partitioned) or that have had the MBR corrupted. The MBR, including the signature bytes, is written to the hard disk by the FDISK, DISKPART, or Disk Management program. When a drive is new or freshly low-level formatted, all the sectors are initialized with a default pattern of bytes. At that point, the first sector contains a test pattern or all 0s and the last two bytes of the sector do not contain the 55AAh signature. In other words, these ROM error messages are exactly what you see if you attempt to boot from a new hard disk or one that has been low-level formatted but not yet partitioned. Now consider another situation that can cause these messages. If the signature bytes are correct, the BIOS executes the MBR code, which performs a test of the Boot Indicator bytes in each of the four partition table entries. These bytes are at offset 446 (1BEh), 462 (1CEh), 478 (1DEh), and 494 (1EEh), respectively. They are used to indicate which of the four possible primary partition table entries contains an active (bootable) partition. A value of 80h at any of these byte offsets indicates that the particular table contains the active partition, whereas all other values must be 00h. If more than one of these bytes is 80h (indicating multiple active partitions), or any of the byte values is anything other than 80h or 00h, you see the following error message: Invalid partition table If all these four boot indicator bytes are 00hwhich indicates that no active (bootable) partitions existthen the MBR returns control to the motherboard ROM. Also, if no other bootable devices exist, interrupt 18h is called and displays the same error messages as listed earlier. This is exactly what occurs if you were to remove the existing partitions from a drive but had not created new partitions on the drive, or if you had failed to make one of the partitions Active (bootable) during partitioning before rebooting your system. Another cause for these errors can occur with hard disks that are 8.4GB in size or less, which run in CHS mode. The problem is caused by tampering with the translation mode in the system BIOS for drives less than 8.4GB in size. Translation is used by drives between 528MB and 8.4GB, which alters the reported CHS geometry of the drive into a format that enables the entire disk (up to 8.4GB) to be used by DOS and Windows. Typically, three settings exist for translation: It can be disabled (often indicated by a setting of normal) or enabled using either CHS or LBA values. Translation using CHS values is often indicated by a setting of large, and translation using LBA values is indicated by a setting of LBA. If a drive is partitioned and formatted with LBA translation and the setting is later changed to CHS (often indicated as large), the bootstrap loader in the BIOS translates drive sector locations differently and might not properly load the MBR or make the proper jump from the MBR to the VBR of the bootable volume. This can cause one of the previously discussed error messages to appear, or it can cause the MBR to display the following message: Missing operating system Thus, if you see such errors on a system with a hard drive between 528MB (504MiB) and 8.4GB (7.9GiB), be sure to check the translation settings for the drive. On some of the older AMI BIOS Hi-Flex and WinBIOS (graphical) versions, the translation mode setting is not on the same screen as the hard disk setup but is buried in the Advanced or Built-in Peripherals setup screens where it can be turned off by autoconfiguring BIOS setup options. Caution Although 32-bit versions of Windows will not boot if the boot hard disk is changed from LBA mode back to Normal mode, a dangerous situation can take place if a hard disk greater than 528MB (504MiB) is partitioned with MS-DOS and LBA translation mode is turned off afterward. In such cases, if the hard disk needs to use more than the maximum of 1,024 cylinders supported by Normal mode to store new information, the hard disk loops back to the beginning of the disk and overwrites the master boot record! All the data on the drive is inaccessible until the MBR is restored, along with the partition tables it contained. To learn more about the MBR and partition tables, including techniques for recovery, refer to Upgrading and Repairing Windows. |