How convert.exe Converted FAT32 to NTFS in Windows XP
In Windows XP, the command-line utility convert.exe
allowed users to transition a drive from FAT32 to NTFS without
formatting or losing existing data. It accomplished this through an
in-place conversion process: rather than moving or copying user data,
the tool analyzed the existing drive layout, generated a new NTFS Master
File Table (MFT) and metadata in available free space, and seamlessly
remapped the partition's boot sector to point to the new file system
structure.
1. Free Space Verification and Allocation
Before modifying any data, convert.exe inspected the
FAT32 volume to ensure there was sufficient unallocated space to house
the core NTFS metadata. NTFS requires specific system files—most notably
the Master File Table ($MFT), $LogFile, and
$Bitmap—to manage files and permissions. The utility
located contiguous blocks of free clusters on the drive to serve as the
staging area for these new structures.
2. Translating FAT32 Structures to NTFS
FAT32 tracks files using a flat File Allocation Table paired with
directory tables that store filenames, timestamps, and the starting
cluster of each file. Instead of touching the actual contents of the
user's files, convert.exe parsed these existing FAT
structures and translated them into NTFS equivalents:
- Each file and folder entry in the FAT directory was transformed into
a record inside the newly generated
$MFT. - The cluster chains describing where file fragments lived were mapped into NTFS non-resident data run attributes.
- The physical clusters containing the actual user file data were left entirely intact and in place.
3. Writing NTFS System Metadata
The utility wrote all the required NTFS metadata directly into the
reserved free space. This included creating default security
descriptors, setting up journaling logs, and populating the
$Bitmap file to mark both the newly created metadata
clusters and the existing user data clusters as occupied. During this
phase, the underlying FAT32 file system was still functionally intact
because the new data was written only to sectors previously marked as
free.
4. Committing the Boot Sector
The final and critical step was the switchover. Once the NTFS
structures were fully written and validated, convert.exe
updated the volume boot record (VBR) at the beginning of the partition.
It replaced the FAT32 boot code with NTFS boot code and updated the
pointers to reference the cluster location of the new $MFT.
Because this switch was performed atomically, the drive instantly
presented itself to the operating system as an NTFS volume upon the next
mount.
5. Post-Conversion Characteristics
Because user data clusters were never relocated during the conversion, the cluster size of the resulting NTFS volume often remained aligned with the original FAT32 cluster size (frequently 512 bytes or non-standard allocations) rather than the standard 4KB default of a freshly formatted NTFS volume. While this sometimes resulted in higher file fragmentation or slightly reduced performance compared to a native format, it allowed the entire migration to execute quickly and with zero data loss.