Ink Blot welcomes you to Lance's Web Site!

I've decided to resurrect my web site on a limited basis; mainly to discuss FAT32X, but also to test a new site build process. LC

(best viewed at 800x600 full screen!)


Home
Boot Sectors
FAT32X
Utility Programs
Site Map

FAT32X

The FAT32X Boot Sector Rumor

This test case was run to determine the correctness of the statement

The FAT32X boot sector is at the end of the partition.

After thinking about it, I considered this statement to be WRONG. I decided to do my own testing of it rather than make a contradictory statement without providing facts.

Procedure

The test platform was a Tyan Titan motherboard with Award 4.51PG BIOS, and a Maxtor 4.3GB disk. The BIOS setting for the disk was set to NORMAL, which forced the BIOS geometry to 1023x16x63.

The boot floppy was a DOS 7.10 floppy created by Win95B (format a: /s). The FDISK and FORMAT utilities were copied to the floppy, along with my DISKZERO, BOOTSECT, and BOOTSCAN utilities.

  • Boot from floppy.

  • Erase the disk using DISKZERO.
    The DISKZERO utility writes binary zeros to all sectors on the disk. This destroys any and all data on this disk, including boot records.
    A:\>diskzero 0 -z

  • Create a FAT32X partition with FDISK.
    A:\>fdisk

  • Reboot from floppy.

  • Format the partition.
    A:\>format c: /s

  • Display the partition table in the master boot record.
    The BOOTSECT utility performs a wide range of functions on boot records. One of its more useful functions is displaying the information contained in them.
    A:\>bootsect 0 -m -t
    
    BOOTSECT (01.07, 05/07/98) - Read/Write/etc Boot Records
    
    Reading master boot record from drive 0
    
    Partition table for drive 0:
    Part  Boot  Sys   Start Address   End Address   Starting  Number of
    Num   Flag  Type   Cyl Head Sec   Cyl Head Sec    Sector    Sectors
      0    80h  0Ch      0   1   1   1022  15  63         63    8440929
      1    00h  00h      0   0   0      0   0   0          0          0
      2    00h  00h      0   0   0      0   0   0          0          0
      3    00h  00h      0   0   0      0   0   0          0          0
    
    Drive 0  Cylinders=1023 Heads=16 Sectors=63
    Actual   Cylinders=8374 Heads=16 Sectors=63
    
    The MBR is in the right spot (sector 0.0.1).
    The partition is FAT32X (type 0Ch).

  • Display the PBR partition table.
    A:\>bootsect 0 -p 0 -t
    
    BOOTSECT (01.07, 05/07/98) - Read/Write/etc Boot Records
    
    Reading master boot record from drive 0
    Reading partition boot record from drive 0 partition 0
    
    FAT info for drive 0 partition 0:
    
    System ID            MSWIN4.1
    bytes.per.sector     512
    sectors.per.cluster  8
    reserved.sectors     32
    fat.copies           2
    root.dir.entries     0
    total.sectors        0
    media.desc           F8h
    sectors.per.fat      0
    sectors.per.track    63
    heads                16
    hidden.sectors       63
    big.total.sectors    8440929
    word24               202Ch
    word26               0000h
    word28               0000h
    word2a               0000h
    word2c               0002h
    word2e               0000h
    word30               0001h
    word32               0006h
    word34               0000h
    word36               0000h
    word38               0000h
    word3a               0000h
    word3c               0000h
    word3e               0000h
    drive                80h
    head                 0
    signature            29h
    volume.serial        0F34-1AE6
    volume.label         NO NAME    
    file.system.id       FAT32   
    
    Drive 0  Cylinders=1023 Heads=16 Sectors=63
    Actual   Cylinders=8374 Heads=16 Sectors=63
    
    The PBR is also in the right spot (sector 0.1.1).
    The PBR contains valid and consistent FAT32 data.

  • Scan the disk for boot sectors.
    The BOOTSCAN utility reads the disk and looks for records with a boot signature (55h,AAh) in the last two bytes. The -A option causes all sectors to be scanned.
    A:\>bootscan 0 -x -a
    
    BOOTSCAN (01.01, 05/02/98) - Scan Disk for Boot Records
    
    BIOS disk geometry is 1023.16.63
    
    Real disk geometry is 8374.16.63
    
    Scanning by real geometry.
    
    Boot signature found at 0.0.1; sector 0
    
    Boot signature found at 0.1.1; sector 63
    
    Boot signature found at 0.1.2; sector 64
    
    Boot signature found at 0.1.3; sector 65
    
    Boot signature found at 0.1.7; sector 69
    
    Boot signature found at 0.1.8; sector 70
    
    Boot signature found at 0.1.9; sector 71
    
    As you can see, the only boot records that were found were the master (0.0.1), the FAT32 partition (0.1.1, 0.1.2, 0.1.3), and the copy of the FAT32 parition (0.1.7, 0.1.8, 0.1.9).

Conclusion

Based on the above test case, the statement is wrong.

There now exists several explanations for the statement.
1) There is a unique version of Win95B that creates boot records at the end of the disk. Most unlikely, since the version of Win95B I'm using is capable of FAT32X, and it dates from 1997.
2) The boot sector in question is not marked by the standard boot signature of 55h,AAh in the last two bytes. Also unlikely since it seems to be a tradition to mark boot related sectors in this manner. The extra boot records for FAT32 are a perfect example of this.
3) Certain computer manufacturers have taken it upon themselves to rewrite the boot code. Yeah, right.

If a disk has never had a boot record on it before, and the BIOS has the int13 extensions available, then FDISK will write a new type of master boot record to sector 0.0.1. This boot record still has partition table at the same offset, but the boot code is different. Initial examination has shown the boot code to be capable of booting a partition which starts beyond the addressing limits of the BIOS.

Another item of interest is that a standard master boot record will also boot a FAT32X partition, if the starting address (cylinder.head.sector) is within the addressing limits of the BIOS.

Afterward

If you have a FAT32X partition with the boot sector at the end, I'd really like to hear about it.

References

OSR2 FAQ - One source of the statement.
BOOTSCAN Utility
BOOTSECT Utility
DISKZERO Utility
Lance Costanzo, [email protected]