These pages are going through a major REVISION; some sections may presently be incomplete; if the topic doesn't make sense, contact us.
|  
       In summary, the layout of a Master Boot Record's sector is as follows:  Offset     Size                Description
 ------  ---------   ----------------------------------
  000h   446 bytes    Master bootstrap loader code area
                     (includes the NT Drive S/N if any;
    see the Standard, FAT32 and NTFS MBRs for example.)
  1BEh    16 bytes    Partition entry for partition 1
  1CEh    16 bytes    Partition entry for partition 2
  1DEh    16 bytes    Partition entry for partition 3
  1EEh    16 bytes    Partition entry for partition 4
  1FEh     2 bytes    Signature ID, the WORD: AA55h;
                       indicates a valid MBR sector.
     | 
  

  This is a Hex view of just the last 80 bytes of a hard disk's MBR sector 
  as they might appear in a disk editor. The Partition Table is enclosed 
  within the thin YELLOW line in the diagram above. 
  Two other items also appear in this diagram: 1) The thin violet/purple 
  line surrounding the Hex bytes "A8 
  E1 A8 E1" shows an example of an NT Disk Signature (also 
  used by Win 2000/XP) and:  2) 
  The sector's Word-sized Signature ID of AA55h; often 
  called its Magic number in older tech documentation.
  [ Note: on Intel x86 CPU systems, Hex Words are stored with the Low-byte 
  first and the High-byte last so AA55h appears as:  
   55 AA  in a disk editor ].
