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?
-
1Which FAT format? OS X supports FAT12, FAT16, FAT32, and ExFAT (aka FAT64). There's no such thing as just plain "FAT". See Wikipedia's list of FAT types.– Gordon DavissonCommented Dec 18, 2014 at 6:37
-
It's probably a version of FAT 16. The device's manual only identifies the command in "Windows" without saying what Windows, with which one formats a disk. The command apparently gives the user a choice between "FAT" and "FAT 32". It's an old device. My best course of action probably is to ask the manufacturer, which is still in business. The manual probably assumes the user is using Windows 95, however. Also, a part on the device has broken since I asked. I may or may not be able to fix it.– steveCommented Dec 22, 2014 at 2:29
-
I agree that FAT16 is the most likely variant, since it was introduced in 1984 (or 1987, from Compaq DOS 3.31).– Scott EarleCommented Dec 22, 2014 at 8:01
2 Answers
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).
-
-
Not if you use the terminal version. Type "diskutil" in terminal for more info. Commented Dec 22, 2014 at 3:31
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.