support.microsoft.com/support/kb/articles/Q114/8/41.ASP -> support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q114/8/41.ASP&NoWebContent=1
Discussion groups and Forums about specific Microsoft products, technologies, and services. This article was previously published under Q114841 SUMMARY This article describes hard disk size constraints under Windows NT and Windows NT Advanced Server. To understand these constraints, it is necessary to understand both the data structures that define the disk partitions and the interactions between Windows NT and the system BIOS interface used during the hardware and operating system's boot process. MORE INFORMATION The Partition Table The data structure that describes the hard disk's partitions is known as the partition table. Each entry has 10 fields that describe the following attributes of a partition: FIELD SIZE ----------------- -------- Boot Flag 1 byte Starting Side 1 byte Starting Cylinder 10 bits Starting Sector 6 bits System Indicator 1 byte Ending Side 1 byte Ending Cylinder 10 bits Ending Sector 6 bits Relative Sectors 4 bytes Number of sectors 4 bytes System Indicator The System Indicator is used to specify the type of file system that is contained in the partition. Some common values include: VALUE FILE SYSTEM ----- ----------- 0x0B Primary Fat32 Partitions up to 2047 GB 0x0C Same as 0x0B, uses Logical Block Address Int 0x13 extensions 0x0E Same as 0x06, uses Logical Block Address Int 0x13 extensions 0x0F Same as 0x05, uses Logical Block Address Int 0x13 extensions 0x05 Extended partition 0x06 BIGDOS File Allocation Table (FAT) format. For example, an FT FAT partition has a System Indicator value of 0x86 and an FT NTFS partition has a System Indicator value of 0x87. When a member of an FT set is disabled, Windows NT sets the two highest bits. For example, a disabled FAT partition has a System Indicator value of 0xC6 and a disabled FT NTFS partition has a System Indicator value of 0xC7. Boot Flag The Boot Flag indicates which partition is active or bootable. The Boot Flag value for the active partition is set to 0x80. The Master Boot Record (described later in more detail) searches for this flag to locate the active boot sector. Starting and Ending Side, Cylinder, and Sector The Starting and Ending Side, Cylinder and Sector fields are very important with respect to how Windows NT interacts with the disk. The maximum number of Sides (read/write heads) that can be represented with 1 byte is 256. The maximum number of Cylinders that can be represented with 10 bits is 1024. The maximum number of Sectors that can be represented with 6 bits is 63 because Sectors start counting with 1 (versus Cylinders and Sides which start counting with 0). The Cylinder value, represented by 10 bits, is too large to fit into a single byte. To store 10 bits, two bits are taken from the byte which stores the 6 bit Sector value. This is particularly important because the same field sizes are employed by the INT 13 BIOS interface which defines how the system BIOS interacts with the hard disk. Relative Sectors The Relative Sectors represents the offset from the beginning of the partition table to the beginning of the partition, counting by sectors. Number of Sectors The Number of Sectors represents the total number of sectors in the partition. NOTE: The Relative Sectors and Number of Sectors fields are each 32 bits in size. Under most conditions, together they contain the same information as Starting and End Side, Cylinder, and Sector values that are represented with a total of 24 bits for Starting and 24 bits for Ending. Windows NT Boot Process On Intel-based computers, the system BIOS controls the initial operating system boot process. After the initial Power On Self Test (POST) when hardware components are initialized, the system BIOS identifies the boot device. In the case of the hard disk, the BIOS reads the first physical sector on the disk, called the Master Boot Sector, and loads an image of it into memory. The BIOS then transfers execution to that image of the Master Boot Sector. The Master Boot Record contains the partition table and a small amount of executable code. The executable code examines the partition table and identifies the active (or bootable) partition. The Master Boot Record then finds the active partition's starting location on the disk and loads an image of its first sector, called the Boot Sector, into memory. The Master Boot Record then transfers execution to that Boot Sector image. Whereas the Master Boot Record is generally operating system independent, the Boot Sector of the active partition is dependent on both the operating system and the file system. In the case of Windows NT and Windows NT Advanced Server, the Boot Sector is responsible for locating the executable file, NTLDR, which continues the boot process. The only disk services available to the Boot Sector code at this stage of system boot up are provided by the BIOS INT 13 interface. The Boot Sector code must be able to find NTLDR and file system data structures such as the root directory, the File Allocation Table (FAT) in the case of an MS-DOS FAT volume or the Master File Table in the case of an NTFS volume. These must be present within the area of the disk addressable by the 24-bit side, cylinder, sector structure used by the BIOS INT 13 interface and the partition table. NOTE: Other constraints may apply depending on the computer hardware and file system. This provides eight additional bits to represent sectors. These additional bits allow partitions to be described with up to 2^32 sectors. With a standard sector size of 512 bytes, the 32 bits used to represent the Relative Offset and Number of Sectors translates into a maximum possible partition size of 2 terabytes or (2,199,023,255,552 bytes). When partitioning a disk, Windows NT will write the correct values to the partition table fields whenever possible. When the total number of sectors in a partition exceeds the number which can be described in Side, Cylinder, Sector notation, Windows NT writes the maximum permitted values to these fields in the partition table. This prevents the system BIOS from attempting to calculate the Starting and Ending addresses based on erroneous data. If the extended sector translation feature is disabled on the adapter, it might report the following disk characteristics to the system BIOS: Cylinders: 1023, Sides: 64, Sectors: 32 which translates to about 1 gigabyte. Once Windows NT is up and running, it uses its SCSI drivers to directly interact with the disk without using the BIOS INT 13 interface. So, during normal operation the BIOS parameters are largely unimportant. However, the differences are critical if the disk is to be formatted with a single partition and used as the boot drive. Without extended translation, Windows NT notices that the disk is larger than the BIOS parameters indicate. When Windows NT partitions the drive during initial installation, the starting and ending sector addresses will be filled in with their maximum possible values. With extended translation, Windows NT will be able to write valid values for the starting and ending addresses into the partition table, and thus, the partition remains bootable. These error messages may appear when extended translation is not enabled and the Master Boot Record is unable to locate the Boot Sector of the active partition: Error loading operating system. File Systems FAT and HPFS both have internal limits of 4 GB due to the fact that they use 32-bit fields to store file sizes. NTFS uses 64-bit fields for all sizes, permitting its data structures to handle volumes up to 2^64 bytes (16 exabytes or 18,446,744,073,709,551,616 bytes). This value is the theoretical limit for the NTFS file system. Practical limits having to do with the maximum allowable partition size described above limit the size of an NTFS partition to approximately 2 terabytes. Because the 32-bit fields of the partition table refer to the number of sectors in the partition, disks with larger sector sizes translate into larger permissible partition sizes. Currently Windows NT supports sector sizes up to 4 Kilobytes. With 4KB sectors, Windows NT can support a 16 terabyte partition. As new hardware or software schemes become available, NTFS will ...
|