Disk Utility Tool (Mac OS X )

Command line Utility to manage local disks and volumes.

Options which make changes require ownership or root and most are DESTRUCTIVE!

Manipulates the volume-level structure of local disks.

Provides information about, and allows the administration of, the partitioning scheme of disks, optical discs, and RAID sets.

diskutil <verb> <options>

diskutil verb provides help

vol reference

Disk Identifier

Device unit, session on that device, or a partition (slice) .

Form : diskU, diskUsS, diskUsQ, or diskUsQsS, where U, S, and Q are decimal integers .

The forms for optical session and partition are the same and are distinguished by context.

Some units (e.g. floppy disks, RAID sets) contain filesystem data upon their "whole" device instead of containing a partitioning scheme with partitions.

The top-to-botom appearance of partitions shows the on-disk ordering.
Disk identifiers need not appear in slice-numerical order.

list [-plist | diskU ]
> sudo  diskutil list
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *320.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            31.5 GB    disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:                  Apple_HFS DATA                    32.0 GB    disk0s4
   5:                  Apple_HFS Photos                  62.1 GB    disk0s5
   6:                  Apple_HFS biggies                 17.5 GB    disk0s6
   7:                 Apple_Boot Recovery HD             650.0 MB   disk0s7
   8:                  Apple_HFS HDIMAGES                64.0 GB    disk0s8
   9:                  Apple_HFS DATA45G                 45.4 GB    disk0s9
  10:                  Apple_HFS HDIMAGES_2              65.1 GB    disk0s10
  11:                 Apple_Boot Recovery HD             650.0 MB   disk0s11

disk0 #: type name size identifier 0: Apple_partition_scheme *55.9 GB disk0 1: Apple_partition_map 31.5 KB disk0s1 2: Apple_HFS MacHD 14.2 GB disk0s3 3: Apple_HFS DATA 3.8 GB disk0s5 4: Apple_HFS PHOTOS 3.8 GB disk0s7 5: Apple_UNIX_SVR2 120.0 MB disk0s8 6: Apple_HFS BACKUPS 23.3 GB disk0s10 7: Apple_Boot 8.5 MB disk0s13 8: Apple_UNIX_SVR2 1015.5 MB disk0s14 disk1 (SD card from camera) #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *2.0 GB disk1 1: DOS_FAT_16 DGERMAN181 2.0 GB disk1s1 disk2 (unmounted! xxx.dmg ) #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *1.5 MB disk2 1: Apple_partition_map 32.3 KB disk2s1 2: Apple_HFS Google Chrome 12.0.7... 1.5 MB disk2s2
> sudo diskutil list -plist <?xml version="1.0" encoding="UTF-8"? <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" <plist version="1.0" <dict <key>AllDisks</key <array <string>disk0</string <string>disk0s1</string <string>disk0s2</string <string>disk0s3</string <string>disk0s4</string <string>disk0s5</string <string>disk1</string <string>disk1s1</string <string>disk2</string <string>disk2s1</string <string>disk2s2</string </array <key>VolumesFromDisks</key> <array> <string>Macintosh HD</string> <string>DATA</string> <string>Photos</string> <string>HDIMAGES</string> <string>DGERMAN181</string> <string>Google Chrome 12.0.742.112-12.0.742.122 Update</string> </array> <key>WholeDisks</key> <array> <string>disk0</string> <string>disk1</string> <string>disk2</string> </array> </dict> </plist>

