NVME-LOG-CHANGED-(1)
π nvme-log-changed-ns-list β the NVMe Manual, bestie edition β¨
Okay so this page lives in the NVMe manual, and it's all about nvme-log-changed-ns-list: sending an NVMe Changed Namespace List log page request, and getting back both the result and the log. Let's get into it π«Ά
πΈ NAME πΈ
nvme-log-changed-ns-list β sends the NVMe Changed Namespace List log page request, and gives you back the result and the log. Two-for-one, we love to see it π
β¨ SYNOPSIS β¨
nvme [<global-options>] log changed-ns-list <device> [--raw-binary | -b]
π¦ DESCRIPTION π¦
So what this does is: it grabs the NVMe Changed Namespace List log page off an NVMe device and hands you the returned structure. Iconic behavior, honestly.
The <device> parameter is mandatory β no skipping it, bestie β and it has to be an NVMe character device (like, for example, /dev/nvme0).
When it works? The returned Changed Namespace List log structure can come back in one of several ways depending on which option flags you use, lowkey your call:
- the program can parse the structure and print it out in a readable format, or
- the raw buffer can be printed to
stdoutso another program can parse it instead.
It's giving "choose your own adventure" but make it storage π
π OPTIONS π
-b,--raw-binaryβ prints the raw Changed Namespace List log buffer straight tostdout. No parsing, no filter, just vibes and bytes π
π GLOBAL OPTIONS π
These ones are defined up at the top-level nvme command, and they're available to this subcommand too. Main character options, honestly β¨
--dry-runβ prints the command that would be executed, but doesn't actually execute it. All talk, no ioctl π--no-ioctl-probingβ disables probing for 64-bit IOCTL support.--no-retriesβ disables the retry logic on transient errors. One shot, periodt.-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,'json, orbinary. Only one output format at a time, bestie β pick a lane π--output-format-version=<version>β selects the output format version. Version1uses the original field naming, while version2(the default) gives you more consistent and script-friendly field names. Any other versions get rejected, no negotiations π--quietβ suppresses informational messages. Errors are still reported, and--quietcancels any--verbosefor the library log level. It's giving "I'm quiet but I'm still watching" π--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 a little combo platter π--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). Patience is a virtue, or whatever πΈ-v,--verboseβ increases the level of detail in the output. You can specify it multiple times to crank the verbosity up even further. Spam it, queen π
Oh and psst β these options can also be set as machine-wide defaults in nvme-cli.conf(5). But a command-line flag always overrides the file. Command line stays winning, no cap π₯
π EXAMPLES π
- Print the Changed Namespace List Log page in a human readable format:
# nvme log changed-ns-list /dev/nvme0
- Print the raw Changed Namespace List log to a file:
# nvme log changed-ns-list /dev/nvme0 --raw-binary > log.raw
β οΈ Real talk: it is probably a bad idea to not redirect stdout when you're using this mode. Like, genuinely β redirect it. Please. I'm begging ππ
β NVME β
Part of the nvme-user suite. Family business π«Ά
Alright bestie, that's the whole page β you're officially an NVMe Changed Namespace List log page expert π§ββοΈβ¨
Sign-off time: this gorgeous little page comes from the NVMe manual, dated 10/30/2026, and it's NVME-LOG-CHANGED-(1) β go forth and slay your namespace list π
π
π¦ 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