NVME-LOG-ENDURANCE(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… nvme-log-endurance β€” bestie's guide to the NVMe Manual ✨

okay so real talk, this is the nvme-log-endurance page from the NVMe Manual, and it's literally just here to help you pull the Endurance log page off your drive. no gatekeeping, let's go 🫢


🌸 NAME 🌸

nvme-log-endurance β€” sends an NVMe Endurance log page request, and then gives you back the result and the log. that's it, that's the whole vibe πŸ’–


✨ SYNOPSIS ✨

nvme [<global-options>] log endurance <device>
                        [--group-id=<group> | -g <group>]

like, that's the shape of it. short, sweet, iconic πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

so what this does is it reaches into your NVMe device, grabs the NVMe Endurance log page, and hands you back the structure it found. very demure, very mindful πŸŽ€

the <device> parameter is mandatory β€” you can't skip it, it's giving main character energy and it will be required. and it can be either of these two things:

  • the NVMe character device (ex: /dev/nvme0)
  • or a namespace block device (ex: /dev/nvme0n1)

when it works? the returned endurance log structure can come back to you in one of several ways, and which one depends on your option flags:

  • the structure gets parsed by the program and printed in a readable format πŸ“–
  • the raw buffer gets printed to stdout so another program can parse it πŸ”§
  • or it's reported in json format 🧚

pick your fighter, bestie πŸ’…


πŸ”₯ OPTIONS πŸ”₯

  • -g <group>, --group-id=<group> β€” the endurance group identifier. literally that. 🌈

⭐ GLOBAL OPTIONS ⭐

okay so these ones are defined up at the top-level nvme command, which means they're available to this subcommand too. they're like the big sisters of the option family πŸ’œ

  • --dry-run β€” prints the command that would be executed, but doesn't actually execute it. window shopping, but for commands πŸ™ˆ
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support. no cap, that's what it does.
  • --no-retries β€” disables the retry logic on transient errors. one shot, one opportunity 😭
  • -o <fmt>, --output-format=<fmt> β€” sets the reporting format to normal, tabular, 'json, or binary. and bestie, only one output format may be used at a time β€” you cannot be greedy here ⚠️
  • --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 versions get rejected, periodt 🚫
  • --quiet β€” suppresses informational messages. errors still get reported, and --quiet cancels any --verbose for the library log level. it's the "shhh" of flags 🀫
  • --set-options=<key=value>[,<key=value>...] β€” sets libnvme library options for this one invocation. the supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir. mix and match, comma-separated πŸ“
  • --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. you can specify it multiple times to crank the verbosity even higher. yap mode: unlocked πŸ—£οΈ
also!! these options can be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file. flag supremacy, fr fr πŸ‘‘

πŸŽ€ EXAMPLES πŸŽ€

  • print the Endurance log page in a human readable format:
# nvme log endurance /dev/nvme0
  • print the raw Endurance log to a file:
# nvme log endurance /dev/nvme0 --output=binary > endurance_log.raw
it is probably a bad idea to not redirect stdout when using this mode. like... probably don't. consider yourself warned bestie πŸ’€

πŸ‘‘ NVME πŸ‘‘

part of the nvme-user suite. you're in good company 🌟


kay that's the whole page!! source and version vibes: NVMe, dated 10/30/2026, and it's NVME-LOG-ENDURANCE(1) β€” slay, go read your logs πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from