info [-plist]   vol |  -all
diskutil info /volumes/data
   Device Identifier:        disk0s3            Device Node:              disk0s3
   Part of Whole:            disk0
   Device / Media Name:      Untitled

   Volume Name:              DATA               Escaped with Unicode: DATA

   Mounted:                  Yes
   Mount Point:              /Volumes/DATA      Escaped with Unicode: /Volumes/DATA

   File System Personality:  Journaled HFS+     Type (Bundle):  hfs
   Name (User Visible):      Mac OS Extended (Journaled)
   Journal:                  Journal size 8192 KB at offset 0xbd000
   Owners:                   Enabled

   Partition Type:           Apple_HFS           OS Can Be Installed: Yes
   Media Type:               Generic             Protocol:            SATA
   SMART Status:             Verified
   Volume UUID:              87D2C53E-7563-3207-B019-528AC90F0B7E

   Total Size:               32.0 GB (32000000000 Bytes) (exactly 62500000 Blocks)
   Volume Free Space:        13.7 GB (13705142272 Bytes) (exactly 26767856 Blocks)
   Device Block Size:        512 Bytes

   Read-Only Media: No       Read-Only Volume: No    Ejectable:       No 
   Whole:           No       Internal:         Yes   Solid State: No 

 > sudo diskutil info disk0s1|g UUID
   Volume UUID:              85D67001-D93E-3687-A1C2-79D677F0C2E0
   Disk / Partition UUID:    74B80E3E-D90A-4946-9B56-993F85901214
 > sudo diskutil info disk0s2|g UUID
   Volume UUID:              B6C03159-CE53-372F-ACAA-03EC878604AC
   Disk / Partition UUID:    8184AD94-2146-4A57-A1EB-A81B5BE61F44
 > sudo diskutil info disk0s3|g UUID
   Volume UUID:              9DFEBFB0-4A2D-3BC0-9DA3-8816C1917D28
   Disk / Partition UUID:    7B350544-051D-426D-9281-F921018F2BE0
 > sudo diskutil info disk0s4|g UUID
   Volume UUID:              CC9CE327-C423-3B62-A401-1E2F24832E28
   Disk / Partition UUID:    63539DDD-2063-4541-8D6E-DE81CEB29C9E
 > sudo diskutil info disk0s5|g UUID
   Volume UUID:              CB148783-A4D4-3D27-AAEE-F8AF707F8772
   Disk / Partition UUID:    D66791E4-EB2C-4D84-A1E4-ACFE01C43C4C
 > sudo diskutil info disk0s6|g UUID
   Volume UUID:              B1CA7351-D631-3AA7-8D0F-B2BC3D7CA2E4
   Disk / Partition UUID:    019D8AE2-004B-4631-97EE-A000D60BE29D
 > sudo diskutil info disk0s7|g UUID
   Volume UUID:              8CBD0C14-6A08-3663-A911-CE7D1DB594B0
   Disk / Partition UUID:    DAF6C692-1FBD-4F84-80A7-0AA90D4B4993
 > sudo diskutil info disk0s8|g UUID
   Disk / Partition UUID:    1CAF5F8D-9D34-492E-B87A-496EE0CC5DF0
 > sudo diskutil info disk0s9|g UUID
   Volume UUID:              D8FF2FE7-2E62-33BB-AAAE-88FE9C876849
   Disk / Partition UUID:    9430124A-D283-474B-A076-9ABC354B5019

External firewire:

sudo /usr/sbin/Diskutil info disk1
   Whole:                    Yes
   Device / Media Name:      WD 
   Content (IOContent):      Apple_partition_scheme
   Protocol:                 FireWire
   Total Size:               500.1 GB (500107862016 Bytes) (exactly 976773168 512-Byte-Units)
   Device Block Size:        512 Bytes

