mkfs.hfsplus man page

mkfs.hfsplus — construct a new HFS Plus file system


mkfs.hfsplus [-N] [-U uid] [-G gid] [-M mask] [-P] [-s] [-b block-size] [-c clump-size-list] [-i first-cnid] [-J [journal-size]] [-n node-size-list] [-v volume-name] special

mkfs.hfsplus -N partition-size [-U uid] [-G gid] [-M mask] [-P] [-h | -w] [-s] [-b block-size] [-c clump-size-list] [-i first-cnid] [-J [journal-size]] [-n node-size-list] [-v volume-name]


mkfs.hfsplus builds an HFS Plus file system on the specified special device. Before running mkfs.hfsplus the disk should be partitioned using the Disk Utility application or pdisk(8).

The file system default parameters are calculated based on the size of the disk partition. Typically the defaults are reasonable, however mkfs.hfsplus has several options to allow the defaults to be selectively overridden. The options are as follows:

-N [partition-size]

Causes the file system parameters to be printed out without really creating the file system. If the argument following the -N starts with a decimal digit, it is assumed to be a partition size. The paritition size may be given in decimal, octal (with leading `0'), or hexadecimal (with leading `0x'). The partition size argument can be specified in 512-byte blocks (with a `b' suffix), petabytes (`p' suffix), terabytes (`t' suffix), gigabytes (`g' suffix), megabytes (`m' suffix), or kilobytes (`k' suffix). All suffixes indicate binary, not decimal, multipliers (e.g., `1k' is 1024 bytes). If no suffix is specified, the value is assumed to be in bytes; if an illegal suffix is specified, it results in a size of 0 bytes.

If the partition size is given, then no special device argument shall be provided. If no partition size is given, then the size of the given special device is used instead, and the special device will not be written to.

-U uid

Set the owner of the file system's root directory to uid.

-G gid

Set the group of the file system's root directory to gid.

-M mask

Specify the octal access permissions mask for the file system's root directory.


Set kHFSContentProtectionBit in the volume's attributes, which will cause the volume to be mounted with the "protect" option if the kernel supports it.


Creates a case-sensitive HFS Plus filesystem. By default a case-insensitive filesystem is created. Case-sensitive HFS Plus file systems require a Mac OS X version of 10.3 (Darwin 7.0) or later.

-b block-size

The allocation block size of the file system. The default value is 4096.

-c clump-size-list

This specifies the clump and/or initial sizes, in allocation blocks, for the various metadata files. Clump sizes are specified with the -c option followed by a comma separated list of the form arg=blocks.

Example: -c c=5000,e=500


Set the attribute file clump size.


Set the allocation bitmap file clump size.


Set the catalog file clump size.


Set the data fork clump size.


Set the extent overflow file clump size.


Set the resource fork clump size.

-i first-cnid

This specifies the initial catalog node ID for user files and directories. The default value is 16.

-J [journal-size]

Creates a journaled HFS+ volume. The default journal size varies, based on the size of the volume. Appending an 'M' to the journal size implies megabytes (i.e. 64M is 64 megabytes). The maximum journal size is 1024 megabytes.

-n node-size-list

This specifies the b-tree node sizes, in bytes, for the various b-tree files. Node sizes are specified with the -n option followed by a comma separated list of the form arg=bytes. The node size must be a power of two and no larger than 32768 bytes.

Example: -n c=8192,e=4096


Set the attribute b-tree node size.


Set the catalog b-tree node size.


Set the extent overflow b-tree node size.

-v volume-name

Volume name (file system name) in ascii or UTF-8 format.

See Also

mount(8), pdisk(8)


The mkfs.hfsplus command appeared in Mac OS X Server 1.0 . As of Mac OS X 10.6, this utility no longer generates HFS standard file systems.


June 19, 2008