Windows NT 4.0 Large HDD Information.
Introduction:
I see a lot of people having trouble installing NT 4.0 on large Hard Disk Drives. Some of the problems are caused by limitations of the ATAPI.SYS driver originally supplied with NT4.0 (and as a result only affect I.D.E. Hard Disk Drives, not S.C.S.I.), other problems are caused by restrictions of the file systems being used.
Four Microsoft Knowledgebase articles are often quoted in the microsoft.windows.nt.xx newsgroups relating to the problems:
- 119497 - Boot Partition Created During Setup Limited to 4 Gigabytes
- 138364 - Windows NT Partitioning Rules During Setup
- 197667 - Installing Windows NT on a Large IDE Hard Disk
- 224526 - Windows NT 4.0 Supports Maximum of 7.8-GB System Partition
I'd like to nominate some more articles to add to this list:
- 93496 - Windows NT File Size and Partition Size Limits
- 98080 - 1024 Cylinder Limit, How Windows NT Gets Drive Geometry
- 114841 - Windows NT Boot Process and Hard Disk Constraints
- 154052 - Explanation of x86 Boot Drive Limitations
- 161563 - How Windows NT Handles Drive Translation
- 197295 - Windows NT Does Not Boot to a Partition That Starts More Than 4 GB into Disk
(This problem was partially solved by Service Pack 5 and above)
Article 154052 - "Explanation of x86 Boot Drive Limitations" details WHY the rules in the other Knowledgebase articles apply. It is important that you understand these restrictions before attempting to install NT 4.0 on a machine.
Important Note: There is a typographical error in knowledgebase article 154052 - the corrected text (in red) is presented below:
Hardware Limitations
Most modern ATA (I.D.E.) controllers and hard disks use Logical Block Addressing (LBA) to bypass the limitations of the older Cylinder/Head/Sector (CHS) addressing scheme. CHS could address a maximum of 504MB, assuming 512 Byte sectors. (1024 Cylinders x 16 Heads x 63 Sectors x 512 Bytes/sector = 528,482,304 Bytes)
Since LBA uses a 28 bit address (as a sector count), the maximum accessible disk space using this scheme is 2^28 sectors, which equates to theoretical maximum of 137,438,953,472 Bytes (137GB), assuming 512 Byte sectors.
The latest version of the ATA standard (ATA-6) revised the LBA addressing scheme to 48 bits to support even larger disk sizes. (Theoretical maximum disk size = 144,115,188,075,855,872 Bytes = 131,072TB) The Microsoft supplied ATAPI.SYS driver DOES NOT correctly function on this 48 bit scheme. Attempting to create or use disk geometry above the 137GB barrier on NT4 without properly functional driver support creates a high risk of data loss - proceed with extreme caution.
Third party controller hardware, hard disk drives and NT4 drivers are available that can circumvent the 137GB limitation and allow 48 bit LBA addressing. Provided the driver support is correct, NT4 can fully utilise the space provided.
A totally new, open source Universal ATA driver for Windows NT3.51/NT4/2000/XP (With PATA/SATA support and LBA48 support) is available from Alter.org.ua This driver may provide superior performance on your hardware than the Microsoft supplied atapi.sys, and can fully utilise ATA-6 LBA48 (ie: >137GB) hard disk drives.
DO NOT believe reports that NT4 has insurmountable hard disk drive size limits. The NTFS file system can support a partition (and in fact single file) to a maximum size of 2^64 Bytes. (equals 16 ExaBytes or 18,446,744,073,709,551,616 Bytes) Other hardware and physical restrictions usually mean that a partition of this magnitude cannot be practically realised - but sizes large enough for the foreseeable storage needs of most modern systems can be easily created.
A Solution.
I find the simplest method of obtaining the correct result when installing NT 4.0 on large hard disks is to use a third party partitioning tool to configure some of the HDD partitions prior to starting NT4 installation. My usual choice is GDisk from Symantec Ghost packages - it isn't very friendly at all (it has a command line interface) but it seems to be able to cope with just about any disk geometry you can throw at it. I'm certain that many other partitioning tools could be used to perform this task - ask in the newsgroups if you are having trouble picking a suitable product.
Alternately, you can temporarily add the HDD to a functioning NT4 (must be SP5 or later) machine and use Disk Administrator to create your partition layout on the disk.
CAUTION: If you are using a Win2k machine or later DO NOT attempt to format any of the partitions created. Win2k and above use a newer form of NTFS which is incompatible with NT4. (at least until NT4 is advanced to at least SP5)
DO NOT try to use the partitioning features of an original NT4 setup floppy disk set / CD. It is not capable of dealing with HDDs that exceed the 7.8GB size limit and will cause BIG problems.
My normal procedure (assuming a blank HDD):
(If the following 'word picture' is difficult to visualise, see the 'Disk Administrator Map' below.)
- Make a <2GB primary FAT partition - this is the system partition for the machine.
- WARNING:
- This primary partition MUST BE formatted using the FAT16 file system.
- Although you can make this partition VERY small (NT system files ntldr and ntdetect.com only need about 1MB of space) be careful - some OSes and tools will format these extremely small partitions FAT12. NT4 cannot deal with the FAT12 file system and the NT4 setup and repair procedures will complain that the partition is 'Unformatted or Corrupt'.
- Likewise Win9x may attempt to format the partition using FAT32 - this also won't work. (Same Error message - the partition is 'Unformatted or Corrupt')
- The simplest method of making certain that the partition is formatted in FAT16 is to make it >32MB and <2048MB in size.
- Theoretically you can make this partition 4GB in size (non-standard 64k cluster size FAT16 system using the supplied NT install routines), but this will limit the ability of other OSes to see and work with this partition - so I don't recommend this option either. Knowledgebase article 127851 (Title: Problems Accessing FAT16 Drives Larger Than 2 GB) explains the problems associated in more detail.
- Make an extended partition occupying the remainder of the HDD space.
- Define the first logical drive in the extended partition as max 2GB (min probably about 400MB, or NT will outgrow it REAL fast), unformatted - this will be the boot partition for the machine.
- Notes:
- You can make this partition bigger than 2GB, but you then must use NTFS, and it will have to be pre-formatted prior to beginning your NT4 installation. (This is because NT4 initially formats blank partitions as FAT16 during installation, and then "converts" the partition to NTFS at the first reboot.)
- If you are pre-formatting the partition, ensure you use a version of NTFS that NT4.0 install can recognise - so don't try formatting the partition by putting the HDD in a Win2k or later machine!
- Ensure your system and boot partitions all fit within first 7.8GB of the HDD or the problems described in Knowledgebase article 224526 may surface.
- If you choose FAT file system (in step 6 below) the 2GB size limit rule still applies here.
- Leave the rest of the HDD alone for the moment.
- If you require to be able to 'Dual Boot' into DOS or other OS on the primary partition, install it now.
- Run NT4 install using the startup floppies and CD as normal. (or boot directly from the CD if capable) Specify the unformatted (or formatted if big NTFS) logical drive you created before in step 3 (ie: first logical drive in extended partition) as the location for NT4 files - this will be the boot partition. You can choose FAT or NTFS here - I usually go for NTFS to get the benefits of file security - the downside is the NTFS partition is more difficult to patch if you break NT4 and have to manually replace files.
- Once NT4 base installation is complete (the text setup stage is followed by a reboot, a GUI setup stage and another reboot to complete), immediately run SP6a - it will need a reboot after.
- Notes:
The following issues have been observed as possible failures at the first reboot following completion text setup stage of NT4 installation:
- Boot fails with the simple message "NTDetect Failed".
This appears to be a problem with the original NTDetect placed on the system partition during the NT4 text setup being unable to 'understand' a large HDD. If you use a third party boot manager (eg: XOSL) this problem is far more likely to appear. The solution is simple however - 'borrow' a copy of ntldr. and ntdetect.com from a working NT4 SP6a machine (copy to a floppy is the quickest method) and manually overwrite the versions the NT4 text setup places on the system partition. (You can do this by temporarily booting into MS-DOS, off a floppy disk if necessary) The machine will then successfully boot and press on to the GUI setup stage.
- Boot fails with the message "Invalid Boot Signature" or "Boot Record Signature AA55 Not Found".
This problem is explained by Knowledgebase Article 197295 - Windows NT Does Not Boot to a Partition That Starts More Than 4 GB into Disk. The solution is the same as above. (ie: replace ntdetect.com and ntldr. )
- Another issue which may arise is a Type "0x7B INACCESSIBLE_BOOT_DEVICE" STOP ERROR (Blue Screen of Death)
The problem here is brought about by the ATAPI system driver being unable to 'understand' the disk geometry. The solution again is simple - 'borrow' a copy of atapi.sys from a working NT4 SP6a machine (copy to a floppy is the quickest method) and manually overwrite the version the NT4 text setup places in the boot partition\system32\drivers folder. (eg: D:\WinNT\System32\Drivers) (You can do this by temporarily booting into MS-DOS, off a floppy disk if necessary) After atapi.sys is replaced with the SP6a version the machine will then successfully boot and press on to the GUI setup stage.
- Once NT4 (with SP6a) is up and running, you can now use WinNT disk administrator to allocate and format the other logical partitions (and allocate drive letters) however you like in the extended partition you created in step 2.
Here is a 'Disk Administrator Map' of what the finished layout should look like:
Other Options:
If you prefer, the system and boot partitions can be combined into a single partition. The same size rules still apply. I usually prefer the separate partitions approach merely because you can then have the boot partition formatted in NTFS and still have a system partition in FAT16 format. This makes repair of a failed system slightly simpler.
For descriptions of the correct terminology of system and boot partitions, see Microsoft Knowledgebase article:
100525 - Definition of System and Boot Partition
Conclusion:
As shown in the diagram above, ATA (I.D.E.) drives of sizes up to 137GB can be utilised fully as described. As explained previously, suitable hardware allows the breaking of the 137GB barrier, and the creation of extremely large storage solutions that can fully realise the potential of the NTFS file system.
Acknowledgements:
Thanks to Alter and Kiilk for additions and corrections on this page.
All promotional photographs and advertising material, corporate names and logos, product names, trade names, trademarks and registered trademarks are the property of their respective owners, and are acknowledged as such.
This information is maintained by ZCM Services, Australia. Whilst every care is taken in preparation, I accept no responsibility for errors or omissions. Use the information presented on this site AT YOUR OWN RISK.
Last Update April 7, 2010 at 8:35 PMAEST.