How Windows 98 Handled FAT32 Partitions Over 32GB
While modern operating systems like Windows 2000 and XP famously imposed an artificial 32-gigabyte limit on creating FAT32 partitions, Microsoft Windows 98 had no such restriction. Windows 98 was engineered to natively read, write, and format FAT32 volumes well past 32 GB, allowing partitions to scale toward the theoretical architectural boundaries of the file system. However, operating beyond the 32 GB mark exposed significant bugs and resource limitations within DOS-era maintenance utilities like FDISK and ScanDisk.
Native Support Without Artificial Caps
In Windows 98 and Windows 98 Second Edition (SE), FAT32 was the primary high-capacity file system. Unlike the later NT-based Windows operating systems, which deliberately blocked users from formatting FAT32 volumes larger than 32 GB to force adoption of NTFS, Windows 98 actively encouraged large FAT32 volumes. The operating system handled drives over 32 GB out of the box, assigning appropriate cluster sizes to maintain file system operations. For any partition exceeding 32 GB, Windows 98 defaulted to 32 KB clusters to prevent the File Allocation Table from growing too large for the system's memory structures.
The FDISK 64 GB Wraparound Bug
Although Windows 98 handled drives between 32 GB and 64 GB without
major defects, attempting to partition drives larger than 64 GB
triggered a severe calculation bug in the bundled FDISK
tool. The utility utilized a signed 16-bit integer to track drive
capacity in megabytes, causing drives larger than 64 GB to wrap around
and report only the remainder. For instance, a 70 GB drive appeared in
FDISK as roughly 6 GB.
Windows 98 itself could still manage the full storage capacity if partitioned using third-party disk management software, but standard installations required an updated FDISK executable (released in Microsoft Knowledge Base article 263044) to properly identify and partition drives larger than 64 GB up to the 128 GB threshold.
ScanDisk and Memory Constraints
The most critical failure point for FAT32 volumes over 32 GB under
Windows 98 involved ScanDisk. Both the MS-DOS real-mode and
the Windows GUI versions of ScanDisk were constrained by legacy memory
limits. As partition size grew, the size of the File Allocation Table
scaled accordingly:
- If a FAT32 partition contained a File Allocation Table larger than 16 MB, ScanDisk ran out of conventional memory and failed to complete drive checks.
- This practical ceiling limited reliable maintenance to partitions around 127.53 GB when using 32 KB clusters.
- If a user bypassed cluster minimums, ScanDisk would crash on even smaller partitions due to tracking too many individual clusters.
The 137 GB ATA Hardware Barrier
Handling partitions past 32 GB eventually hit the industry-wide 28-bit Logical Block Addressing (LBA) limitation. Standard IDE controllers and BIOS implementations of the Windows 98 era could not address sectors past 137 GB (128 GiB). While FAT32 theoretically supported volumes up to 2 TB, Windows 98 could not access partitions beyond the 137 GB ceiling without specialized PCI controller cards and 48-bit LBA drivers.
Windows 98 supported FAT32 volumes larger than 32 GB natively, but users were limited by maintenance utility memory exhaustion and IDE addressing constraints rather than an intentional file system lock.