Formatting to FAT32 on FreeBSD
06 Feb 2025Formatting drives on any operating system can be a handful of instructions specific to that operating environment. In today’s post we’ll walk through the process of formatting a USB drive to FAT32, explaining each command along the way.
Identifying the Device
Before making any changes, you need to determine which device corresponds to your USB drive. The best way to do this is:
dmesg | grep da
or, for a more detailed view:
geom disk list
On FreeBSD, USB mass storage devices are typically named /dev/daX
(where X
is a number). If you only have one USB drive plugged in, it is likely /dev/da0
.
Device naming in FreeBSD is quite uniform:
- USB Drives:
/dev/daX
- SATA/SAS/IDE Drives:
/dev/adaX
- NVMe Drives:
/dev/nvmeX
- RAID Volumes:
/dev/mfidX
,/dev/raidX
Partitioning the Drive
Now that we know the device name, we need to set up a partition table and create a FAT32 partition.
Destroying Existing Partitions
If the drive has existing partitions, remove them:
gpart destroy -F /dev/da0
This ensures a clean slate.
Creating a Partition Table
We create a Master Boot Record (MBR) partition table using:
gpart create -s mbr /dev/da0
-s mbr
: Specifies an MBR (Master Boot Record) partition scheme.- Other options include
gpt
(GUID Partition Table), which is more modern but may not be supported by all systems.
Adding a FAT32 Partition
Now, we create a FAT32 partition:
gpart add -t fat32 /dev/da0
-t fat32
: Specifies the FAT32 partition type.- Other valid types include
freebsd-ufs
(FreeBSD UFS),freebsd-swap
(swap partition),freebsd-zfs
(ZFS), andlinux-data
(Linux filesystem).
After running this command, the new partition should be created as /dev/da0s1
.
Formatting the Partition as FAT32
To format the partition, we use newfs_msdos
:
newfs_msdos -L DISKNAME -F 32 /dev/da0s1
-L DISKNAME
: Assigns a label to the volume.-F 32
: Specifies FAT32./dev/da0s1
: The newly created partition.
Why
/dev/da0s1
instead of/dev/da0
?
When using MBR, partitions are numbered starting froms1
(slice 1
), meaning that the first partition onda0
becomesda0s1
. Using/dev/da0
would format the entire disk, not just a partition.
Wrapping Up
At this point, your USB drive is formatted as FAT32 and ready to use. You can mount it manually if needed:
mount -t msdosfs /dev/da0s1 /mnt
To safely remove the drive:
umount /mnt