Can't boot FAT32 larger than 2GB, unlike FAT16

Retrocomputing Asked by Kevin Crans on December 26, 2020

Why can my PC not boot FAT larger than 2GB (FAT32) in legacy mode, but FAT16 and NTFS work fine?

It just gives me a non-system disk error, while booting the same (DOS boot disk) files under FAT16 works fine. Can someone explain to me what’s happening, or do I just have bad 32-bit formatting tools or a weird UEFI/BIOS. It’s a SCSI drive by the way.

One Answer

My hypothesis is as follows:

  1. The last time you successfully formatted the drive to be bootable, you did it with something that only understands FAT16 booting, so it installed a boot sector that only knows how to hand off to FAT16 partitions.
  2. When you formatted for FAT32, you didn't properly ask for a bootable FAT32 partition, so you've got a boot sector that expects to boot a FAT16 partition that no longer exists.
  3. NTFS is irrelevant if the boot sector is the problem because UEFI booting bypasses the boot sector. (Bootloaders got much bulkier in the intervening years and legacy booting with bootloaders like GRUB already has to do a messy dance involving putting a tiny little stub in the boot sector that just knows how to load the real bootloader from a defined location on one of the partitions.)

Alternatively, maybe you didn't ask your partitioning tool to set the "boot" metadata flag in the MBR. I can't remember how strict old bootloaders are about expecting the boot partition to be a primary partition and flagged as "boot".

Correct answer by ssokolow on December 26, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP