How to Erase a Disk from the Command Line of Mac OS
To get started, you’ll need to launch the Terminal application on the Mac which gives access to the command line. It can be found with Spotlight, Launchpad, or in the /Applications/Utilities/ folder.
To erase a disk from the command line on the Mac, we’ll use the familiar “diskutil” command with the eraseDisk verb and other appropriate flags to specify options for how we want to erase the disk, and to identify which disk is to be erased.
The basic syntax for erasing a disk from the command line in macOS is as follows:
diskutil eraseDisk FILE_SYSTEM DISK_NAME DISK_IDENTIFIER
For example, let’s say you have used “diskutil list” to show all of mounted drives on a Mac from the command line, and you have determined the appropriate drive to erase is identified as /dev/disk6s2, you want the disk name to be “Emptied” and you want the new disk file system format type to be Mac OS Extended Journaled (JHFS+), the syntax would be the following:
diskutil eraseDisk JHFS+ Emptied /dev/disk6s2
It is absolutely critical that you use proper syntax when identifying the disk to erase. Improper identification may lead to erasing the wrong disk, permanently destroying any data on it. Do not screw this up. If you are unsure, you can find the disk ID node with “diskutil info “DISK NAME” |grep Device”.
For some quick reference, here are a few examples of various disk erasure methods for different file system format types. As always, be sure you change the disk node as appropriate for your disk.
Formatting a Disk to Mac OS Extended Journaled (JHFS+) from Terminal in Mac OS X
diskutil eraseDisk JHFS+ DiskName /dev/DiskNodeID
Formatting a Disk to Mac OS Extended (HFS+) from Terminal in Mac OS X
diskutil eraseDisk HFS+ DiskName /dev/DiskNodeID
Formatting a Disk to MS-DOS fat32 from the Command Line in Mac OS X
diskutil eraseDisk FAT32 DiskNameGoesHere /dev/DiskNodeIDHere
Formatting a Disk to ExFAT from the Command Line in Mac OS X
diskutil eraseDisk ExFAT DiskName /dev/DiskNodeID
Again, any of these commands erase the entire target disk and obliterates any data on it.
Users who would like additional details or information about the other options available including MBR and GPT settings can query the man page with “man diskutil” and searching for “eraseDisk”, or execute the command with no specifics like so:
diskutil eraseDisk
Usage: diskutil eraseDisk format name [APM[Format]|MBR[Format]|GPT[Format]]
MountPoint|DiskIdentifier|DeviceNode
Completely erase an existing whole disk. All volumes on this disk will be
destroyed. Ownership of the affected disk is required.
Format is the specific file system name you want to erase it as (HFS+, etc.).
Name is the (new) volume name (subject to file system naming restrictions),
or can be specified as %noformat% to skip initialization (newfs).
You cannot erase the boot disk.
Example: diskutil eraseDisk JHFS+ UntitledUFS disk3
Finally, it’s worth mentioning that if you want to erase the currently booted disk from the command line from this method, you’d want to do so from a boot disk or from recovery mode. Single User Mode alone is not sufficient to erase the actively booted operating system.