NVME-ID-NS-IND(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… 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 value 0xffffffff can also be given as all or -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 to normal, tabular, 'json, or binary. 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 --quiet cancels any --verbose for 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 are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.
  • --timeout=<ms> β€” sets the timeout for the command in milliseconds. infinite or -1 waits 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 πŸ”₯

  1. has the program interpret the returned buffer and display the known fields in a human readable format:
# nvme id ns-ind /dev/nvme0n1
  1. 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
  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