NVME-LOG-SMART(1)
π
NVME-LOG-SMART(1) β like, the nvme-log-smart page, bestie
okay so this is nvme-log-smart from the NVMe Manual, and it's literally the page that tells you how to ask your NVMe drive for its SMART log. strap in π
β¨ NAME β¨
nvme-log-smart β sends the NVMe SMART log page request, then hands you back the result and the log. that's the whole vibe π
πΈ SYNOPSIS πΈ
nvme [<global-options>] log smart <device>
[--namespace-id=<nsid> | -n <nsid>]
[--raw-binary | -b]
π¦ DESCRIPTION π¦
So basically: this grabs the NVMe SMART log page off your NVMe device and gives you the returned structure. iconic behavior honestly π
The <device> parameter is mandatory β not optional, not "eh maybe later", you have to give it one. and it can be either:
- the NVMe character device (ex:
/dev/nvme0), or - a namespace block device (ex:
/dev/nvme0n1)
On success, the returned smart log structure can come back in one of several ways depending on which option flags you used, fr fr:
- the structure may be parsed by the program and printed in a readable format, or
- the raw buffer may be printed to
stdoutso another program can parse it
your call, main character π
π OPTIONS π
-n <nsid>,--namespace-id=<nsid>β Retrieve the SMART log for the given nsid. This is optional, and whether it actually works may depend on the device's capabilities to provide this log on a per-namespace basis (peep the NVMe Identify Controller for that capability π). The default nsid to use is0xfffffffffor the device global SMART log. The broadcast value0xffffffffcan also be given asallor-1.-b,--raw-binaryβ Print the raw SMART log buffer tostdout. no parsing, no pretty printing, just vibes and bytes β¨
π GLOBAL OPTIONS π
these are defined at the top-level nvme command, and yes bestie they're available to this subcommand too π«Ά
--dry-runβ Print the command that would be executed, but don't actually execute it. window shopping for syscalls π--no-ioctl-probingβ Disable probing for 64-bit IOCTL support.--no-retriesβ Disable retry logic on transient errors. one shot, no take-backs π-o <fmt>,--output-format=<fmt>β Set the reporting format tonormal,tabular,'json, orbinary. Only one output format may be used at a time. pick one, we're not doing all four π--output-format-version=<version>β Select 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. so v2 is the moment unless you have a reason π--quietβ Suppress informational messages. Errors are still reported, and--quietcancels any--verbosefor the library log level. the way it overrides--verbose... noted π--set-options=<key=value>[,<key=value>...]β Set libnvme library options for this invocation. Supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir.--timeout=<ms>β Set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). forever and ever and ever π°οΈ-v,--verboseβ Increase the level of detail in the output. May be specified multiple times to further increase verbosity. stack 'em, go off π¬
These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. command line stays the boss π
π EXAMPLES π
- Print the SMART log page in a human readable format:
# nvme log smart /dev/nvme0
- Print the raw SMART log to a file:
# nvme log smart /dev/nvme0 --raw-binary > smart_log.raw
It is probably a bad idea to not redirect stdout when using this mode. like... please redirect it bestie, your terminal did not consent to raw buffer spray π
π§ NVME π§
Part of the nvme-user suite. yes, we're fancy π
β¨ and that's the whole page!! go forth and interrogate your drive β¨
NVMe β dated10/30/2026βNVME-LOG-SMART(1)β mwah, bye bestie ππ¦β¨
π¦ 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