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

# [NAME](#NAME)

`zfs-create` — create ZFS dataset

# [SYNOPSIS](#SYNOPSIS)

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

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

# [DESCRIPTION](#DESCRIPTION)

`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.

[`-o`](#o) `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.

[`-p`](#p)

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.

[`-n`](#n)

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.

[`-P`](#P)

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.

[`-u`](#u)

Do not mount the newly created file system.

[`-v`](#v)

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 [*path*](#path) 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**](#blocksize).

[`-b`](#b) `blocksize`

Equivalent to `-o` **volblocksize**=`blocksize`. If this option is specified in conjunction with `-o` **volblocksize**, the resulting behavior is undefined.

[`-o`](#o~2) `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.

[`-p`](#p~2)

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.

[`-s`](#s)

Creates a sparse volume with no reservation. See [**volsize**](#volsize) in the [*Native Properties*](#Native) section of [zfsprops(7)](/man/os/zfs/zfsprops.7) for more information about sparse volumes.

[`-n`](#n~2)

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.

[`-P`](#P~2)

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 [**refreservation**](#refreservation) if the volume is not sparse.

[`-v`](#v~2)

Print verbose information about the created dataset.

## [ZFS for Swap](#ZFS_for_Swap)

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.

# [EXAMPLES](#EXAMPLES)

## [Example 1: Creating a ZFS File System Hierarchy](#Example_1_:_Creating_a_ZFS_File_System_Hierarchy)

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`

## [Example 2: Promoting a ZFS Clone](#Example_2_:_Promoting_a_ZFS_Clone)

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
```

# [SEE ALSO](#SEE_ALSO)

[zfs-destroy(8)](/man/os/zfs/zfs-destroy.8), [zfs-list(8)](/man/os/zfs/zfs-list.8), [zpool-create(8)](/man/os/zfs/zpool-create.8)

June 2, 2023 OpenZFS

---

Document: zfs-create(8) from zfs 2.4.4-r3 (Chainguard OS)
Source: https://github.com/openzfs/zfs
