How to Erase a Disk from Command Line in Mac OS X
Some Mac users may require the ability to erase a disk or erase a hard drive from the command line on Mac OS, a task which is typically performed through the Disk Utility application from the GUI. The command line approach to disk erasure in macOS is a bit different and it requires precise syntax to insure that you are erasing the proper disk, making this method of erasing any disk only appropriate for advanced Mac users.
This guide will walk through how to erase and format an entire target disk using exclusively the command line on any Mac using macOS or Mac OS X. You can choose any common file system format the disk to after it has been erased, including ExFAT, FAT32, HFS+, or JHFS+.
Notice that this is aiming to erase the entire disk from the command line here, this is not just erasing a volume or partition on the target disk. The entire target disk is erased, all data on the target disk is destroyed using this approach, with no volumes or partitions or any data remaining. Do not misunderstand that, otherwise you will inevitably permanently lose data when it is erased and destroyed. Remember the command line is unforgiving, if you are not comfortable at the command line it would be much more appropriate to erase and format a disk using Disk Utility in the standard interface of Mac OS X.
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:
Usage: diskutil eraseDisk format name [APM[Format]|MBR[Format]|GPT[Format]]
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.