How to create a big FAT32 partition

October 4, 2007

(Well, this is at least one way to do it… I’m sure there are easier and faster ways.)

Windows XP and up doesn’t let you create a FAT32 partition that’s bigger than 32GB. It can handle them, but not create them.
One obvious way to do it, is… use Linux.

  1. Install Linux in VMware. I used Slackware 12.0 on VMware Workstation 5.5.5.
  2. Add a physical hard disk that uses the disk you’d like to partition. To figure out the exact disk number (i.e. PhysicalDisk5), use diskmgmt.msc.
  3. If you don’t have patience to figure out how to make SCSI work in Linux (as I didn’t), change the disk to an IDE disk:
    • Close VMware and edit the .vmx and .vmdk files manually (with Notepad or any other editor).
    • In the .vmx file, remove the line scsi0.present = “TRUE”
    • In the .vmx file, change any occurrence of scsi0:0 to ide1:1 (this will make the disk IDE Secondary Slave – make sure you have a Secondary Master).
    • In the .vmdk file, change the line ddb.adapterType = “lsilogic” to ddb.adapterType = “ide”
  4. Boot into Linux and login as root.
  5. Run fdisk /dev/hdd (this assumes your HD is IDE Secondary Slave; otherwise, use the correct device name).
  6. Press p to list partitions; delete them all by repeatedly using d; create one partition spanning the whole disk by pressing n and using the default for each question.
  7. Change the type to FAT32 by pressing t, and for the partition type hex code, enter c
  8. Make sure you did nothing wrong, and press w to write the partition table to the disk. This is irreversible!
  9. Back in the root prompt, format the new FAT32 partition by using: mkdosfs -F 32 /dev/hdd1

That’s it – you now have a big FAT32 partition. Make sure you don’t mount it in both Windows and Linux at the same time, because they won’t be sync’ed. (To unmount in Windows, choose “Change Drive Letter and Paths” in diskmgmt.msc, and remove all drive letters and NTFS mount points.)