ZPOOL-CREATE(8)

NAME
zpool-create - Creates a new ZFS storage pool

SYNOPSIS
zpool create [-dfn] [-m mountpoint] [-o property=value]... [-o feature@feature=value] [-o compatibility=off | legacy | file [,file...]] [-O file-system-property=value]... [-R root] pool vdev...

DESCRIPTION

    zpool create [-dfn] [-m mountpoint] [-o property=value]... [-o feature@feature=value]... [-o compatibility=off | legacy | file [,file...]] [-O file-system-property=value]... [-R root] [-t tname] pool vdev... Creates a new storage pool containing the virtual devices specified on the command line. The pool name must begin with a letter, and can only contain alphanumeric characters as well as underscore ("_"), dash ("-"), colon (""):, space (" "), and period ("").. The pool names mirror, raidz, draid, spare and log are reserved, as are names beginning with mirror, raidz, draid, spare, and the pattern c[0-9]. The vdev specification is described in the Virtual Devices section of zpoolconcepts(8).

    The command attempts to verify that each device specified is accessible and not currently in use by another subsystem. However this check is not robust enough to detect simultaneous attempts to use a new device in different pools, even if multihost is enabled. The administrator must ensure that simultaneous invocations of any combination of zpool replace, zpool create, zpool add, or zpool labelclear, do not refer to the same device. Using the same device in two pools will result in pool corruption.

    There are some uses, such as being currently mounted, or specified as the dedicated dump device, that prevents a device from ever being used by ZFS. Other uses, such as having a preexisting UFS file system, can be overridden with the -f option.

    The command also checks that the replication strategy for the pool is consistent. An attempt to combine redundant and non-redundant storage in a single pool, or to mix disks and files, results in an error unless -f is specified. The use of differently sized devices within a single raidz or mirror group is also flagged as an error unless -f is specified.

    Unless the -R option is specified, the default mount point is /pool. The mount point must not exist or must be empty, or else the root dataset cannot be mounted. This can be overridden with the -m option.

    By default all supported features are enabled on the new pool. The -d option or the -o compatibility property (eg: -o compatibility=2020 ) can be used to restrict the features that are enabled, so that the pool can be imported on other releases of the ZFS software.

    -d  Do not enable any features on the new pool. Individual features can be enabled by setting their corresponding properties to enabled with the -o option. See zpool-features(5) for details about feature properties.

    -f  Forces use of vdevs, even if they appear in use or specify a conflicting replication level. Not all devices can be overridden in this manner.

    -m mountpoint
        Sets the mount point for the root dataset. The default mount point is /pool or altroot/pool if altroot is specified. The mount point must be an absolute path, legacy, or none. For more information on dataset mount points, see zfs(8).

    -n  Displays the configuration that would be used without actually creating the pool. The actual pool creation can still fail due to insufficient privileges or device sharing.

    -o property=value
        Sets the given pool properties. See the zpoolprops(8) manual page for a list of valid properties that can be set.

    -o compatibility=off | legacy | file [,file...]
        Specifies compatibility feature sets. See zpool-features(5) for more information about compatibility feature sets.

    -o feature@feature=value
        Sets the given pool feature. See the zpool-features(5) section for a list of valid features that can be set. Value can be either disabled or enabled.

    -O file-system-property=value
        Sets the given file system properties in the root file system of the pool. See the zfsprops(8) manual page for a list of valid properties that can be set.

    -R root
        Equivalent to -o cachefile=none -o altroot=root

    -t tname
        Sets the in-core pool name to tname while the on-disk name will be the name specified as the pool name pool. This will set the default cachefile property to none. This is intended to handle name space collisions when creating pools for other systems, such as virtual machines or physical machines whose pools live on network block devices.

SEE ALSO
zpool-destroy(8), zpool-export(8), zpool-import(8)