NVME-ID-NS-IND(1)
π NVME-ID-NS-IND(1) β like, the nvme-id-ns-ind page, bestie β¨
okay so welcome to the manual page for nvme-id-ns-ind, part of the NVMe Manual (yes the whole nvme-user situation, we'll get there π«Ά). this is the little guy that sends an NVMe I/O Command Set Independent Identify Namespace command and then hands you back the result and the structure. iconic behavior honestly.
πΈ NAME πΈ
nvme-id-ns-ind β Send NVMe I/O Command Set Independent Identify Namespace, return result and structure.
like, it identifies a namespace in a way that doesn't care which I/O Command Set you're on. independent queen behavior π
π SYNOPSIS π
nvme [<global-options>] id ns-ind <device>
[--namespace-id=<nsid> | -n <nsid>]
[--raw-binary | -b]
π¦ DESCRIPTION π¦
so for the NVMe device you give it, it sends an I/O Command Set Independent identify namespace command and gives you back the result and the returned structure. that's the whole vibe β¨
the <device> parameter is mandatory, no skipping it, and it can be either:
- the NVMe character device (ex:
/dev/nvme0), or - a namespace block device (ex:
/dev/nvme0n1)
here's the tea on how the nsid gets picked π if you give it the character device, the --namespace-id option is mandatory β like, you have to say which namespace. otherwise (block device case) it'll just use the ns-id of the namespace for the block device you opened. and for block devices, the ns-id used can be overridden with that same option. so you always have options, periodt.
on success, the structure may be returned in one of several ways depending on the option flags β either the structure gets parsed by the program, or the raw buffer may be printed to stdout. pick your fighter π₯
β¨ OPTIONS β¨
-n <nsid>,--namespace-id=<nsid>β retrieves the identify namespace structure for the given nsid. this is required for the character devices, or it overrides the block nsid if given. also, the broadcast value0xffffffffcan also be given asallor-1. yes literally those strings, go off π-b,--raw-binaryβ prints the raw buffer to stdout. the structure is not parsed by the program. this overrides the vendor specific and human readable options, so it's got main character energy and wins every argument π
π GLOBAL OPTIONS π
these are defined at the top-level nvme command and are available to this subcommand, so they're kind of everyone's options:
--dry-runβ prints the command that would be executed, but does not actually execute it. window shopping, basically ποΈ--no-ioctl-probingβ disables probing for 64-bit IOCTL support.--no-retriesβ disables retry logic on transient errors. one shot, no take-backs π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,'json, orbinary. only one output format may be used at a time. choose wisely bestie, you can't have all four.--output-format-version=<version>β selects 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 β we don't do that here π--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. it's giving "shh, i'm concentrating" π€«--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir.--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). so you can literally wait forever, no cap β³-v,--verboseβ increases the level of detail in the output. may be specified multiple times to further increase verbosity. stack it, queen π
these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. the file knows its place π«Ά
π₯ EXAMPLES π₯
- has the program interpret the returned buffer and display the known fields in a human readable format:
# nvme id ns-ind /dev/nvme0n1
- if using the character device or overriding namespace id:
# nvme id ns-ind /dev/nvme0 -n 1
# nvme id ns-ind /dev/nvme0n1 -n 1
# nvme id ns-ind /dev/nvme0 --namespace-id=1
- have the program return the raw structure in binary:
# nvme id ns-ind /dev/nvme0n1 --raw-binary > id_ns.raw
# nvme id ns-ind /dev/nvme0n1 -b > id_ns.raw
β οΈ it is probably a bad idea to not redirect stdout when using this mode. like. fr fr. redirect it. your terminal does not deserve that π
π NVME π
part of the nvme-user suite π
and that's the page!! π written for the NVMe manual, version dated 10/30/2026, brought to you by the NVMe source situation β go forth and identify those namespaces bestie, you're gonna slay πβ¨π¦
π¦ 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