nvme-write-zeroes1
Send an nvme write zeroes command, return results
Usage
nvme [<global-options>] write-zeroes <device>
[--start-block=<slba> | -s <slba>]
[--block-count=<nlb> | -c <nlb>]
[--ref-tag=<reftag> | -r <reftag>]
[--prinfo=<prinfo> | -p <prinfo>]
[--app-tag-mask=<appmask> | -m <appmask>]
[--app-tag=<apptag> | -a <apptag>] [--deac | -d]
[--limited-retry | -l] [--force-unit-access | -f]
[--namespace-id=<nsid> | -n <nsid>]
[--storage-tag<storage-tag> | -S <storage-tag>]
[--storage-tag-check<storage-tag-check> | -C
<storage-tag-check>]
[--dir-type=<dtype> | -T <dtype>]
[--dir-spec=<dspec> | -D <dspec>]
[--namespace-zeroes | -Z]
Overview
The Write Zeroes command is used to set a range of logical blocks to 0.
Options
-
-s <slba>, --start-block=<slba> -
Start block.
-
-c <nlb>, --block-count=<nlb> -
Number of logical blocks to write zeroes.
-
-p <prinfo>, --prinfo=<prinfo> -
Protection Information field definition.
Bit Description 3 PRACT: Protection Information Action. When set to 1, PI is stripped/inserted on read/write when the block format’s metadata size is 8. When set to 0, metadata is passes. 2:0 PRCHK: Protection Information Check: 2 Set to 1 enables checking the guard tag 1 Set to 1 enables checking the application tag 0 Set to 1 enables checking the reference tag
-
-r <reftag>, --ref-tag=<reftag> -
Optional reftag when used with protection information.
-
-m <appmask>, --app-tag-mask=<appmask> -
Optional application tag mask when used with protection information.
-
-a <apptag>, --app-tag=<apptag> -
Optional application tag when used with protection information.
-
-l, --limited-retry -
Sets the limited retry flag.
-
-d, --deac -
Sets the DEAC bit, requesting controller deallocate the logical blocks.
-
-f, --force-unit-access -
Set the force-unit access flag.
-
-n <nsid>, --namespace-id=<nsid> -
Namespace ID use in the command. The broadcast value 0xffffffff can also be given as all or -1.
-
-S <storage-tag>, --storage-tag=<storage-tag> -
Variable Sized Logical Block Storage Tag(LBST).
-
-C <storage-tag-check>, --storage-tag-check=<storage-tag-check> -
This bit specifies the Storage Tag field shall be checked as part of end-to-end data protection processing.
-
-T <dtype>, --dir-type=<dtype> -
Directive type
-
-D <dspec>, --dir-spec=<dspec> -
Directive specific
-
-Z, --namespace-zeroes -
If set, then the controller clear all logical blocks to zero in the entire namespace.
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
Releases
6 releases since Debian 9 (Stretch); the text changed 5 times.
--deac since Debian 10 (Buster);
--dir-spec since Debian 13 (Trixie);
--dir-type since Debian 13 (Trixie);
--dry-run since Arch Linux 2026-11-01;
--namespace-zeroes since Debian 13 (Trixie);
--no-ioctl-probing since Arch Linux 2026-11-01;
--no-retries since Arch Linux 2026-11-01;
--output-format since Debian 13 (Trixie);
--output-format-version since Arch Linux 2026-11-01;
--quiet since Arch Linux 2026-11-01;
--set-options since Arch Linux 2026-11-01;
--storage-tag since Debian 12 (Bookworm);
--storage-tag-check since Debian 12 (Bookworm);
--timeout since Debian 13 (Trixie);
--verbose since Debian 13 (Trixie);
-C since Debian 12 (Bookworm);
-D since Debian 13 (Trixie);
-S since Debian 12 (Bookworm);
-T since Debian 13 (Trixie);
-Z since Debian 13 (Trixie);
-d since Debian 10 (Buster);
-o since Debian 13 (Trixie);
-v since Debian 13 (Trixie).
--force until Debian 12 (Bookworm);
-t until Debian 13 (Trixie).