NVME-ID-NS-DESCS(1)
π NVME-ID-NS-DESCS(1) β the nvme manual, bestie edition β¨
Okay so picture this: it's an nvme man page, it lives in the NVMe Manual, and it's literally about sending an Identify for a whole list of Namespace Identification Descriptor structures and handing you back both the result and the structure itself. Iconic behavior honestly π
πΈ NAME πΈ
nvme-id-ns-descs β sends the NVMe Identify command for a list of Namespace Identification Descriptor structures, then returns the result and the structure. That's the whole vibe. π
β¨ SYNOPSIS β¨
nvme [<global-options>] id ns-descs <device>
[--namespace-id=<nsid> | -n <nsid>]
[--raw-binary | -b]
Yes bestie, that's the shape of it β read it out loud like a little chant, it helps π§
π DESCRIPTION π
So for the NVMe device you hand over, this bad boy sends an identify for a list of namespace identification descriptor structures command, and then it gives you back the result plus the returned structure. Lowkey does exactly what it says on the tin π
The <device> parameter is mandatory β no device, no party π β and it can be either:
- the NVMe character device (ex:
/dev/nvme0), or - a namespace block device (ex:
/dev/nvme0n1).
Now here's the part where you have to actually pay attention: if you give it the character device, then the --namespace-id option is mandatory, otherwise it'll just use the ns-id of the namespace for the block device you opened. And for block devices, the ns-id it uses can be overridden with that same option. Slay, flexible queen π
On success (yay β¨), the structure can come back at you in one of several ways depending on your option flags β either the structure gets parsed by the program, or the raw buffer gets printed straight to stdout. You choose your fighter π¦
π OPTIONS π
-n <nsid>,--namespace-id=<nsid>β retrieve the identify namespace identification descriptor structure for the given nsid. This one is required for character devices, or it overrides the block nsid if given. The broadcast value0xffffffffcan also be given asallor-1β-b,--raw-binaryβ print the raw buffer to stdout. The structure is not parsed by the program. Raw and unfiltered, main character energy π
π GLOBAL OPTIONS π
These ones are defined up at the top-level nvme command, and they're available to this subcommand too. So they're not ours, but they're family π«Ά
--dry-runβ print the command that would be executed, but don't actually execute it. Manifesting the command without committing π--no-ioctl-probingβ disable probing for 64-bit IOCTL support.--no-retriesβ disable retry logic on transient errors. One shot, one opportunity π―-o <fmt>,--output-format=<fmt>β set the reporting format tonormal,tabular,json, orbinary. Only one output format may be used at a time, so pick your fave and commit π--output-format-version=<version>β select the output format version. Version 1 uses the original field naming, while version 2 (the default) provides more consistent and script-friendly field names. Other versions are rejected β don't try it π«--quietβ suppress informational messages. Errors are still reported, and--quietcancels any--verbosefor the library log level. Shhh, we're being mysterious π€«--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.--timeout=<ms>β set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). No clock-watching allowed β³-v,--verboseβ increase the level of detail in the output. May be specified multiple times to further increase verbosity. Say it with me: more-v, more lore π
Heads up bestie: these options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. Always. No cap. π₯
π¦ EXAMPLES π¦
- If you're using the character device or overriding namespace #2:
# nvme id ns-descs /dev/nvme0 -n 1
# nvme id ns-descs /dev/nvme0n1 -n 2
# nvme id ns-descs /dev/nvme0 --namespace-id=1
- Have the program return the raw structure in binary:
# nvme id ns-descs /dev/nvme0n1 --raw-binary > ns_descs.raw
# nvme id ns-descs /dev/nvme0n1 -b > ns_descs.raw
β οΈ And honestly? It is probably a bad idea to not redirect stdout when using this mode. Like, genuinely. Don't do that to yourself π
π NVME π
Part of the nvme-user suite. Family reunion vibes π«Ά
And that's the whole page, bestie β NVMe, dated 10/30/2026, NVME-ID-NS-DESCS(1), served with love β¨ Go forth and identify those namespace descriptors π
π
π¦ 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