NOVELL TECHNICAL INFORMATION DOCUMENT TITLE: Cold Boot Loader Patch DOCUMENT ID: TID000164 DOCUMENT REVISION: A DATE: 01JUL93 ALERT STATUS: Yellow INFORMATION TYPE: Symptom Solution README FOR: LOAD.EXE NOVELL PRODUCT and VERSION: NetWare Pre 3.11 and 2.2 ABSTRACT: This version of LOADER.DAT corrects a problem appearing on hard disks larger than 1024 cylinders, which resulted in a "Hole in file" failure. The file also allows nondedicated NetWare to function properly with a DCB. _________________________________________________________________ DISCLAIMER THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO NOVELL. NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY THIS INFORMATION. HOWEVER, THE INFORMATION PROVIDED IN THIS DOCUMENT IS FOR YOUR INFORMATION ONLY. NOVELL MAKES NO EXPLICIT OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION. _________________________________________________________________ Self-Extracting File Name: LOAD.EXE Files Included Size Date Time LOAD.TXT (This File) INSTOVL.TXT 1138 10-18-90 4:24p LOADER.DAT 6656 2-14-90 9:30a INSTOVL.OBJ 158520 12-07-89 10:39a The combination of LOADER.DAT and INSTOVL.OBJ resolves 2 problems associated with running Advanced and SFT NetWare 286 v2.15 on drives with more than 1024 cylinders. 1. A common symptom is the message "Warning! Bad Block Table Not Accessed." 2. "Hole in file" failure. When NetWare 286 2.15 rev C first shipped, most hard drives were designed with fewer than 1024 cylinders. Manufacturers at that time were simply complying with the ROM BIOS INT 13h call which allows 10 bits for cylinder specification, hence the 1024 cylinder limitation. Some manufacturers - supposedly designing with adapter "translation mode" in mind - began to sell drives with more than 1024 cylinders. PROBLEM Novell's cold boot loader uses INT 13H to read the disk information. That means that it can only access cylinders 0 - 1023. Therefore, when LOADER.DAT (shipped with NetWare 286 2.15c) reads sector 14 and picks up the pointer to the Relocation Table (located at the beginning of the HOT FIX area on the last 2% of the disk) it truncates the most significant bit(s) greater than 10. The obvious result is that it goes to some sector other than the one where the Relocation Table actually resides, and begins to read the table into memory. At this point, two things can happen: 1) It does not find a null flag indicating the end of the table and it hangs, or 2) by some twist of fate, it finds a null flag, where it expects one, and believes that it has successfully loaded the Relocation Table. In this case all of the bad block information will be erroneous. The loader will jump all over the drive trying to load unrelated blocks as if they were parts of the operating system. This may account for those cases where files scroll across the file server screen during boot up. LOADER ENHANCEMENT Once engineering identified this cold boot loader problem, they rewrote LOADER.DAT to recognize when the pointer information located in sector 14 was pointing to a Relocation Table beyond 1024 cylinders. The new loader simply acknowledges that the pointer was outside its capacity with the message "Warning! Bad Block Table Not Accessed." Having given the warning, the loader then proceeds to load the operating system in the event that the NET$OS.EXE has no re-directed blocks. If the operating system loads correctly, the presumption that it was not re-directed proves true. If the operating system does not successfully load, then the customer can presume that the OS was re-directed and another work-around must be employed. NETGEN ENHANCEMENT INSTOVL.OBJ dated 12/07/89 resolves this problem by avoiding re-direction during the NETGEN installation. With this enhancement, the bad blocks, if encountered, are skipped. WHAT ABOUT THE MESSAGE? Unless you want to boot from floppy diskette, you cannot avoid the "Warning! Bad Block Table Not Accessed" message. Remember, it only indicates that the pointer to the Relocation Table has a bit set greater than 10th bit. Q. How does NETGEN INSTALL and the NetWare OS access the full capacity of my drive if the cold boot loader can only access cylinders 0 - 1023? A. The disk driver, which is linked with the OS, or the hard drive controller may work in a "translation mode" to reach beyond the 1024 cylinder barrier. The cold boot loader does not have the same intelligence as the driver or controller. Consequently, until the OS is loaded the limitation exists. Q. When my OS fails to load from the hard drive (in this case it has worked in the past but now fails) what are my options? A. 1. You can boot from floppy. 2. You can install the LOADER.DAT (6656 bytes 2/14/90). If this new loader will not successfully boot NET$OS, boot from floppy and rename NET$OS.EXE to some other name so that the physical disk location is reserved. Then copy NET$OS from floppy diskette(s) to SYS:SYSTEM. This step may copy to a location which does not have bad blocks. This procedure can be repeated until it produces successful results or you run out of disk space. 3. When all of the above prove unsuccessful, you will want to try the INSTOVL.OBJ (158520 bytes 12/07/89). You will need to relink the file server utilities with this new OBJ file and then re-install the operating system. This should solve the problem. ÿ