'\" t .\" Title: nvme-copy .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 10/30/2026 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: English .\" .TH "NVME\-COPY" "1" "10/30/2026" "NVMe" "NVMe Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" nvme-copy \- Send an NVMe Simple Copy command, provide results .SH "SYNOPSIS" .sp .nf \fInvme\fR [] \fIcopy\fR [\-\-namespace\-id= | \-n ] [\-\-sdlba= | \-d ] [\-\-blocks= | \-b ] [\-\-slbs= | \-s ] [\-\-snsids= | \-N ] [\-\-sopts= | \-O ] [\-\-limited\-retry | \-l] [\-\-force\-unit\-access | \-f] [\-\-prinfow= | \-p ] [\-\-prinfor= | \-P ] [\-\-ref\-tag= | \-r ] [\-\-expected\-ref\-tags= | \-R ] [\-\-app\-tag= | \-a ] [\-\-expected\-app\-tags= | \-A ] [\-\-app\-tag\-mask= | \-m ] [\-\-expected\-app\-tag\-masks= | \-M ] [\-\-dir\-type= | \-T ] [\-\-dir\-spec= | \-S ] [\-\-format= | \-F ] .fi .SH "DESCRIPTION" .sp 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\&. .sp The 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 \*(Aq\-\-namespace\-id\*(Aq 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\&. .SH "OPTIONS" .PP \-n , \-\-namespace\-id= .RS 4 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 \fIall\fR or \fI\-1\fR\&. .RE .PP \-d , \-\-sdlba= .RS 4 64\-bit addr of first destination logical block .RE .PP \-b , \-\-blocks= .RS 4 Comma separated list of the number of blocks in each range .RE .PP \-s , \-\-slbs= .RS 4 Comma separated list of the starting blocks in each range .RE .PP \-\-snsids=, \-N .RS 4 Comma separated list of the source namespace identifiers in each range .RE .PP \-\-sopts=, \-O .RS 4 Comma separated list of the source options in each range .RE .PP \-l, \-\-limited\-retry .RS 4 Sets the limited retry flag\&. .RE .PP \-f, \-\-force\-unit\-access .RS 4 Set the force\-unit access flag\&. .RE .PP \-p , \-\-prinfow= .RS 4 Protection Information field write definition\&. .RE .PP \-P , \-\-prinfor= .RS 4 Protection Information field read definition\&. .RE .PP \-r , \-\-ref\-tag= .RS 4 initial lba reference tag\&. .RE .PP \-R , \-\-expected\-ref\-tags= .RS 4 expected lba reference tags (comma\-separated list)\&. .RE .PP \-a , \-\-app\-tag= .RS 4 lba app tag .RE .PP \-A , \-\-expected\-app\-tags= .RS 4 expected lba app tags (comma\-separated list) .RE .PP \-m , \-\-app\-tag\-mask= .RS 4 lba tag mask .RE .PP \-M , \-\-expected\-app\-tag\-masks= .RS 4 expected lba tag masks (comma\-separated list) .RE .PP \-T , \-\-dir\-type= .RS 4 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\&. .RE .PP \-S , \-\-dir\-spec= .RS 4 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\(cqs capabilities\&. .RE .PP \-F , \-\-format= .RS 4 source range entry format .RE .SH "GLOBAL OPTIONS" .sp The following options are defined at the top\-level nvme command and are available to this subcommand: .PP \-\-dry\-run .RS 4 Print the command that would be executed, but do not actually execute it\&. .RE .PP \-\-no\-ioctl\-probing .RS 4 Disable probing for 64\-bit IOCTL support\&. .RE .PP \-\-no\-retries .RS 4 Disable retry logic on transient errors\&. .RE .PP \-o , \-\-output\-format= .RS 4 Set the reporting format to \fInormal\fR, \fItabular, \*(Aqjson\fR, or \fIbinary\fR\&. Only one output format may be used at a time\&. .RE .PP \-\-output\-format\-version= .RS 4 Select the output format version\&. Version \fI1\fR uses the original field naming, while version \fI2\fR (default) provides more consistent and script\-friendly field names\&. Other versions are rejected\&. .RE .PP \-\-quiet .RS 4 Suppress informational messages\&. Errors are still reported, and \-\-quiet cancels any \-\-verbose for the library log level\&. .RE .PP \-\-set\-options=[,\&...] .RS 4 Set libnvme library options for this invocation\&. Supported keys are \fIforce\-4k\fR, \fImi\-probe\-enabled\fR, \fItest\-base\-dir\fR and \fItest\-sysfs\-dir\fR\&. .RE .PP \-\-timeout= .RS 4 Set the timeout for the command in milliseconds\&. \fIinfinite\fR or \fI\-1\fR waits without a time limit (0xffffffff)\&. .RE .PP \-v, \-\-verbose .RS 4 Increase the level of detail in the output\&. May be specified multiple times to further increase verbosity\&. .RE .sp These options can also be set as machine\-wide defaults in nvme\-cli\&.conf(5)\&. A command\-line flag always overrides the file\&. .SH "EXAMPLES" .sp No examples yet\&. .SH "NVME" .sp Part of the nvme\-user suite