NVME-ID-NVM-CTRL(1)
π NVME-ID-NVM-CTRL(1) β like, the nvme-id-nvm-ctrl page, bestie
okay so real talk, this is a page from the NVMe Manual and it's all about one specific nvme-cli subcommand. buckle up π
β¨ NAME β¨
nvme-id-nvm-ctrl β literally sends the NVMe Identify Controller command, but the NVM command set version, and hands you back the structure it gets. no cap. π¦
πΈ SYNOPSIS πΈ
nvme [<global-options>] id nvm-ctrl <device>
that's the whole vibe check. nvme, maybe some global options, then id nvm-ctrl, then the device. periodt. π
π DESCRIPTION π
So for the NVMe device you point at, this sends the NVM command set's identify controller command and gives you back the result and the returned structure. it's giving "ask the drive who it is, but the NVM-command-set edition" β¨
The <device> parameter is mandatory β like, you cannot skip it, bestie, it's not optional β and it can be either:
- the NVMe character device (ex:
/dev/nvme0), or - a namespace block device (ex:
/dev/nvme0n1)
On success, the data structure the device returns gets decoded and displayed in one of several ways. cute, right? π
π§ OPTIONS π§
π GLOBAL OPTIONS π
these ones are defined up at the top-level nvme command, but they're available to this subcommand too. main character options, honestly. π
--dry-runβ prints the command that would be executed, but does not actually execute it. all vibes, zero commitment π--no-ioctl-probingβ disables probing for 64-bit IOCTL support.--no-retriesβ turns off the retry logic on transient errors. one shot, no do-overs π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,json, orbinary. only one output format at a time, so pick your fighter. β--output-format-version=<version>β selects 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? rejected. sorry not sorry π«Ά--quietβ suppresses informational messages. errors are still reported, and heads up:--quietcancels any--verbosefor the library log level. they do not coexist, bestie π--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. the supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir. π--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits with no time limit (0xffffffff). patience is a virtue etc etc πΈ-v,--verboseβ increases the level of detail in the output. you can specify it multiple times to get even more verbose. go off π₯
ngl, these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file β CLI stays winning π
π EXAMPLES π
- Has the program interpret the returned buffer and display the known fields in a human readable format:
# nvme id nvm-ctrl /dev/nvme0
- Show the output in json format:
# nvme id nvm-ctrl /dev/nvme0 -o json
π NVME π
Part of nvme-cli. that's the family, that's the lineage π§¬
and that's the whole page, bestie! πβ¨ this iconic little number comes from the NVMe Manual (source: nvme-cli), dated 10/30/2026 β go forth and identify those controllers, you absolute legend π«Άπ
π¦ 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