zfs-create.8

ZFS-CREATE(8) System Manager's Manual ZFS-CREATE(8)

zfs-createcreate ZFS dataset

zfs create [-Pnpuv] [-o property=value]… filesystem

zfs create [-ps] [-b blocksize] [-o property=value]… -V size volume

zfs create [-Pnpuv] [-o property=value]… filesystem
Creates a new ZFS file system. The file system is automatically mounted according to the mountpoint property inherited from the parent, unless the -u option is used.
property=value
Sets the specified property as if the command zfs set property=value was invoked at the same time the dataset was created. Any editable ZFS property can also be set at creation time. Multiple -o options can be specified. An error results if the same property is specified in multiple -o options.
Creates all the non-existing parent datasets. Datasets created in this manner are automatically mounted according to the mountpoint property inherited from their parent. Any property specified on the command line using the -o option is ignored. If the target filesystem already exists, the operation completes successfully.
Do a dry-run ("No-op") creation. No datasets will be created. This is useful in conjunction with the -v or -P flags to validate properties that are passed via -o options and those implied by other options. The actual dataset creation can still fail due to insufficient privileges or available capacity.
Print machine-parsable verbose information about the created dataset. Each line of output contains a key and one or two values, all separated by tabs. The create_ancestors and create keys have filesystem as their only value. The create_ancestors key only appears if the -p option is used. The property key has two values, a property name that property's value. The property key may appear zero or more times, once for each property that will be set local to filesystem due to the use of the -o option.
Do not mount the newly created file system.
Print verbose information about the created dataset.
zfs create [-ps] [-b blocksize] [-o property=value]… -V size volume
Creates a volume of the given size. The volume is exported as a block device in /dev/zvol/path, where is the name of the volume in the ZFS namespace. The size represents the logical size as exported by the device. By default, a reservation of equal size is created.

size is automatically rounded up to the nearest multiple of the .

blocksize
Equivalent to -o volblocksize=blocksize. If this option is specified in conjunction with -o volblocksize, the resulting behavior is undefined.
property=value
Sets the specified property as if the zfs set property=value command was invoked at the same time the dataset was created. Any editable ZFS property can also be set at creation time. Multiple -o options can be specified. An error results if the same property is specified in multiple -o options.
Creates all the non-existing parent datasets. Datasets created in this manner are automatically mounted according to the mountpoint property inherited from their parent. Any property specified on the command line using the -o option is ignored. If the target filesystem already exists, the operation completes successfully.
Creates a sparse volume with no reservation. See in the section of zfsprops(7) for more information about sparse volumes.
Do a dry-run ("No-op") creation. No datasets will be created. This is useful in conjunction with the -v or -P flags to validate properties that are passed via -o options and those implied by other options. The actual dataset creation can still fail due to insufficient privileges or available capacity.
Print machine-parsable verbose information about the created dataset. Each line of output contains a key and one or two values, all separated by tabs. The create_ancestors and create keys have volume as their only value. The create_ancestors key only appears if the -p option is used. The property key has two values, a property name that property's value. The property key may appear zero or more times, once for each property that will be set local to volume due to the use of the -b or -o options, as well as if the volume is not sparse.
Print verbose information about the created dataset.

Swapping to a ZFS volume is prone to deadlock and not recommended. See OpenZFS FAQ.

Swapping to a file on a ZFS filesystem is not supported.

The following commands create a file system named pool/home and a file system named pool/home/bob. The mount point /export/home is set for the parent file system, and is automatically inherited by the child file system.

# zfs create pool/home
# zfs set mountpoint=/export/home pool/home
# zfs create pool/home/bob

The following commands illustrate how to test out changes to a file system, and then replace the original file system with the changed one, using clones, clone promotion, and renaming:

# zfs create pool/project/production
  populate /pool/project/production with data
# zfs snapshot pool/project/production@today
# zfs clone pool/project/production@today pool/project/beta
  make changes to /pool/project/beta and test them
# zfs promote pool/project/beta
# zfs rename pool/project/production pool/project/legacy
# zfs rename pool/project/beta pool/project/production
  once the legacy version is no longer needed, it can be destroyed
# zfs destroy pool/project/legacy

zfs-destroy(8), zfs-list(8), zpool-create(8)

March 16, 2022 Debian