/dev/disk1s3                      468725256 421789664  46935592    90% 105447414 11733898   90%   /Volumes/DGerman1a
/dev/disk1s5                       19399144  17794392   1604752    92%   4448596   401188   92%   /Volumes/DGerman1b
> sudo diskutil info disk1s3   Not applicable,etc not shown
   Whole:                    No
   Part of Whole:            disk1
   Device / Media Name:      Apple_HFS_Untitled_1 
   Volume Name:              DGerman1a 
   Mounted:                  Yes
   Mount Point:              /Volumes/DGerman1a 
   File System Personality:  Journaled HFS+
   Type (Bundle):            hfs
   Name (User Visible):      Mac OS Extended (Journaled)
   Journal:                  Journal size 40960 KB at offset 0xe90000
   Owners:                   Enabled

   Partition Type:           Apple_HFS
   OS Can Be Installed:      No
   Media Type:               Generic
   Protocol:                 FireWire
   SMART Status:             Not Supported
   Volume UUID:              B2BA3CA8-984F-39F5-8A16-261BCBC2CE28

   Total Size:               480.0 GB (479974662144 Bytes) (exactly 937450512 512-Byte-Units)
   Volume Free Space:         48.1 GB (48062046208  Bytes) (exactly 93871184  `512-Byte-Units)
   Device Block Size:        512 Bytes
   Allocation Block Size:    4096 Bytes

> sudo /usr/sbin/Diskutil info disk1s5    data which is same as disk1s3 not shown
   Volume Name:              DGerman1b
   Journal:                  Journal size 8192 KB at offset 0x97000
   Owners:                   Disabled
   Volume UUID:              197341EC-7AA0-370A-8551-5644467E4753 
   Total Size:               19.9 GB (19864723456 Bytes) (exactly 38798288 512-Byte-Units)
   Volume Free Space:         1.6 GB (1643266048  Bytes) (exactly  3209504 512-Byte-Units)
activity Continuously display system-wide disk manipulation activity as reported by the Disk Arbitration framework, Coming on-line, being ejected, volumes being mounted or unmounted, volumes being renamed, etc.
until interrupted with a int signal (For example typing Control-C).
For debugging information, such as the monitoring of applications dissenting (attempting to deny) activities for disks for which they have registered an interest, use the logging features of the diskarbitrationd
mount [readOnly]
      [-mountPoint vol_mt_pt]
Mount a single volume.
vol_mt_pt rather than the standard path of /Volumes/VolumeName,
directory at that path must already exist.
mountDisk diskU Mount all mountable volumes.
umount [force] vol force may break open files; see umount.
umountDisk [force] diskU
eject diskU Media becomes offline .
Removable media will eject or become eligible for safe manual removal.
verifyDisk diskU Partition Table, EFI integriey, Core Storage Physical Volumes and space for boot loaders.
/usr/sbin/Diskutil verifydisk disk0
Started partition map verification on disk0
Checking prerequisites
Checking the partition list
Checking the partition map size
Checking for an EFI system partition
Checking the EFI system partition's size
Checking the EFI system partition's file system
Checking the EFI system partition's folder content
Checking all HFS data partition loader spaces
Volume Photos on disk0s5 has 0 bytes of trailing loader space and it needs 134,217,728 bytes
Problems were found with the partition map which might prevent booting
Error: -69765: Partition map needs repair because a data partition needs loader space
repairDisk vol
sudo /usr/sbin/Diskutil repairdisk disk0
 Repairing the partition map might erase disk0s1 (the EFI ), proceed? (y/N) n
Repair canceled 
verifyVolume vol file System of a volume (e.g. fsck).
repairVolume vol Repair the data structure of a volume (e.g. fsck). Example:
sudo diskutil repairVolume  /Volumes/DGERMAN_2GB
Started file system repair on disk2s1 DGERMAN_2GB
Checking file system
** disk2s1
** Phase 1 - Preparing FAT
** Phase 2 - Checking Directories
** Phase 3 - Checking for Orphan Clusters
106 files, 1783744 KiB free (55742 clusters)
Volume repair complete
Updating boot support partitions for the volume as required
Finished file system repair on disk2s1 DGERMAN_2GB 

Started file system repair on disk0s9 Recovery_Mavericks
Repairing file system
Checking non-journaled HFS Plus Volume
Invalid B-tree node size
The volume   could not be verified completely
File system check exit code is 8
Updating boot support partitions for the volume as required
Error: -69845: File system verify or repair failed
Underlying error: 8: POSIX reports: Exec format error
renameVolume vol new_name Volume names are subject to file system-specific alphabet and length restrictions. Must be mounted

 > sudo diskutil mount disk0s11
 > sudo diskutil renameVolume untitled email+cache
Volume on disk0s10 renamed to email+cachei

 > sudo diskutil mount disk0s3
 > sudo /usr/sbin/Diskutil renameVolume disk0s3 'RECOVERY HD AB'
enableJournal vol on an HFS+ volume.
disableJournal [force] vol On an HFS+ volume, Volume need not be mounted
Force: journaling is disabled directly on disk, the volume must not be mounted.
moveJournal external|internal
external causes the creation of a 512MB Apple_Journal partition out of journalDevice and an HFS+ partition will be created out of the remaining space if available; journalDevice must be a partition. The journal for device will then be moved externally onto the newly created Apple_Journal partition.

internal will move the journal for device back locally.

enableOwnership vol The Database at /var/db/volinfo.database is modified as per User and Group ID settings of files, directories, and links (file system objects, or "FSOs")
> sudo diskutil enableOwnership /Volumes/untitled
File system user/group ownership enabled

For some locations of devices (e.g. internal hard disks), consideration of ownership settings on FSOs is the default.
For others (e.g. plug-in USB disks), it is not.

When ownership is enabled, the Owner and Group ID settings that exist on the disk are taken into account for determining access, and exact settings are written to the disk as FSOs are created.
When ownership is disabled, Owner and Group ID settings on FSOs appear to the user and programs as the current user and group instead of their actual on-disk settings.

Enable ownership where a disk contains FSOs whose User and Group, and permissions, is critically important, such as when the plug-in disk contains system files to be changed or added .

 > cat /var/db/volinfo.database
F1D7320CDC506E87: 00000001
A073446E9FC5B85D: 00000001
3D5B432DF5D25BA5: 00000001
CE5F4638B7C48818: 00000001
D156FA5D2FFD2DE8: 00000001
156A2EAF1753895A: 00000001
05924632A81B72DC: 00000001
E0C32DAAF5C0E0AB: 00000001

05924632A81B72DC: 00000001
A073446E9FC5B85D: 00000001
22984819A1006E1A: 00000001
CE5F4638B7C48818: 00000001
E08C36730A0B5D7C: 00000001
C5E0CD235635726E: 00000001
4500BAFE67D39774: 00000001

Settings are persistent See vsdbutil .
disableOwnership device
verifyPermissions [-plist] vol Verify the permissions of boot volume, written during the installation .
Deprecated as of El Captian
listFilesystems [-plist] Show personalities available for formating when using the eraseVolume and partitioning verbs.
This is a subset of personalities exported by the various filesystem bundles installed.
Also shown are some shortcut aliases for common personalities.
-plist output is in xml.

File Systems formats
These (case insensative) personalities can be used for erasing and partitioning.

PERSONALITY                     USER VISIBLE NAME                               
Free Space | free               Free Space  
HFS+                            Mac OS Extended 
hfsx | Case-sensitive HFS+          Mac OS Extended (Case-sensitive)                
jhfsx| Case-sensitive Journaled HFS+ Mac OS Extended (Case-sensitive, Journaled)     
jhfs+| Journaled HFS+             Mac OS Extended (Journaled)                     

ExFAT                           ExFAT                                           
MS-DOS                          MS-DOS (FAT)                                    
MS-DOS FAT12                    MS-DOS (FAT12)                                  
MS-DOS FAT16                    MS-DOS (FAT16)                                  
MS-DOS FAT32                    MS-DOS (FAT32) (or) fat32 
eraseVolume format name  vol and write out an empty filesystem. See Format.
Use %noformat% to skip initialization (to skip newfs).
A format of Free Space will cause removal of the partition from the partition table.
The boot volume cannot be erased.
Operations modifying the entire disk (which may result in disaster).

Did you back up the partition table? See gdisk

partitionDisk diskU [numberOfPartitions]
 [FSFormat1 vName1 pSize1
   FSFormat2 vName2 pSize2
   FSFormat2 vName3 pSize3
Re-partition a disk. All volumes on this disk will be destroyed.
The device parameter specifies that a whole disk is to be partitioned.
The optional PTformat forces a particular Partitioning Table Format
  • APM Apple Partition Map , for a start up disk on PowerPC-based, a non-startup disk with any Mac, or a multiplatform compatible startup disk.
  • MBR Master Boot Record . DOS/Windows-compatible
  • GPT GUID Partitioning Table. for start up disk on Intel-based Mac.

For each partition, a triplet of the desired File System format, volume name, and size must be specified.
  • FSFormat are shown at listFilesystems and are created with the appropriate newfs_* (example newfs_hfs).
    The partition type is set according to the filesystem.
  • vName : volume names must conform to file system specific restrictions.
    %noformat%: the partition is left uninitalized.
    Names are ignored but dummy names must be present.
  • pSize are floating point numbers followed by a letter or percent sign
    (example: 16G, 55.3T, 678M, 75%, R). R will use the Remainder of space on disk

    The last partition will be lengthened to the end of the disk.
    To create a partition of a specific size, include an additional partition with size of R

File System blocksize will be 4,096.
To change block size after creating a partition use: newfs
newfs_hfs -v VolumeName -b 8192 /dev/disk0s2

This will cause the average unused space per file to be 4,096 (i.e. 1/2 block).

When determing size:
( 3/18/16 DATA vol has 189,624 files
df reports 21,014,072 1k blocks used of 44,384,728 This is a space accounting only. However   ( 21,014,072 1k blocks / 189,624 files total = 110 blk/file average aka ) means 2048*nfiles = unused space, (4096-2048)*nfiles will require ADDITIONAL unused space)

resizeVolume vol
 [ size|limits|mapsize|R
 [p1Format p1Name p1Size
  p2Format p2Name p2Size
  p3Format p3Name p3Size …
Only supported on GPT partition tables with a Journaled HFS+ volume filesystem .

A size of limits display the range of valid values for the current filesystem.

> sudo diskutil resizeVolume disk0s7 limits
For device disk0s7 HDIMAGES_2:
        Current size:  56.4 GB (56443121664 Bytes)
        Minimum size:  28.6 GB (28597399552 Bytes)
        Maximum size:  56.4 GB (56443121664 Bytes)
A size of mapsize displays:
> sudo diskutil resizeVolume disk0s7 mapsize
For whole device disk0:
        Whole disk size:         320.1 GB (320072933376 Bytes)
        Partition map size:      320.1 GB (320072933376 Bytes)
A size of R will ATTEMPT to resize the partition to the maximun available. (DGG: didn't work )

Valid pnSize are in the format of n.f units
Valid units are B(ytes), K(ilobytes), M(egabytes), G(igabytes), T(erabytes)
Example: 10G (10 gigabytes), 4.23T (4.23 terabytes), 5M (5 megabytes)

When decreasing size, optionally supply a list of new partitions to create.


/Volumes/HDIMAGES_2/var > sudo diskutil resizevolume disk0s7 40G                        
Resizing to 40000000000 bytes
Started partitioning on disk0s7 HDIMAGES_2
Verifying the disk
Verifying file system
Using live mode
Performing live verification
Checking Journaled HFS Plus volume
Checking extents overflow file
Checking catalog file
Checking multi-linked files
Checking volume bitmap
Checking volume information
The volume HDIMAGES_2 appears to be OK
File system check exit code is 0
Finished partitioning on disk0s7 HDIMAGES_2
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *320.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            50.0 GB    disk0s2
   3:                  Apple_HFS Recovery HD             650.0 MB   disk0s3
   4:                  Apple_HFS Photos                  92.9 GB    disk0s4
   5:                  Apple_HFS HDIMAGES                64.0 GB    disk0s5
   6:                  Apple_HFS DATA                    45.4 GB    disk0s6
   7:                  Apple_HFS HDIMAGES_2              40.0 GB    disk0s7

When decreasing the size, new partitions may optionally be created to fill the newly-freed space.
To do this, specify the numberOfPartitions, format, name, and size as with partitionDisk

 /Volumes/HDIMAGES_2/var > sudo diskutil resizevolume disk0s7 40G  1 jhfs+  caches+mail R
You cannot specify the remainder size option in the triples section with this verb

Resizing a volume that is currently set as the computer's startup disk will invalidate that setting; use the Startup Disk System Preferences panel or bless to reset the resized volume as the startup disk.


splitPartition vol
Destructively split a volume into multiple partitions.
mergePartitions [force] format name fromDevice toDevice Merge two or more partitions on a disk.
All data on merged partitions other than the first will be lost. The first will be erased if it doesn't have a resizable type (e.g. JHFS+) or if force is given.
Format and name apply only when the first partition is being erased.
Merged partitions are required to be ordered sequentially on disk (see diskutil list for the actual on-disk ordering).
reformat volwrite an empty file system using the same type and name
    [[APM]Format |
    [MBR]Format |
    [GPT]Format] disknsm
Removing all volumes and writing a new partitioning scheme containing one new empty filesystem volume.
If the partitioning scheme is not specified, then an appropriate one for the current machine is chosen.
See Format .
zeroDisk diskU Erase a device, writing zeros to the media. The device can be a whole-disk or a partition. In either case, in order to be useful again, zero'd whole-disks will need to be partitioned, or zero'd partitions will need to be erased (newfs'd), e.g. by using the partitionDisk or eraseDisk verbs. If you desire a more sophisticated erase algorithm or if you need to erase only free space not in use for files, use the secureErase verb.
randomDisk [times] diskU Erase a whole disk, writing random data to the media. Times is the optional (defaults to 1) number of times to write random information. device can be a whole-disk or a partition. In either case, in order to be useful again, randomized wholedisks will need to be partitioned, or randomized partitions will need to be erased (newfs'd), e.g. by using the partitionDisk or eraseDisk verbs. If you desire a more sophisticated erase algorithm or if you need to erase only free space not in use for files, use the secureErase verb.
secureErase [freespace] level diskU Erase, using a secure method, either a whole-disk (including any and all partitions), or, only the free space (not in use for files) on a currently-mounted volume. Erasing a whole-disk will leave it useless until it is partitioned again. Erasing freespace on a volume will leave it exactly as it was from an end-user perspective, with the exception that it will not be possible to recover deleted files or data using utility software. If you need to erase all contents of a partition but not its hosting whole-disk, use the zeroDisk or randomDisk verbs.
Level :
  1. Single-pass zero-fill erase.
  2. Single-pass random-fill erase.
  3. US DoD 7-pass secure erase.
  4. Gutmann algorithm 35-pass secure erase.
  5. US DoE algorithm 3-pass secure erase.
eraseOptical [quick] diskU
Apple RAID
appleRAID raidVerb […]
Create, manipulate and destroy AppleRAID volumes (Software RAID).
  • stripe - Striped Volume (RAID 0)
  • mirror - Mirrored Volume (RAID 1)
  • concat - Concatenated Volume (ining)
Only the "mirror" type increases fault-tolerance. may have more than two disks to increase fault-tolerance.
Striped and concatentated volumes are, in fact, more vulnerable to faults than single disk volumes.

From these basic types, "stacked" or "nested" RAID volumes can be created.
Stacked RAID sets that make use of mirrored RAID sets are fault-tolerant.
More common combinations of stacked RAID sets:

  • RAID 50 - striped RAID set of hardware RAID 5 disks.
  • RAID 10 - striped RAID set of mirrored RAID sets.
  • RAID 0+1 - mirrored RAID set of striped RAID sets.
  • Concatenated Mirror - A concatenation of mirrored RAID sets.
When creating new RAID sets or adding disks, it is better to specify the entire disk. This allows the software to reformat the entire disk using the most current partition layouts.

In addition to whole disk and partition device names, AppleRAID uses UUIDs to refer to existing RAID sets and their members. They may be specified by mount point (e.g. /Volume/raidset). Using the UUID is preferred because disk device names may change over time when disks are added, disks are removed or when the system is rebooted.
If RAID members have been physically disconnected from the system or are no longer responding, you must use the member's UUID as the command argument. Messages in the system log will refer to RAID sets and their member disks by UUID.

RAID is not a replacement for backing up data. Backups should be always be performed on a regular basis and before modifying any RAID.

list [UUID] Display volumes with current status and associated member disks.
If UUID is specified, only list that RAID. diskutil listRAID is a deprecated synonym for diskutil appleRAID list.
create mirror|stripe|concat setName format devices … Create a new RAID set consisting of multiple disks and/or RAID sets.
setName is used for both the name of the created RAID volume and the RAID set itself (as displayed in list). Example: diskutil createRAID stripe MyArray JHFS+ disk1 disk2 disk3 disk4
delete raidVolume Destroy an existing RAID set. If the RAID set is a mirror with a resizable filesystem, delete will attempt to convert each of the member partitions back into a non-RAID volume while retaining the contained filesystem.
For concatenated RAID sets with a resizable filesystem, delete will attempt to shrink the filesystem to fit on the first member partition and convert that to a non-RAID volume.
repairMirror raidVolume newDevice Repair a degraded mirror by replacing a broken or missing member. Broken devices in the mirrored set can also be rebuilt by specifying newDevice. When replacing members of a mirrored set, the new disk must be the same size or larger than the existing disks in the RAID set.
add type newDevice raidVolume Add a new member or hot spare to an existing RAID set.
Type can be either member or spare. New disks are added live, the RAID volume does not need to be unmounted.
Mirrored volumes support adding both members and hot spares,
When adding to a mirrored RAID set, the new disk must be the same size or larger than the existing disks in the RAID set. Adding a hot spare to a mirror will enable autorebuilding for that mirror.

Concatenated volumes only support adding members. Adding a new member to a concatenated RAID set appends the member and expands the RAID volume.

remove oldDevice raidVolume Remove a member or spare from an existing RAID set. Old disks are removed live, the RAID volume does not need to be unmounted. For missing devices, oldDevice must be device's UUID. Online mirror members with a resizable filesystem will be converted to non-RAID volumes, spare and offline members will be marked free. For concatenated RAID sets, only the last member can be removed. For resizable filesystems remove will first aiempt to shrink the concatenated RAID set so that the filesystem fits on the remaining disks.
enable mirror|concat device Convert a non-RAID disk partition containing a resizable filesystem (like JHFS+) into an unpaired mirror or single disk concatenated RAID set. Disks that were originally partitioned on Mac OS X 10.2 Jaguar or earlier or were partitioned to be Mac OS 9 compatible may not be resizable.
update key value raidVolume Update the key value parameters of an existing RAID set. Valid keys are:
  • AutoRebuild 0|1 - If true, the system attempts to rebuild degraded mirrored volumes automatically. When looking for devices for rebuild, AppleRAID first looks for hot spares and then degraded members.
  • Settingtimeout ss seconds system waits (in seconds) for a missing device before degrading a mirrored raid set. Also controls the amount of time you have to disconnect all devices from an unmounted mirror without degrading it.
  • coreStorage
    cs coreStorageVerb […] CoreStorage verbs can be used to create, manipulate and destroy CoreStorage volumes.

    CoreStorage maintains a world of virtual disks, somewhat like RAID, in which one can easily add or remove imported backing store disks, as well as exported usable volumes, to or from a pool (or several pools). This provides the user with flexibility in allocating their hardware; user or operating system data can span multiple physical disks seamlessly, for example.

      Types of objects, instances of which are uniquely represented by a UUID:
    • Logical Volume Group (LVG)
    • Physical Volume (PV)
    • Logical Volume Family (LVF)
    • Logical Volume (LV)
    The Logical Volume Group (LVG) is the top or "pool" level; zero or more may exist during any OS boot time session.

    An LVG imports one or more Physical Volumes (PVs). A PV represents a device that feeds the LVG storage space; a PV is normally real media but it can be a disk image or even an AppleRAID Set. A disk offered to be a PV must be a partition and the encompassing scheme must be GPT.

    An LVG exports zero or more Logical Volume Families (LVFs). An LVF contains properties which govern and bind together all of its descendant Logical Volumes (LVs). These properties provide settings for Full Disk Encryption (FDE) (such as whether the LVG is encrypted, which users have access, etc) and other services. However, at the present time, for new LVF creation, only zero or one LVF per LVG is supported.

    A Logical Volume Family (LVF) exports one or more Logical Volumes (LVs). However, at the present time, only and exactly one LV per LVF is supported.

    A Logical Volume (LV) exports a dev node, upon which a file system (such as Journaled HFS+) resides.

    For more information on specifying device arguments, see the DEVICES section below. CoreStorage is not a replacement for backing up your data. Backups should be always be performed on a regular basis and before modifying any CoreStorage volumes using these commands.

    CoreStorage sub-verbs :

    list [-plist | UUID] Display tree view of the CoreStorage world for all current logical volume groups (LVGs) with member disks (PVs) and exported volumes (LVFs and LVs), with properties and status for each level.
    With -plist a property list will be emitted instead of the formatted tree output;
    the UUIDs can be used with the diskutil coreStorage information verb to get properties for the object represented by that UUID.
    With UUIDlist only that UUID
    info | information [-plist] UUID | device
                               Display properties of the CoreStorage object (LVG, PV, LVF, or LV) 
          list                     (Show status of CoreStorage volumes)
         info[rmation]            (Get CoreStorage information by UUID or disk)
         convert                  (Convert a volume into a CoreStorage volume)
         revert                   (Revert a CoreStorage volume to its native type)
         create                   (Create a new CoreStorage logical volume group)
         delete                   (Delete a CoreStorage logical volume group)
         createVolume             (Create a new CoreStorage logical volume)
         deleteVolume             (Delete a volume from a logical volume group)
         encryptVolume            (Encrypt a CoreStorage logical volume)
         decryptVolume            (Decrypt a CoreStorage logical volume)
         unlockVolume             (Attach/mount a locked CoreStorage logical volume)
         changeVolumePassphrase   (Change a CoreStorage logical volume's passphrase)
    diskutil coreStorage  with no options will provide help on that verb


    FLoating point number followed by: When specifying partition triplets, the following relative forms may also be used: Examples: 10G (10 gigabytes), 4.23T (4.23 terabytes), 5M (5 megabytes), 25.4% (25.4 percent of whole disk size).


    The format parameter for the erasing and partitioning verbs is the filesystem personality name found in a filesystem bundle's /System/Library/Filesystems/fs.fs/Contents/Info.plist or i
    by using listFilesystems , which also lists shortcut aliases for common personalities (these shortcuts are defined by diskutil for use with it only). Common examples include JHFS+, MS-DOS, etc.


    Resize a volume and create a volume after it, using all remaining space
    sudo diskutil resizeVolume /Volumes/SomeDisk 50g MS-DOS DOS 0b

    Resize a volume and leave all remaining space as unused
    sudo diskutil resizeVolume /Volumes/SomeDisk 12g

    Merge two partitions into a new partition
    diskutil mergePartitions JHFS+ not disk1s3 disk1s5

    Split a partition into three new ones
    sudo diskutil splitPartition /Volumes/SomeDisk JHFS+ vol1 12g MS-DOS vol2 8g JHFS+ vol3 0b

    Erase a disk
    sudo diskutil eraseDisk UFS UntitledUFS disk3

    Erase a volume
    sudo diskutil eraseVolume HFS+ UntitledHFS /Volumes/SomeDisk

    Partition a disk with three partitions
    sudo diskutil partitionDisk disk3 3 HFS+ Untitled 10G UFS UntitledUFS 10G MS-DOS DOS 10G

    Partition with APM partitioning scheme
    sudo diskutil partitionDisk disk3 APM HFS+ vol1 25% Journaled HFS+ vol2 25% Journaled HFS+ vol3 50% Free Space volX 0%

    Partition with GPT partitioning scheme
    sudo diskutil partitionDisk disk3 GPT HFS+ vol1 25% MS-DOS vol2 25% HFS+ vol3 50% Free Space volX 0%

    Create a RAID
    diskutil createRAID mirror MirroredVolume JHFS+ disk1 disk2

    Destroy a RAID
    diskutil destroyRAID /Volumes/MirroredVolume

    Repair a damaged RAID
    diskutil repairMirror /Volumes/MirroredVolume disk3

    Convert volume into RAID volume
    diskutil enableRAID mirror /Volumes/ExistingVolume


    authopen(1), hdid(8), hdiutil(1), ufs.util(8), msdos.util(8), hfs.util(8), drutil(1), diskarbitrationd(8), mount(8), umount(8), newfs(8), vsdbutil(8), fsck(8)

    msdos.util -- DOS/Windows (FAT) file system utility

    [-m mountflag1 mountflag2 mountflag3 mountflag4] device node mount
    [-p mountflag1 mountflag2 mountflag3 mountflag4] device probe for mounting
    [-u] deviceunmount
    [-n] device name set name

    mountflags :


    DOS/Windows (FAT) file system consistency check

    verifies and repairs FAT file systems (more commonly known as DOS file systems).

    -p normally started by fsck during automatic reboot, when a FAT file system is detected.
    When preening file systems, fixs common inconsistencies non-interactively.
    If more serious problems are found, indicates that it was not successful, and exits.
    -q quickly check whether the volume was unmounted cleanly.
    If the volume was unmounted cleanly, then the exit status is 0.
    If the volume was not unmounted cleanly, then the exit status will be non-zero.
    A message is printed to standard output describing whether the volume was clean or dirty.
    -f ignored
    -n provide N as the answer to operator questions, except CONTINUE?.
    -y provide Y as the answer
    -p Preen the specified file systems.

    Single User Mode

    Hold CMD - S when booting.
    Start the following five services first:
    launchctl load /System/Library/LaunchDaemons/com.apple.notifyd.plist
    launchctl load /System/Library/LaunchDaemons/com.apple.kextd.plist
    launchctl load /System/Library/LaunchDaemons/com.apple.diskarbitrationd.plist
    launchctl start com.apple.diskarbitrationd
    launchctl load /System/Library/LaunchDaemon/com.apple.DirectoryServices.plist
    launchctl load /System/Library/LaunchDaemons/com.apple.configd.plist


    Starting with Mac OS X 10.6, the input and output notation of disk and partition sizes use power-of-10 suffixes.
    In the past this has been power-of-2, for display or accepted as input.

    See also

    booting OS X utility partition

    Disk Utility (Graphic User Interface) application

    See bless, gpt
    HDIutil for disk images.