NVME-ZNS-REPORT-Z(1)
π nvme-zns-report-zones(1) β the NVMe Manual, bestie edition π
okay so this is nvme-zns-report-zones, from the NVMe Manual (yes, that manual), and it's the glow-up for nvme-zns-report-zones β like, the page you're reading right now. we're retrieving and displaying the Report Zones data structure and honestly? she's iconic. β¨
πΈ NAME πΈ
nvme-zns-report-zones β retrieve and display the Report Zones data structure π
no cap, that's the whole job.
π¦ SYNOPSIS π¦
nvme [<global-options>] zns report-zones <device>
[--namespace-id=<NUM> | -n <NUM>]
[--start-lba=<IONUM> | -s <IONUM>]
[--descs=<NUM> | -d <NUM>]
[--state=<NUM> | -S <NUM>]
[--extended | -e]
[--partial | -p]
like, look at her. so many little flags. so organized. π«Ά
β¨ DESCRIPTION β¨
so for the NVMe device you give her, this sends the Zone Management Receive command, with the Zone Receive Action set to either Report Zones or Extended Report Zones, depending on the extended option. the way she just knows which one you want π§
the <device> parameter is mandatory, periodt β and it can be either the NVMe character device (ex: /dev/nvme0) or a namespace block device (ex: /dev/nvme0n1). you literally cannot skip it, she will not let you. π
on success, the data structure the device hands back gets decoded and displayed in one of several ways. very main character of it. π
π OPTIONS π
-n <NUM>,--namespace-id=<NUM>β use the namespace id you provided for the command. if you don't provide one, the namespace id of the block device gets used instead. and heads up: if the command is issued to a non-block device, this parameter is required (no vibes-based guessing, sorry). also the broadcast value0xffffffffcan be given asallor-1β little shortcut slay. π-s <lba>,--start-lba=<lba>β the starting LBA of the zone where the report begins. that's the launch point, bestie π-d <NUM>,--descs=<NUM>β the number of descriptors to request in the report. ask for what you want fr fr.-S <NUM>,--state=<NUM>β the state of zones to request in the report. known values include:0β List all zones (default) πΈ1β Empty State2β Implicitly Opened State3β Explicitly Opened State4β Closed State5β Full State6β Read Only State7β Offline State
(yes that was a table in the original, we've gone full bullet-list era. aesthetic upgrade, no cap. π)
-e,--extendedβ request to use the Extended Report Zones option. quick warning though: the extended data is not decoded β it just comes back raw, no fancy parsing. don't say I didn't tell you π-p,--partialβ if set, the device returns the number of zones that match the state rather than the number of zones returned in the report. subtle but important, iykyk.
π GLOBAL OPTIONS π
these are defined at the top-level nvme command, and they're available to this subcommand too. so generous of them honestly π«Ά
--dry-runβ print the command that would be executed, but don't actually execute it. manifesting the command without running it β¨--no-ioctl-probingβ disable probing for 64-bit IOCTL support.--no-retriesβ disable retry logic on transient errors. no second chances, we're moving on π-o <fmt>,--output-format=<fmt>β set the reporting format tonormal,tabular,'json, orbinary. only one output format may be used at a time β pick a lane, bestie. π₯--output-format-version=<version>β select the output format version. version1uses the original field naming, while version2(default) provides more consistent and script-friendly field names. other versions are rejected β literally not invited to the party π--quietβ suppress informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. she's quiet but she's still watching. π--set-options=<key=value>[,<key=value>...]β set libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir. mix and match with commas, go off π--timeout=<ms>β set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). she can wait forever, she's patient like that β³-v,--verboseβ increase the level of detail in the output. may be specified multiple times to further increase verbosity. stack 'em, why not π
these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file. always. no exceptions. periodt. π
π EXAMPLES π
- has the program interpret the report for 16 zones, and display the known fields in a human readable format:
# nvme zns report-zones /dev/nvme0 -n 1 -d 16
- show the output in json format with extra details:
# nvme zns report-zones /dev/nvme0 -n 1 -d 16 -o json
like, she ate that. both commands. flawless. π₯
π NVME π
part of nvme-cli. family. found family, even. π
okay so that's the whole page β huge shoutout to the NVMe crew, this one's from nvme-cli, dated 10/30/2026, and it's the NVME-ZNS-REPORT-Z(1) page you just read. go report some zones, bestie π¦β¨
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms