NVME-OCP-SMART-AD(1)

πŸ’… NVME-OCP-SMART-AD(1) β€” the nvme manual, bestie edition ✨

okay so this page lives in the NVMe Manual and honestly it's kind of a niche little icon but we love her. it's nvme-ocp-smart-add-log and she's here to spill the tea on your drive's extended SMART info 🫢


🌸 NAME 🌸

nvme-ocp-smart-add-log β€” gets the Extended SMART information out of a device that's OCP compliant πŸ’–


✨ SYNOPSIS ✨

nvme [<global-options>] ocp smart-add-log <device> [--no-uuid | -n]

πŸ¦‹ DESCRIPTION πŸ¦‹

so for the NVMe device you hand her, she sends a smart-add-log command and gives you back the additional smart log. that's the whole vibe. ✨

the <device> parameter is mandatory β€” like, non-negotiable, she needs it β€” and it can be either the NVMe character device (ex: /dev/nvme0) or the block device (ex: /dev/nvme0n1). either one slays, pick your fighter πŸ’…

⚠️ real talk: this only works on OCP compliant devices that support this feature. for any other device?? the results are undefined. not "undefined" as in quirky, undefined as in please don't 😭

on success it returns 0. otherwise you get an error code. that's it, that's the check-in 🌈


πŸŽ€ OPTIONS πŸŽ€

  • -n, --no-uuid β€” don't try to automatically detect the UUID index for this command. it's required for old OCP 1.0 support, so if you're on the vintage build, this one's your bestie 🧚

πŸ‘‘ GLOBAL OPTIONS πŸ‘‘

these ones are defined at the top-level nvme command, but they're available to this subcommand too. shared custody, we love to see it 🫢

  • --dry-run β€” prints the command that would be executed, but doesn't actually execute it. all the anticipation, none of the commitment πŸ’€
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support.
  • --no-retries β€” disables the retry logic on transient errors. one shot, no second chances πŸ”₯
  • -o <fmt>, --output-format=<fmt> β€” sets the reporting format to normal, tabular, json, or binary. only one output format at a time, bestie, don't 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 versions get rejected. no cap.
  • --quiet β€” suppresses informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. she's quiet but she's not silent, iykyk πŸ™ˆ
  • --set-options=<key=value>[,<key=value>...] β€” sets libnvme library options for this invocation. the supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir. mix and match, it's giving customization πŸ’œ
  • --timeout=<ms> β€” sets the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). patient queen behavior ⭐
  • -v, --verbose β€” increases the level of detail in the output. may be specified multiple times to further increase verbosity. spam her, she can take it πŸ’…

these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file. the CLI is the main character here, periodt πŸ‘‘


🌈 EXAMPLES 🌈

  • has the program issue a smart-add-log command to retrieve the 0xC0 log page:
# nvme ocp smart-add-log /dev/nvme0

πŸ’– NVME πŸ’–

part of the nvme-user suite 🌟


okay bye bestie, go get that log πŸ¦‹ and if you need the receipts: this was the NVMe manual page NVME-OCP-SMART-AD(1), dated 10/30/2026. write it down, cite it in your essay, mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from