SYNOPSIS

nvme [<global-options>] copy <device>
                        [--namespace-id=<nsid> | -n <nsid>]
                        [--sdlba=<sdlba> | -d <sdlba>]
                        [--blocks=<nlb-list,> | -b <nlb-list,>]
                        [--slbs=<slbas,> | -s <slbas,>]
                        [--snsids=<snsids,> | -N <snsids,>]
                        [--sopts=<sopts,> | -O <sopts,>]
                        [--limited-retry | -l]
                        [--force-unit-access | -f]
                        [--prinfow=<prinfow> | -p <prinfow>]
                        [--prinfor=<prinfor> | -P <prinfor>]
                        [--ref-tag=<reftag> | -r <reftag>]
                        [--expected-ref-tags=<reftag,> | -R <reftag,>]
                        [--app-tag=<apptag> | -a <apptag>]
                        [--expected-app-tags=<apptag,> | -A <apptag,>]
                        [--app-tag-mask=<appmask> | -m <appmask>]
                        [--expected-app-tag-masks=<appmask,> | -M <appmask,>]
                        [--dir-type=<type> | -T <type>]
                        [--dir-spec=<spec> | -S <spec>]
                        [--format=<entry-format> | -F <entry-format>]

DESCRIPTION

The Copy command is used by the host to copy data from one or more source logical block ranges to a single consecutive destination logical block range.

The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). If the character device is given, the '--namespace-id' option is mandatory, otherwise it will use the ns-id of the namespace for the block device you opened. For block devices, the ns-id used can be overridden with the same option.

OPTIONS

-n <nsid>
--namespace-id=<nsid>

Sends the command with the requested nsid. This is required for the character devices, or overrides the block nsid if given. The broadcast value 0xffffffff can also be given as all or -1.

-d <sdlba>
--sdlba=<sdlba>

64-bit addr of first destination logical block

-b <nlb-list,>
--blocks=<nlb-list,>

Comma separated list of the number of blocks in each range

-s <slbas,>
--slbs=<slbas,>

Comma separated list of the starting blocks in each range

--snsids=<snsids,>
-N <snsids,>

Comma separated list of the source namespace identifiers in each range

--sopts=<sopts,>
-O <sopts,>

Comma separated list of the source options in each range

-l
--limited-retry

Sets the limited retry flag.

-f
--force-unit-access

Set the force-unit access flag.

-p <prinfow>
--prinfow=<prinfow>

Protection Information field write definition.

-P <prinfor>
--prinfor=<prinfor>

Protection Information field read definition.

-r <reftag>
--ref-tag=<reftag>

initial lba reference tag.

-R <reftag,>
--expected-ref-tags=<reftag,>

expected lba reference tags (comma-separated list).

-a <apptag>
--app-tag=<apptag>

lba app tag

-A <apptag,>
--expected-app-tags=<apptag,>

expected lba app tags (comma-separated list)

-m <appmask>
--app-tag-mask=<appmask>

lba tag mask

-M <appmask,>
--expected-app-tag-masks=<appmask,>

expected lba tag masks (comma-separated list)

-T <type>
--dir-type=<type>

Optional directive type. The nvme-cli only enforces the value be in the defined range for the directive type, though the NVMe specification (1.3a) defines only one directive, 01h, for write stream identifiers.

-S <spec>
--dir-spec=<spec>

Optional field for directive specifics. When used with write streams, this value is defined to be the write stream identifier. The nvme-cli will not validate the stream requested is within the controller’s capabilities.

-F <entry-format>
--format=<entry-format>

source range entry format

GLOBAL OPTIONS

The following options are defined at the top-level nvme command and are available to this subcommand:

--dry-run

Print the command that would be executed, but do not actually execute it.

--no-ioctl-probing

Disable probing for 64-bit IOCTL support.

--no-retries

Disable retry logic on transient errors.

-o <fmt>
--output-format=<fmt>

Set the reporting format to normal, tabular, 'json, or binary. Only one output format may be used at a time.

--output-format-version=<version>

Select the output format version. Version 1 uses the original field naming, while version 2 (default) provides more consistent and script-friendly field names. Other versions are rejected.

--quiet

Suppress informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level.

--set-options=<key=value>[,<key=value>…]

Set libnvme library options for this invocation. Supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.

--timeout=<ms>

Set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff).

-v
--verbose

Increase the level of detail in the output. May be specified multiple times to further increase verbosity.

These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file.

EXAMPLES

No examples yet.

NVME

Part of the nvme-user suite