NVME-REGISTRY-LIST(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NVME-REGISTRY-LIST(1) β€” aka the nvme-registry-list page, bestie edition

okay so real quick, this is from the NVMe Manual (yes the whole manual, and this is one page of it) and it's literally about listing who owns your NVMe-oF controllers. stay with me, it's cute. πŸ’–


✨ NAME ✨

nvme-registry-list β€” list NVMe-oF controller ownership registry entries. that's it. that's the whole job. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

nvme [<global-options>] registry list

🌸 DESCRIPTION 🌸

Okay so picture this: there's a whole NVMe-oF controller ownership registry, and this command lists all the live entries in it. What does that mean? The registry is where we write down which orchestrator owns each connected NVMe-oF controller β€” like nvme-stas, or nbft, those girlies.

Where does it live? Under /run/nvme/registry/ β€” it's stored as one directory per live controller, and inside each directory there's one plain-text file per attribute. So like, /run/nvme/registry/nvme3/owner is a whole real path, bestie. iykyk.

One entry gets printed per live registered controller. And here's the vibe check on what does not show up:

  • controllers with no registry entry (the unowned ones 😭) β€” nope, not shown
  • non-fabrics (PCIe) controllers β€” also not shown, because they're never registered in the first place, not even once
  • stale entries whose corresponding /dev/nvmeN device node no longer exists β€” silently skipped. no error, no drama, they just ghost us. πŸ’€

πŸ”₯ OPTIONS πŸ”₯

πŸ’œ GLOBAL OPTIONS πŸ’œ

So these ones are defined up at the top-level nvme command, and they're available to this subcommand too (slay, they trickle down):

  • --dry-run β€” prints the command that would be executed but doesn't actually execute it. imaginary command, no consequences, we love a rehearsal. 🧚
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support.
  • --no-retries β€” disables the 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 at a time, don't try to be greedy. πŸ“
  • --output-format-version=<version> β€” picks the output format version. Version 1 uses the original field naming, while version 2 (the default) gives you more consistent and script-friendly field names. any other version just gets rejected, periodt.
  • --quiet β€” suppresses informational messages. errors are still reported (can't hide those), and heads up: --quiet cancels any --verbose for the library log level. it's a whole cancellation. πŸ™ˆ
  • --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. very much a put-together list.
  • --timeout=<ms> β€” sets the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). main character energy: waits forever, unbothered. ⭐
  • -v, --verbose β€” increases the level of detail in the output. you can specify it multiple times to get even more verbose. more is more, honestly.

And important tea: these options can also be set as machine-wide defaults in nvme-cli.conf(5). but a command-line flag always overrides the file. always. no cap. πŸ’…


🌈 EXAMPLES 🌈

  • List all owned controllers:
# nvme registry list
nvme1
  owner        stas
nvme3
  owner        nbft

look at them, all owned and accounted for. iconic. πŸ‘‘


🫢 SEE ALSO 🫢

nvme-registry-retrieve(1) nvme-registry-update(1) nvme-registry-delete(1) nvme-disconnect-all(1) β€” go read the whole registry saga, it's giving series finale.


πŸ‘‘ NVME πŸ‘‘

Part of the nvme-user suite. obviously.


and that's the page, bestie ✨ β€” brought to you by the NVMe crew, version dated 10/30/2026, filed under NVME-REGISTRY-LIST(1). go list some registries, you're gonna ate πŸ’–

πŸ“¦ where this page comes from