NVME-LIST-SUBSYS(1)
β¨ NVME-LIST-SUBSYS β¨
okay bestie, so you know how the nvme command has a whole pile of subcommands and this is the list-subsys one β the one that's basically the "who's who" of your NVMe subsystems? Yeah. That's this page. It lives in section 1 of the manual, and it's giving main character energy for the whole nvme-user suite. π
πΈ NAME πΈ
nvme-list-subsys β literally the command that lists, like, all the NVMe subsystems. no cap. π¦
β SYNOPSIS β
nvme [<global-options>] list-subsys <device>
π DESCRIPTION π
So the way this works: it goes and scans the sysfs tree looking for NVM Express subsystems, and then it hands you back the controllers for those subsystems plus some pertinent info about them. Honestly very demure, very mindful. π
And if you pass it a device? Then it's like, ok focus, and it prints out only the values for the controllers and subsystems that actually lead to that device. iykyk. π₯
π OPTIONS π
π GLOBAL OPTIONS π
These ones are defined up at the top-level nvme command, but listen β they're totally available to this subcommand too. Sharing is caring. π«Ά
--dry-runβ prints out the command that would be executed, but does not actually execute it. window shopping, basically. ποΈ--no-ioctl-probingβ turns off probing for 64-bit IOCTL support. bye felicia to that check. π--no-retriesβ disables the retry logic on transient errors. one shot, one opportunity. π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,json, orbinary. and important: only one output format at a time, bestie. don't be greedy. π--output-format-version=<version>β picks the output format version. version1uses the original field naming, while version2(which is the default) gives you more consistent and script-friendly field names. any other version? rejected. ghosted. π--quietβ suppresses informational messages. errors are still reported, and heads up:--quietcancels any--verbosefor the library log level. they cannot coexist, it's messy. π€--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. mix and match, it's cute. β¨--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). girl will wait forever. π-v,--verboseβ increases the level of detail in the output. and you can specify it multiple times to further increase verbosity. stack it, queen. π
side note: these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file. no exceptions, periodt. π
π¦ EXAMPLES π¦
okay first, the classic. just run it, no frills:
root@host[1]# nvme list-subsys
nvme-subsys0 - NQN=nvmf-test
\
+- nvme0 rdma traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.1
+- nvme1 rdma traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.2
nvme-subsys1 - NQN=nvmf-test2
\
+- nvme2 rdma traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.2
+- nvme3 rdma traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.1
and now the same thing but make it JSON, because we're feeling script-y today:
root@host[1]# nvme list-subsys -o json
{
"Subsystems" : [
{
"Name" : "nvme-subsys0",
"NQN" : "nvmf-test"
},
{
"Paths" : [
{
"Name" : "nvme0",
"Transport" : "rdma",
"Address" : "traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.1",
"AddressDetails" : {
"traddr" : "1.1.1.3",
"host_traddr" : "1.1.1.1",
"trsvcid" : "4420"
}
},
{
"Name" : "nvme1",
"Transport" : "rdma",
"Address" : "traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.2",
"AddressDetails" : {
"traddr" : "1.1.1.3",
"host_traddr" : "1.1.1.2",
"trsvcid" : "4420"
}
}
]
},
{
"Name" : "nvme-subsys1",
"NQN" : "nvmf-test2"
},
{
"Paths" : [
{
"Name" : "nvme2",
"Transport" : "rdma",
"Address" : "traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.2",
"AddressDetails" : {
"traddr" : "1.1.1.3",
"host_traddr" : "1.1.1.2",
"trsvcid" : "4420"
}
},
{
"Name" : "nvme3",
"Transport" : "rdma",
"Address" : "traddr=1.1.1.3,trsvcid=4420,host_traddr=1.1.1.1",
"AddressDetails" : {
"traddr" : "1.1.1.3",
"host_traddr" : "1.1.1.1",
"trsvcid" : "4420"
}
}
]
}
]
}
π NVME π
yep, it's part of the nvme-user</> suite. family. π
π NOTES π
root@hostmailto:root@host
and that's the whole page, bestie! π this gem is from the NVMe manual, dated 10/30/2026, and it's filed under NVME-LIST-SUBSYS(1) β go forth and list those subsystems, you absolute icon. π§ββοΈβ¨
π¦ 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