Format External Disk in FAT, NOT FAT32
I have an external device which mounts as an external drive and which I must format in FAT, not FAT32, for use elsewhere. Is there a way to do that from Snow Leopard?
This should do the trick:
In Terminal:
diskutil eraseDisk MS-DOS <newname> <diskID>
where is the new name for the disk and is the disk identifier (you can find this by getting the disk info from Finder or Disk Utility, or by typing "diskutil list" into Terminal).
If you tell OS X to format a disk or volume in "MS-DOS" format, it'll try to choose the "best" option from FAT12, FAT16, or FAT32, based on the volume's size. If you need to override its choice, you have to use the command-line diskutil
command with a more explicit volume format like "MS-DOS FAT16". Here's an example:
$ diskutil info /Volumes/UNTITLED/
Device Identifier: disk2s1
Device Node: /dev/disk2s1
Part of Whole: disk2
[...]
File System Personality: MS-DOS FAT32
Type (Bundle): msdos
Name (User Visible): MS-DOS (FAT32)
Partition Type: DOS_FAT_32
...note that at this point, I could either erase & reformat just the volume (disk2s1) or the entire disk (disk2). If the disk isn't partitioned into multiple volumes, it doesn't make much difference. I'll do the whole disk for demo purposes:
$ diskutil erasedisk "MS-DOS FAT16" CUSTOMVOL disk2
Started erase on disk2
$<3>Unmounting disk
$<3>Creating the partition map
$<3>Waiting for the disks to reappear
$<3>Formatting disk2s1 as MS-DOS (FAT16) with name CUSTOMVOL
$<3>512 bytes per physical sector
/dev/rdisk2s1: 1999456 sectors in 62483 FAT16 clusters (16384 bytes/cluster)
bps=512 spc=32 res=1 nft=2 rde=512 mid=0xf8 spf=245 spt=32 hds=128 hid=40 drv=0x80 bsec=1999984
$<3>Mounting disk
$<3>Finished erase on disk2
$ diskutil info /Volumes/CUSTOMVOL
Device Identifier: disk2s1
Device Node: /dev/disk2s1
Part of Whole: disk2
Device / Media Name: CUSTOMVOL
[...]
File System Personality: MS-DOS FAT16
Type (Bundle): msdos
Name (User Visible): MS-DOS (FAT16)
Partition Type: Microsoft Basic Data
Note that you can use diskutil listFilesystems
to get a complete list of the volume formats it knows about.