Command Section

ZFS-RECEIVE(8)          FreeBSD System Manager's Manual         ZFS-RECEIVE(8)

NAME
     zfs-receive - create snapshot from backup stream

SYNOPSIS
     zfs receive [-FhMnsuv] [-o origin=snapshot] [-o property=value]
         [-x property] filesystem|volume|snapshot
     zfs receive [-FhMnsuv] [-d|-e] [-o origin=snapshot] [-o property=value]
         [-x property] filesystem
     zfs receive -A filesystem|volume

DESCRIPTION
     zfs receive [-FhMnsuv] [-o origin=snapshot] [-o property=value] [-x
       property] filesystem|volume|snapshot

     zfs receive [-FhMnsuv] [-d|-e] [-o origin=snapshot] [-o property=value]
       [-x property] filesystem
       Creates a snapshot whose contents are as specified in the stream
       provided on standard input.  If a full stream is received, then a new
       file system is created as well.  Streams are created using the zfs send
       subcommand, which by default creates a full stream.  zfs recv can be
       used as an alias for zfs receive.

       If an incremental stream is received, then the destination file system
       must already exist, and its most recent snapshot must match the
       incremental stream's source.  For zvols, the destination device link is
       destroyed and recreated, which means the zvol cannot be accessed during
       the receive operation.

       When a snapshot replication package stream that is generated by using
       the zfs send -R command is received, any snapshots that do not exist on
       the sending location are destroyed by using the zfs destroy -d command.

       The ability to send and receive deduplicated send streams has been
       removed.  However, a deduplicated send stream created with older
       software can be converted to a regular (non-deduplicated) stream by
       using the zstream redup command.

       If -o property=value or -x property is specified, it applies to the
       effective value of the property throughout the entire subtree of
       replicated datasets.  Effective property values will be set (-o) or
       inherited (-x) on the topmost in the replicated subtree.  In descendant
       datasets, if the property is set by the send stream, it will be
       overridden by forcing the property to be inherited from the top-most
       file system.  Received properties are retained in spite of being
       overridden and may be restored with zfs inherit -S.  Specifying -o
       origin=snapshot is a special case because, even if origin is a read-
       only property and cannot be set, it's allowed to receive the send
       stream as a clone of the given snapshot.

       Raw encrypted send streams (created with zfs send -w) may only be
       received as is, and cannot be re-encrypted, decrypted, or recompressed
       by the receive process.  Unencrypted streams can be received as
       encrypted datasets, either through inheritance or by specifying
       encryption parameters with the -o options.  Note that the keylocation
       property cannot be overridden to prompt during a receive.  This is
       because the receive process itself is already using the standard input
       for the send stream.  Instead, the property can be overridden after the
       receive completes.

       The added security provided by raw sends adds some restrictions to the
       send and receive process.  ZFS will not allow a mix of raw receives and
       non-raw receives.  Specifically, any raw incremental receives that are
       attempted after a non-raw receive will fail.  Non-raw receives do not
       have this restriction and, therefore, are always possible.  Because of
       this, it is best practice to always use either raw sends for their
       security benefits or non-raw sends for their flexibility when working
       with encrypted datasets, but not a combination.

       The reason for this restriction stems from the inherent restrictions of
       the AEAD ciphers that ZFS uses to encrypt data.  When using ZFS native
       encryption, each block of data is encrypted against a randomly
       generated number known as the "initialization vector" (IV), which is
       stored in the filesystem metadata.  This number is required by the
       encryption algorithms whenever the data is to be decrypted.  Together,
       all of the IVs provided for all of the blocks in a given snapshot are
       collectively called an "IV set".  When ZFS performs a raw send, the IV
       set is transferred from the source to the destination in the send
       stream.  When ZFS performs a non-raw send, the data is decrypted by the
       source system and re-encrypted by the destination system, creating a
       snapshot with effectively the same data, but a different IV set.  In
       order for decryption to work after a raw send, ZFS must ensure that the
       IV set used on both the source and destination side match.  When an
       incremental raw receive is performed on top of an existing snapshot,
       ZFS will check to confirm that the "from" snapshot on both the source
       and destination were using the same IV set, ensuring the new IV set is
       consistent.

       The name of the snapshot (and file system, if a full stream is
       received) that this subcommand creates depends on the argument type and
       the use of the -d or -e options.

       If the argument is a snapshot name, the specified snapshot is created.
       If the argument is a file system or volume name, a snapshot with the
       same name as the sent snapshot is created within the specified
       filesystem or volume.  If neither of the -d or -e options are
       specified, the provided target snapshot name is used exactly as
       provided.

       The -d and -e options cause the file system name of the target snapshot
       to be determined by appending a portion of the sent snapshot's name to
       the specified target filesystem.  If the -d option is specified, all
       but the first element of the sent snapshot's file system path (usually
       the pool name) is used and any required intermediate file systems
       within the specified one are created.  If the -e option is specified,
       then only the last element of the sent snapshot's file system name
       (i.e. the name of the source file system itself) is used as the target
       file system name.

       -F  Force a rollback of the file system to the most recent snapshot
           before performing the receive operation.  If receiving an
           incremental replication stream (for example, one generated by zfs
           send -R [-i|-I]), destroy snapshots and file systems that do not
           exist on the sending side.

       -d  Discard the first element of the sent snapshot's file system name,
           using the remaining elements to determine the name of the target
           file system for the new snapshot as described in the paragraph
           above.

       -e  Discard all but the last element of the sent snapshot's file system
           name, using that element to determine the name of the target file
           system for the new snapshot as described in the paragraph above.

       -h  Skip the receive of holds.  There is no effect if holds are not
           sent.

       -M  Force an unmount of the file system while receiving a snapshot.
           This option is not supported on Linux.

       -n  Do not actually receive the stream.  This can be useful in
           conjunction with the -v option to verify the name the receive
           operation would use.

       -o origin=snapshot
           Forces the stream to be received as a clone of the given snapshot.
           If the stream is a full send stream, this will create the
           filesystem described by the stream as a clone of the specified
           snapshot.  Which snapshot was specified will not affect the success
           or failure of the receive, as long as the snapshot does exist.  If
           the stream is an incremental send stream, all the normal
           verification will be performed.

       -o property=value
           Sets the specified property as if the command zfs set
           property=value was invoked immediately before the receive.  When
           receiving a stream from zfs send -R, causes the property to be
           inherited by all descendant datasets, as through zfs inherit
           property was run on any descendant datasets that have this property
           set on the sending system.

           If the send stream was sent with -c then overriding the compression
           property will have no affect on received data but the compression
           property will be set.  To have the data recompressed on receive
           remove the -c flag from the send stream.

           Any editable property can be set at receive time.  Set-once
           properties bound to the received data, such as normalization and
           casesensitivity, cannot be set at receive time even when the
           datasets are newly created by zfs receive.  Additionally both
           settable properties version and volsize cannot be set at receive
           time.

           The -o option may be specified multiple times, for different
           properties.  An error results if the same property is specified in
           multiple -o or -x options.

           The -o option may also be used to override encryption properties
           upon initial receive.  This allows unencrypted streams to be
           received as encrypted datasets.  To cause the received dataset (or
           root dataset of a recursive stream) to be received as an encryption
           root, specify encryption properties in the same manner as is
           required for zfs create.  For instance:
                 # zfs send tank/test@snap1 | zfs recv -o encryption=on -o
                 keyformat=passphrase -o keylocation=file:///path/to/keyfile

           Note that -o keylocation=prompt may not be specified here, since
           the standard input is already being utilized for the send stream.
           Once the receive has completed, you can use zfs set to change this
           setting after the fact.  Similarly, you can receive a dataset as an
           encrypted child by specifying -x encryption to force the property
           to be inherited.  Overriding encryption properties (except for
           keylocation) is not possible with raw send streams.

       -s  If the receive is interrupted, save the partially received state,
           rather than deleting it.  Interruption may be due to premature
           termination of the stream (e.g. due to network failure or failure
           of the remote system if the stream is being read over a network
           connection), a checksum error in the stream, termination of the zfs
           receive process, or unclean shutdown of the system.

           The receive can be resumed with a stream generated by zfs send -t
           token, where the token is the value of the receive_resume_token
           property of the filesystem or volume which is received into.

           To use this flag, the storage pool must have the extensible_dataset
           feature enabled.  See zpool-features(7) for details on ZFS feature
           flags.

       -u  File system that is associated with the received stream is not
           mounted.

       -v  Print verbose information about the stream and the time required to
           perform the receive operation.

       -x property
           Ensures that the effective value of the specified property after
           the receive is unaffected by the value of that property in the send
           stream (if any), as if the property had been excluded from the send
           stream.

           If the specified property is not present in the send stream, this
           option does nothing.

           If a received property needs to be overridden, the effective value
           will be set or inherited, depending on whether the property is
           inheritable or not.

           In the case of an incremental update, -x leaves any existing local
           setting or explicit inheritance unchanged.

           All -o restrictions (e.g. set-once) apply equally to -x.

     zfs receive -A filesystem|volume
       Abort an interrupted zfs receive -s, deleting its saved partially
       received state.

SEE ALSO
     zfs-send(8), zstream(8)

FreeBSD 13.1-RELEASE-p6        February 16, 2020       FreeBSD 13.1-RELEASE-p6

Command Section

man2web Home...