FAT File System
The file allocation table or FAT stores information about the clusters on the disk in a table. There are three different varieties of this file allocation table, which vary based on their size. The system utility that you use to partition the disk will normally choose the correct type of FAT for the volume you are using, but sometimes you will be given a choice of which you want to use. Since each cluster has one entry in the FAT, and these entries are used to hold the cluster number of the next cluster used by the file, the size of the FAT is the limiting factor on how many clusters any disk volume can contain. The following are the three different FAT versions now in use:
(1) FAT12: The oldest type of FAT uses a 12-bit binary number to hold the cluster number. A volume formatted using FAT12 can hold a maximum of 4086 clusters, which is 2^12 minus a few values (to allow for reserved values to be used in the FAT). FAT12 is therefore most suitable for smaller volumes, and is used on floppy disks and hard disk partitions smaller than about 16 MB.
(2) FAT16: The FAT used for most hard disk partitions uses a 16-bit binary number to hold cluster numbers. When you see someone refer to a "FAT" volume generically, they are usually referring to FAT16, because it is the de facto standard for hard disks. A volume using FAT16 can hold a maximum of 65526 clusters, which is 2^16 less a few values (again for reserved values in the FAT). FAT16 is used for hard disk volumes ranging in size from 16 MB to 2 GB.
(3) FAT32: The newest FAT type, FAT32 is supported by Windows 95's OEM SR2 release, as well as Windows 98. FAT32 uses a 28-bit binary cluster number--not 32, because 4 of the 32 bits are "reserved". 28 bits is still enough to permit ridiculously huge volumes--FAT32 can theoretically handle volumes with over 268 million clusters, and will support (theoretically)drives up to 2 TB in size. However to do this the size of the FAT grows very large.
[Note]:
On volumes with fewer than 32,680 sectors, the cluster sizes can be up to 8 sectors per cluster. In this circumstance, the format program creates a 12-bit FAT. Volumes less than 16 MB are usually formatted for a 12-bit FAT, but the exact size depends on the disk geometry. The disk geometry also determines when a larger cluster size is needed because the number of clusters on the volume must fit into the number of bits used by the file system managing the volume. Therefore, you might have a 33-MB volume that has only 1 sector per cluster.
FAT12 is the original implementation of FAT and is intended for very small media. The file allocation table for FAT12 is smaller than the file allocation table for FAT16 and FAT32, because it uses less space for each entry, leaving more space for data. All 1.44-MB 3.5-inch floppy disks are formatted with FAT12.
FAT12 | FAT16 | FAT32 | ||||
Volume Size | Sectors Per Cluster | Cluster Size | Sectors Per Cluster | Cluster Size | Sectors Per Cluster | Cluster Size |
360 KB, 720 KB | 2 | 1 KB | Not supported | Not supported | Not supported | Not supported |
1.2 MB, 1.44 MB | 1 | 512 bytes | ||||
2.88 MB – 10 MB | 1 | 512 bytes | ||||
10 MB – 16 MB | 8 | 4 KB | ||||
16 MB – 32 MB | Not supported | Not supported | 1 | 512 bytes | ||
33 MB – 64 MB | 2 | 1 KB | 512 bytes | |||
64 MB – 128 MB | 4 | 2 KB | 1 KB | |||
128 MB – 256 MB | 8 | 4 KB | 2 KB | |||
256 MB – 512 MB | 16 | 8 KB | 4 KB | |||
512 MB – 1024 MB | 32 | 16 KB | 4 KB | |||
1024 MB – 2048 MB | 64 | 32 KB | 4 KB | |||
2 GB – 4 GB | 128 | 64 KB | ||||
4 GB – 8 GB | Not supported | Not supported | 8 | 4 KB | ||
8GB – 16 GB | 16 | 8 KB | ||||
16 GB – 32 GB | 32 | 16 KB | ||||
32 GB – 2 TB | Not supported | Not supported |
The following are some file system size limitations that should also be considered:
1.)FAT volumes smaller than 16 MB are formatted as FAT12.
2.)FAT16 volumes larger than 2 GB are not accessible from computers running MS-DOS, Windows 95, Windows 98, and many other operating systems.
3.)While FAT32 volumes can theoretically be as large as 2 terabytes, Windows 2000 limits the maximum size FAT32 volume that it can format to 32 GB.
However, Windows 2000 can read and write to larger FAT32 volumes formatted
by other operating systems.
4.)The implementation of FAT32 in Windows 2000 limits the maximum number of clusters on a FAT32 volume that can be mounted by Windows 2000 to 4177918. This is the maximum number of clusters on a FAT32 volume that can be formatted by Windows 98.
Now we are ready to detect which file system is used
(1)If NumberOfClusters < 4087, then FAT12 is used.
(2)If 4087 <= NumberOfClusters < 65,527, then FAT16 is used.
(3)If 65,527 <= umberOfClusters < 268,435,457 then, FAT32 is used.
(4)Otherwise, none of the above is used.
illustrates how FAT12/FAT16 maps clusters on a volume. The file allocation tables identify each cluster in the volume as one of the following:
The only difference between the root folder and other folders is that the root folder is at a specified location and has a fixed number of entries (for a hard disk). The root folder exists at a specified location and has the maximum number of available entries fixed at 512. The maximum number of entries on a floppy disk depends on the size of the disk.
[Note]:
Each folder and 8.3 file name in the root folder counts as an entry. For example, since the maximum number of entries is fixed at 512, if you have 100 folders in the root folder, you can only create 412 more files or folders in the root folder. If those folders or files use names longer than the 8.3 format, fewer files and folders can be created.
The information in the folder is used by all operating systems that support FAT. Windows 2000 can store additional timestamps in a FAT folder entry. These timestamps show when the file was created or last accessed.
Because all entries in a folder are the same size, the attribute byte for each entry in a folder describes what kind of entry it is. For example, one bit indicates that the entry is for a subfolder and another bit marks the entry as a volume. Typically, the operating system controls the settings of these bits.
The attribute byte includes four bits that can be turned on or off by the user — archive, system, hidden, and read-only.
File Description Block, FDB
Folders contain a 32-byte entry for each file and folder they contain. The entry includes the following information:
(1) Name in 8.3 format (11 bytes)
(2) Attribute (1 byte)
(3) Create time (3 bytes)
(4) Create date (2 bytes)
(5) Last access date (2 bytes)
(6) Last modified time (2 bytes)
(7) Last modified date (2 bytes)
(8) Starting cluster number in the file allocation table (2 bytes)
(9) File size (4 bytes)
[Note]:
Three bytes in each entry are held in reserve.
Introduction to FAT
In FAT file system, storage device is of a fixed size. It is logically divided into chunks of data of equal size called clusters . Any file takes up a natural number of clusters. Disk map, called File Allocation Table (FAT), is located at a known position on disk. FAT is an array of the entries of equal size. Number of entries is equal to number of clusters on disk, so there exists a unique relationship between FAT entries and clusters. FAT file chain. Although several values may serve as EOF, only -1 is used by DOS. Bad clusters are physically They should not be used by anyone but their creator. In every FAT, the very first entry is reserved "DOC", "INTEL", and "INTEL386.TXT" in this order. The first token tells us to select the first primary the entry named "DOC". As I said earlier, one of the fields of this entry is FirstCluster. Now we know entry is one of the following:
Some of the values in the table are in the BPB. Let us calculate the rest of them:
(1)RootStart = ReservedSectors + NumberOfFATs * SectorsPerFAT
(2)ClustersStart = RootStart + (RootEntries * 32) / BytesPerSector
(3)NumberOfClusters = 2 + (NumberOfSectors - ClustersStart) / SectorsPerCluster
To convert cluster address to LBA address use the formula
LBA = ClustersStart + (Cluster - 2) * SectorsPerCluster
Disk Sectors Critical to Startup
The two sectors critical to starting your computer are the master boot record (MBR), which is always located at sector 1 of cylinder 0, head 0, the first sector of a hard disk, and the boot sector, which resides at sector 1 of each volume. These sectors contain both executable code and the data required to run the code.
Master Boot Record
The MBR, the most important data structure on the disk, is created when the disk is partitioned. The MBR contains a small amount of executable code called the master boot code, the disk signature, and the partition table for the disk. At the end of the MBR is a 2-byte structure called a signature word or end of sector marker, which is always set to 0x55AA. A signature word also marks the end of an extended boot record (EBR) and the boot sector.
Master Boot Code
The master boot code performs the following activities:
(1) Scans the partition table for the active partition.
(2) Finds the starting sector of the active partition.
(3) Loads a copy of the boot sector from the active partition into memory.
(4) Transfers control to the executable code in the boot sector.
If the master boot code cannot complete these functions, the system displays one of the following error messages:
(1) Invalid partition table.
(2) Error loading operating system.
(3) Missing operating system.
[Note]:
There is no MBR on a floppy disk. The first sector on a floppy disk is the boot sector. Although every hard disk contains an MBR, the master boot code is used only if the disk contains the active, primary partition.
Boot Sector
The boot sector, located at sector 1 of each volume, is a critical disk structure for starting your computer. It contains executable code and data required by the code, including information that the file system uses to access the volume. The boot sector is created when you format a volume. At the end of the boot sector is a two-byte structure called a signature word or end of sector marker, which is always set to 0x55AA. On computers running Windows 2000, the boot sector on the active partition loads into memory and starts Ntldr, which loads the operating system.
Boot Sector Startup Processes
Computers use the boot sector to run instructions during startup. The initial startup process is summarized in the following steps:
(1) The system BIOS and the CPU initiate the power-on self test (POST).
(2) The BIOS searches for a boot device (typically a disk).
(3) The BIOS loads the first physical sector of the boot device into memory and transfers CPU execution to that memory address.
(4) If the boot device is on a hard disk, the BIOS loads the MBR. The master boot code in the MBR loads the boot sector of the active partition, and transfers CPU execution to that memory address. On computers that are running Windows 2000, the executable boot code in the boot sector finds Ntldr, loads it into memory, and transfers execution to that file.
If there is a floppy disk in drive A, the system BIOS loads the first sector (the boot sector) of the disk into memory. If the disk is startable — formatted by MS-DOS with core operating system files applied — the boot sector loads into memory and uses the executable boot code to transfer CPU execution to Io.sys, a core MS-DOS operating system file. If the floppy disk is not bootable, the executable boot code displays an error message such as:
(1) Non-System disk or disk error.
(2) Replace and press any key when ready.
Components of a Boot Sector
The MBR transfers CPU execution to the boot sector, so the first three bytes of the boot sector must be valid, executable x86-based CPU instructions. This includes a jump instruction that skips the next several nonexecutable bytes.
Following the jump instruction is the 8-byte OEM ID, a string of characters that identifies the name and version number of the operating system that formatted the volume. To preserve compatibility with MS-DOS, Windows 2000 records "MSDOS5.0" in this field on FAT16 and FAT32 disks. On NTFS disks, Windows 2000 records "NTFS."
Physical Sector: Cyl 0, Side 1, Sector 1 (Boot Sector)
0 1 2 3 4 5 6 7 8 9 A B C D E F
00000000: EB 3C 90 4D 53 44 4F 53 - 35 2E 30 00 02 40 01 00 .<.MSDOS5.0..@..
00000010: 02 00 02 00 00 F8 02 00 – 10 00 20 00 10 00 00 00 ........?.@.?...
00000020: 00 00 00 00 80 00 29 A8 - 8B 36 52 4E 4F 20 4E 41 ..>...)..6RNO NA
00000030: 4D 45 20 20 20 20 46 41 - 54 31 36 20 20 20 33 C0 ME FAT16 3.
00000040: 8E D0 BC 00 7C 68 C0 07 - 1F A0 10 00 F7 26 16 00 ....|h......&...
00000050: 03 06 0E 00 50 91 B8 20 - 00 F7 26 11 00 8B 1E 0B ....P.. ..&.....
00000060: 00 03 C3 48 F7 F3 03 C8 - 89 0E 08 02 68 00 10 07 ...H........h...
00000070: 33 DB 8F 06 13 02 89 1E - 15 02 0E E8 90 00 72 57 3.............rW
00000080: 33 DB 8B 0E 11 00 8B FB - 51 B9 0B 00 BE DC 01 F3 3.......Q.......
00000090: A6 59 74 05 83 C3 20 E2 - ED E3 37 26 8B 57 1A 52 .Yt... ...7&.W.R
000000A0: B8 01 00 68 00 20 07 33 - DB 0E E8 48 00 72 28 5B ...h. .3...H.r([
000000B0: 8D 36 0B 00 8D 3E 0B 02 - 1E 8F 45 02 C7 05 F5 00 .6...>....E.....
000000C0: 1E 8F 45 06 C7 45 04 0E - 01 8A 16 24 00 EA 03 00 ..E..E.....$....
000000D0: 00 20 BE 86 01 EB 03 BE - A2 01 E8 09 00 BE C1 01 . ..............
000000E0: E8 03 00 FB EB FE AC 0A - C0 74 09 B4 0E BB 07 00 .........t......
000000F0: CD 10 EB F2 C3 50 4A 4A - A0 0D 00 32 E4 F7 E2 03 .....PJJ...2....
00000100: 06 08 02 83 D2 00 A3 13 - 02 89 16 15 02 58 A2 07 .............X..
00000110: 02 A1 13 02 8B 16 15 02 - 03 06 1C 00 13 16 1E 00 ................
00000120: F7 36 18 00 FE C2 88 16 - 06 02 33 D2 F7 36 1A 00 .6........3..6..
00000130: 88 16 25 00 A3 04 02 A1 - 18 00 2A 06 06 02 40 3A ..%.......*...@:
00000140: 06 07 02 76 05 A0 07 02 - 32 E4 50 B4 02 8B 0E 04 ...v....2.P.....
00000150: 02 C0 E5 06 0A 2E 06 02 - 86 E9 8B 16 24 00 CD 13 ............$...
00000160: 0F 83 05 00 83 C4 02 F9 - CB 58 28 06 07 02 76 11 .........X(...v.
00000170: 01 06 13 02 83 16 15 02 - 00 F7 26 0B 00 03 D8 EB ..........&.....
00000180: 90 A2 07 02 F8 CB 42 4F - 4F 54 3A 20 43 6F 75 6C ......BOOT: Coul
00000190: 64 6E 27 74 20 66 69 6E - 64 20 4E 54 4C 44 52 0D dn't find NTLDR.
000001A0: 0A 00 42 4F 4F 54 3A 20 - 49 2F 4F 20 65 72 72 6F ..BOOT: I/O erro
000001B0: 72 20 72 65 61 64 69 6E - 67 20 64 69 73 6B 0D 0A r reading disk..
000001C0: 00 50 6C 65 61 73 65 20 - 69 6E 73 65 72 74 20 61 .Please insert a
000001D0: 6E 6F 74 68 65 72 20 64 - 69 73 6B 00 4E 54 4C 44 nother disk.NTLD
000001E0: 52 20 20 20 20 20 20 00 - 00 00 00 00 00 00 00 00 R .........
000001F0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 55 AA ..............U.
FAT12/FAT16 Boot Sector
Table 32.6 describes the boot sector of a volume formatted with the FAT12/FAT16 file system.
Table 32.6 Boot Sector Sections on a FAT12/FAT16 Volume
Byte Offset | Field Length | Field Name |
0x00 | 3 bytes | Jump Instruction |
0x03 | 8 bytes | OEM ID |
0x0B | 25 bytes | BPB |
0x24 | 26 bytes | Extended BPB |
0x3E | 384 bytes | BootStrap Code |
0x01BE | 64 bytes | Partition Table (Hard Disk Only) |
0x01FE | 2 bytes | End of Sector Marker |
Tables 32.7 and 32.8 illustrate the layout of the BPB and the extended BPB for FAT12/FAT16 volumes. The sample values correspond to the data in this example.
Table 32.7 BPB Fields for FAT12/FAT16 Volumes
Byte Offset | Field Length | Value | Field Name and Definition |
0x0B | 2 bytes | 0x0002 | Bytes Per Sector. The size of a hardware sector. Valid decimal values for this field are 512, 1024, 2048, and 4096. For most disks used in the United States, the value of this field is 512. |
0x0D | 1 byte | 0x40 | Sectors Per Cluster. The number of sectors in a cluster. Because FAT16 can track only a limited number of clusters (up to 65,536), large volumes are supported by increasing the number of sectors per cluster. The default cluster size for a volume depends on the volume size. Valid decimal values for this field are 1, 2, 4, 8, 16, 32, 64, and 128. Values that lead to clusters larger than 32 KB (BytesPerSector * SectorsPerCluster) can cause disk and software errors. |
0x0E | 2 bytes | 0x0100 | Reserved Sectors. The number of sectors preceding the start of the first FAT, including the boot sector. The value of this field is always 1. |
0x10 | 1 byte | 0x02 | Number of FATs. The number of copies of the FAT on the volume. The value of this field is always 2. |
0x11 | 2 bytes | 0x0002 | Root Entries. The total number of 32-byte file and folder name entries that can be stored in the root folder of the volume. On a typical hard disk, the value of this field is 512. One entry is always used as a Volume Label, and files and folders with long names use multiple entries per file. The largest number of file and folder entries is typically 511 but entries run out before you reach that number if long file names are used. |
0x13 | 2 bytes | 0x0000 | Small Sectors. The number of sectors on the volume represented in 16 bits (< 65,536). For volumes larger than 65,536 sectors, this field has a value of zero and the Large Sectors field is used instead. |
0x15 | 1 byte | 0xF8 | Media Descriptor. Provides information about the media being used. A value of 0xF8 indicates a hard disk and 0xF0 indicates a high-density 3.5-inch floppy disk. Media descriptor entries are a legacy of MS-DOS FAT16 disks and are not used in Windows 2000. |
0x16 | 2 bytes | 0xFC00 | Sectors Per FAT. The number of sectors occupied by each FAT on the volume. The computer uses this number and the number of FATs and hidden sectors, to determine where the root directory begins. The computer can also determine where the user data area of the volume begins based on the number of entries in the root directory (512). |
0x18 | 2 bytes | 0x3F00 | Sectors Per Track. Part of the apparent disk geometry used on a low-level formatted disk |
0x1A | 2 bytes | 0x4000 | Number of Heads. Part of the apparent disk geometry used on a low-level formatted disk. |
0x1C | 4 bytes | 0x3F000000 | Hidden Sectors. The number of sectors on the volume before the boot sector. This value is used during the boot sequence to calculate the absolute offset to the root directory and data areas. |
0x20 | 4 bytes | 0x01F03E00 | Large Sectors. If the value of the Small Sectors field is zero, this field contains the total number of sectors in the FAT16 volume. If the value of the Small Sectors field is not zero, the value of this field is zero. |
Media Descriptor
For the Media Descriptor field, the following table lists some of the recognized media descriptor values and their associated media. A media descriptor value can be associated with more than one disk capacity.
Value | DOS Version | Capacity | Media Size and Type |
F0 | 3.3 | 2.88 MB | 3.5-inch, 2-sided, 36-sector |
F0 | 3.3 | 1.44 MB | 3.5-inch, 2-sided, 18-sector |
F9 | 3.2 | 720 KB | 3.5-inch, 2-sided, 9-sector |
F9 | 3.2 | 1.2 MB | 5.25-inch, 2-sided, 15-sector |
FD | 2.0 | 360 KB | 5.25-inch, 2-sided, 9-sector |
FF | 1.1 | 320 KB | 5.25-inch, 2-sided, 8-sector |
FC | 2.0 | 180 KB | 5.25-inch, 1-sided, 9-sector |
FE | 1.0 | 160 KB | 5.25-inch, 1-sided, 8-sector |
F8 | 2.0 | N/A | Fixed disk (Any Hard Drive) |
Table 32.8 Extended BPB Fields for FAT12/FAT16 Volumes
Byte Offset | Field Length | Value | Field Name and Definition |
0x24 | 1 byte | 0x80 | Physical Drive Number. Related to the BIOS physical drive number. Floppy drives are identified as 0x00 and physical hard disks are identified as 0x80, regardless of the number of physical disk drives. Typically, this value is set prior to issuing an INT 13h BIOS call to specify the device to access. The value is only relevant if the device is a boot device. |
0x25 | 1 byte | 0x00 | Reserved. FAT16 volumes are always set to zero. |
0x26 | 1 byte | 0x29 | Extended Boot Signature. A field that must have the value 0x28 or 0x29 to be recognized by Windows 2000. |
0x27 | 4 bytes | 0xA88B3652 | Volume Serial Number. A random serial number created when formatting a disk, which helps to distinguish between disks. |
0x2B | 11 byte | NO NAME | Volume Label. A field once used to store the volume label. The volume label is now stored as a special file in the root directory. |
0x36 | 4 bytes | FAT12/FAT16 | File System Type. A field with a value of either FAT, FAT12 or FAT16, depending on the disk format. |
FAT Type and Cluster Size Depends on Logical Drive Size
MS-DOS allocates disk space for files in units of one or more sectors; these units are called "clusters" or "allocation units." On any MS-DOS disk, a 1-byte file is allocated 1 cluster of disk space, wasting the unused area of the cluster. A file that is 3.2 clusters large is given 4 clusters. Overall, a smaller cluster size means less waste.
The cluster size for a drive is decided by FORMAT, depending on the size of the logical drive(see table, below). "Logical drive" refers to an MS-DOS volume accessed by a drive letter (A:, B:, C:, D:, and so forth). Hard disk users may want to consider cluster size when choosing how to partition their drive(s).
The cluster size of a floppy drive cannot be changed. The cluster size of a hard drive can be changed only by changing the size of the logical drive, which is done by repartitioning the hard drive.
CHKDSK displays the allocation unit size for a logical drive. FDISK's option 4 displays the size(s) of logical drives on the hard drive(s).
[note]:
DoubleSpace-compressed drives appear to have 8K clusters, but internally vary the sectors-per-cluster as necessary (this information is recorded in the MDFAT). For example, a 10K file which compresses by a factor of 2:1 actually uses 5K, or 10 sectors, of drive space. The following is a table of logical drive sizes, FAT (File Allocation Table) types, and cluster sizes:
Drive Size FAT Type Sectors Cluster
(logical volume) Per Cluster Size
------------------ --------- ------------- ---------
(Floppy Disks) 360K 12bit 2 1K
720K 12bit 2 1K
1.2MB 12bit 1 512 bytes
1.44MB 12bit 1 512 bytes
2.88MB 12bit 2 1K
(Hard Disks) 0 MB - 15 MB 12bit 8 4K
16 MB - 127 MB 16bit 4 2K
128 MB - 255 MB 16bit 8 4K
256 MB - 511 MB 16bit 16 8K
512 MB - 1023 MB 16/32bit 32/ 16/4K
1024 MB - 2048 MB 16/32bit 64/ 32/4K
2 GB – 8 GB 32bit 4K
8 GB – 16 GB 32bit 8K
16 GB – 32 GB 32bit 16K
>32 GB 32bit 32K
[note]:
(1) Sectors are 512 bytes in size, except on some RAM drives.
(2) In the past, some OEMs have modified their versions of MS-DOS to support other sector and/or cluster sizes. The Microsoft MS-DOS 5 Upgrade Setup will, if possible, convert the logical drive to MS-DOS 5.0 compatible. This entails converting the sector size to 512 bytes while retaining the nonstandard cluster size.
(3) MS-DOS determines the FAT size based on the number of clusters. If there are 4085 or fewer clusters, a 12-bit FAT is used. If there are 4086 or more clusters, a 16-bit FAT is used.
Partition Table
This document concerns only hard drives. Floppy disks, CD-ROM, and ZIP drives are not normally split into partitions. You should familiarize yourself with CHS and LBA sector addressing modes before reading this document.
The partition table, a 64-byte data structure used to identify the type and location of partitions on a hard disk, conforms to a standard layout independent of the operating system. Each partition table entry is 16 bytes long, with a maximum of four entries. Each entry starts at a predetermined offset from the beginning of the sector, as follows: Partition 1- 0x01BE, Partition 2 - 0x01CE, Partition 3 - 0x01DE, Partition 4 - 0x01EE.
Table 32.2 Partition Table Fields
Byte Offset | Field Length | Sample Value | Field Name and Definition |
0x01BE | 1 byte | 0x80 | Boot Indicator. Indicates whether the volume is the active partition. Legal values include : (00):Do not use for booting. (80):Active partition. |
0x01BF | 1 byte | 0x01 | Starting Head. |
0x01C0 | 6 bits | 0x01 | Starting Sector. Only bits 0-5 are used. The upper two bits, 6 and 7, are used by the Starting Cylinder field. |
0x01C1 | 10 bits | 0x00 * | Starting Cylinder. Uses 1 byte in addition to the upper 2 bits from the Starting Sector field to make up the cylinder value. The Starting Cylinder is a 10-bit number, with a maximum value of 1023. |
0x01C2 | 1 byte | 0x07 | System ID. Defines the volume type. See Table 32.3 for sample values. |
0x01C3 | 1 byte | 0xFE | Ending Head. |
0x01C4 | 6 bits | 0xBF * | Ending Sector. Only bits 0-5 are used. The upper two bits, 6 and 7, are used by the Ending Cylinder field. |
0x01C5 | 10 bits | 0x09 * | Ending Cylinder. Uses 1byte in addition to the upper 2 bits from the Ending Sector field to make up the cylinder value. The Ending Cylinder is a 10-bit number, with a maximum value of 1023. |
0x01C6 | 4 bytes | 0x3F000000 | Relative Sectors. The offset from the beginning of the disk to the beginning of the volume, counting by sectors. |
0x01CA | 4 bytes | 0x4BF57F00 | Total Sectors. The total number of sectors in the volume. |
A BYTE is 8 bits, a WORD is 16 bits, a DWORD is 32 bits, and a LONGLONG is 64 bits. Sample values marked with an asterisk (*) do not accurately represent the value of the fields, because the fields are either 6 bits or 10 bits and the data is recorded in bytes. Numbers larger than one byte are stored in little endian format, or reverse-byte ordering. Little endian format is a method of storing a number so that the least significant byte appears first in the hexa
|
留言列表