In the upper-right corner of the table, you'll see a byte with the value of 80 . This is the first byte in the first Partition entry, and it's followed by the bytes 01 01 00 . Most HDDs have these bytes, since the first partition is usually the boot partition on most hard disks [ the 80h byte tells the Bootstrap Loader code (the MBR code) which partition it is supposed to try loading a Boot sector from into Memory; only one partition entry (at boot-up) can have the 80h byte here] and because the next three bytes are the CHS values for the Starting Sector of the first partition (CHS 0,1,1 in this case; which corresponds to Absolute Sector 63 of this disk, where most Boot Records begin).
Until HDDs became larger than 8.4 GB, the Starting and Ending CHS values and the Total Sector value could be checked against each other; which might help to correct an error for a manual entry in the Table. Example: The Last Sector CHS values (877,254,63) can be used to check the Total number of Sectors by first computing: 878 cylinders x 255 heads x 63 sectors = 14,105,070 sectors (don't forget that both the Cylinder and Head counts begin with a zero), and then subtracting the 63 sectors which preceded it to arrive at: 14,105,007 sectors for its Total size or length. Thus, you can see that they must agree with each other!
Before launching into all the calculations for the rest of this drive's partition table, we need to point out that this isn't the typical layout for a drive created by a Microsoft OS. Instead of a single Primary partition followed by an Extended partition, this drive has three Primary partitions and then an Extended partition!
| The First 16-byte Entry in our Partition Table | |||
|---|---|---|---|
|  
       Byte(s) 
  Offset  | 
     
       Value 
    in this 
  Example  | 
   
    Description 
   | 
  
    Meaning 
   | 
 
|  
       1BE 
   | 
     
       80 
   | 
   
       Bootable? 
        (80h = Yes; 00 = No) 
   | 
  
    YES 
   | 
 
|  
       1BF 
        - 1C1 
     | 
     
       01 
        01 00 
     | 
     
        Starting 
        Sector ( in CHS ) 
    [ First byte always = Head value ]  | 
    
       0, 1, 1 
     | 
  
|  
       1C2 
     | 
     
        07 
     | 
     
       Partition 
        Type 
     | 
    
       NTFS 
     | 
  
|  
       1C3 
        - 1C5 
     | 
     
        FE 
        FF 6D 
     | 
     
        Last 
        Sector ( in CHS ): 
    [ FEh = 254 for Head ] FF 6D = (1111 1111) (0110 1101) are regrouped as: [11 1111] [11 0110 1101] 3Fh = Sector 63 and 36Dh = 877 (Cylinder)  | 
    
       877, 
        254, 63 
     | 
  
|  
       1C6 
        - 1C9 
     | 
     
        3F 
        00 00 00 
     | 
     
        Relative 
        Sectors (or Offset ) 
    ( 0000003Fh = 63 )  | 
    
       63 
     | 
  
|  
       1CA 
        - 1CD 
     | 
     
        AF 
        39 D7 00 
     | 
     
       Total 
        Sectors (or Length ) 
    ( 00D739AFh = 14,105,007 )  | 
    
       14,105,007 
     | 
  
In the table above, 
  you'll find that computing CHS values isn't always very easy to do! Though the 
   whole first byte for each Starting and Ending CHS entry 
  is always for the Head*, the 
  Cylinder and Sector bytes must be regrouped before you can compute 
  them! To compute the Sector value, you must remove the leading two 
  bits of the second (or middle) byte; thus the largest value you can 
  have for a Sector is: 3Fh (__11 1111) = 63. To compute the Cylinder 
  value, the two bits from the middle byte become the first 
  two bits of a ten-bit hex number that ends  with 
  the last byte in each CHS entry. So, the largest value you can have for 
  a Cylinder is: 3FFh (11 1111 1111) = 1023 
  (in the table, which gives you a count of 1024 
  cylinders). Since these are the largest values that can be used in any Standard 
  Partition Table, all CHS values are limited to: 1024 
  x 255* x 63 
  = 16,450,560 sectors (or 8,422,686,720 bytes); thus the 8.4 GB 
  limit for any BIOS without the newer INT 13 Extensions 
  (such as Functions 42, 43 and 48 for reading, writing and getting drive parameters)!
  ________________
  *For 
  those who missed the note about why we do not use 256 heads, see this: 
  Note about a 'bug' in MS-DOS.
Therefore, when any part of a partition reaches further than 8.4 GB into a drive, you lose some redundancy as can be seen in the Last Sector CHS portion of this entry:
| The Second 16-byte Entry in our Partition Table | |||
|---|---|---|---|
|  
       Byte(s) 
  Offset  | 
     
       Value 
    in this 
  Example  | 
   
    Description 
   | 
  
    Meaning 
   | 
 
|  
       1CE 
   | 
     
       00 
   | 
   
       Bootable? 
        (80h = Yes; 00 = No) 
   | 
  
    NO 
   | 
  
|  
       1CF 
        - 1D1 
   | 
     
       00 
        C1 6E 
   | 
     
        Starting 
        Sector ( 
        in CHS ) 
  [ First byte: 00h = 0 for Head value ] C1 6E = (1100 0001) (0110 1110) in Binary are regrouped as: [00 0001] [11 0110 1110] 01h = 1 sector and 36Eh = 878 (Cylinder)  | 
    
       878, 0, 1 
   | 
 
|  
       1D2 
   | 
     
        0C 
   | 
     
       Partition 
        Type 
   | 
     
       FAT32 
  LBA  | 
 
|  
       1D3 
    - 1D5 
   | 
     
        FE 
    FF FF 
   | 
     
        Last 
        Sector ( in CHS ): FE = 254 (Head) 
  FF FF = (1111 1111) (1111 1111) are regrouped as: [11 1111] [11 1111 1111] 3Fh = Sector 63 and 3FFh = 1023 (Cylinder)  | 
     
       Beyond 
  8.4 GB  | 
 
|  
       1D6 
    - 1D9 
   | 
     
        EE 
        39 D7 00 
   | 
     
        Relative 
        Sectors (or Offset) 
  ( 00D739EEh = 14,105,070 )  | 
     
       14,105,070 
   | 
 
|  
       1DA 
    - 1DD 
   | 
     
        BD 
        86 BB 00 
   | 
     
       Total 
        Sectors (or Length) 
  ( 00BB86BDh = 12,289,725 )  | 
     
       12,289,725 
   | 
 
If the Cylinder value wasn't limited to 1023, then the Last Sector CHS triple's cylinder value could be computed as follows: 26,394,795 (14,105,070 + 12,289,725; the same as the Relative Sector Offset in the next entry!) divided by 16,065 (255 x 63) = 1643 cylinders. So, the CHS would be: 1642,254,63.
And for any full partition that's beyond 8.4 GB, such as the last two entries in our example Partition Table above, only the values inside of the thin GREEN lines can be used to compute both a partition's actual size and location! Note both the Starting Sector and Last Sector items in our example Table's third entry:
| The Third 16-byte Entry in our Partition Table | |||
|---|---|---|---|
|  
       Byte(s) 
    Offset  | 
     
       Value 
        in this 
    Example  | 
     
       Description 
     | 
     
       Meaning 
     | 
  
|  
       1DE 
     | 
     
       00 
     | 
     
       Bootable? 
        (80h = Yes; 00 = No) 
     | 
     
       NO 
     | 
  
|  
       1DF 
        - 1E1 
     | 
     
        FE 
        FF FF 
     | 
     
        Starting 
        Sector ( in CHS ): FE = 254 (Head) 
    FF FF = (1111 1111) (1111 1111) are regrouped as: [11 1111] [11 1111 1111] 3Fh = Sector 63 and 3FFh = 1023 (Cylinder)  | 
     
       Beyond 
    8.4 GB  | 
  
|  
       1E2 
     | 
     
        83 
     | 
     
       Partition 
        Type 
     | 
     
       Linux 
        Ext2 
     | 
  
|  
       1E3 
        - 1E5 
     | 
     
        FE 
        FF FF 
     | 
     
        Last 
        Sector ( in CHS ) 
    [ Same as for FE FF FF above! ]  | 
     
       Beyond 
    8.4 GB  | 
  
|  
       1E6 
        - 1E9 
     | 
     
        AB 
        C0 92 01 
     | 
     
        Relative 
        Sectors (or Offset) 
    ( 0192C0ABh = 26,394,795 )  | 
     
       26,394,795 
     | 
  
|  
       1EA 
        - 1ED 
     | 
     
        CD 
        2F 03 00 
     | 
     
       Total 
        Sectors (or Length) 
    ( 00032FCDh = 208,845 )  | 
     
       208,845 
     | 
  
Finally, the fourth entry in our example Table is that of an LBA Extended Partition (type = 0Fh). In the case of any Extended Partition, its Total Sectors (or Length) includes all of the Logical partitions that may exist inside of it, whether there's only one or many. Extended Partitions often run all the way to the end of a drive's useable sectors, but they don't have to. You should also note that even if all four entries of a Partition Table are being used, that does not necessarily mean there's no empty space left on a drive.
| The Fourth 16-byte Entry in our Partition Table | |||
|---|---|---|---|
|  
       Byte(s) 
    Offset  | 
     
       Value 
        in this 
    Example  | 
     
       Description 
     | 
     
       Meaning 
     | 
  
|  
       1EE 
     | 
     
       00 
     | 
     
       Bootable? 
        (80h = Yes; 00 = No) 
     | 
     
       NO 
     | 
  
|  
       1EF 
        - 1F1 
     | 
     
        FE 
        FF FF 
     | 
     
        Starting 
        Sector ( in CHS ): FE = 254 (Head) 
    FF FF = (1111 1111) (1111 1111) are regrouped as: [11 1111] [11 1111 1111] 3Fh = Sector 63 and 3FFh = 1023 (cylinder)  | 
     
       Beyond 
    8.4 GB  | 
  
|  
       1F2 
     | 
     
        0F 
     | 
     
       Partition 
        Type 
     | 
     
       Extended 
    ( LBA )  | 
  
|  
       1F3 
        - 1F5 
     | 
     
        FE 
        FF FF 
     | 
     
        Last 
        Sector ( in CHS ) 
    [ Same as for FE FF FF above! ]  | 
     
       Beyond 
    8.4 GB  | 
  
|  
       1F6 
        - 1F9 
     | 
     
        78 
        F0 95 01 
     | 
     
        Relative 
        Sectors (or Offset) 
    ( 0195F078h = 26,603,640 )  | 
     
       26,603,640 
     | 
  
|  
       1FA 
        - 1FD 
     | 
     
        83 
        AF CC 00 
     | 
     
       Total 
        Sectors (or Length) 
    ( 00CCAF83h = 13,414,275)  | 
     
       13,414,275 
     | 
  
Last Update: June 9, 2007. (2007.06.09)
You can write to us here:  
  contact page (opens in a new window).
  
  
 MBR 
  and Boot Records Index
  
 The Starman's Realm Index Page