NVME-LOG-PERSISTEN(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NVME-LOG-PERSISTEN(1) πŸ’…

okay bestie, welcome to the NVMe Manual page for nvme-log-persistent-event. this one is literally about grabbing the persistent event log page from your NVMe device and handing you back the result and log. slay. πŸ¦‹


✨ NAME ✨

nvme-log-persistent-event β€” Send NVMe persistent event log page request, returns result and log. πŸ’–


🌸 SYNOPSIS 🌸

nvme [<global-options>] log persistent-event <device>
                        [--action=<action> | -a <action>]
                        [--log-len=<log-len> | -l <log-len>]
                        [--raw-binary | -b]

πŸ’– DESCRIPTION πŸ’–

Retrieves the NVMe persistent event log page from an NVMe device and provides the returned structure. it's giving "ask the device for the log, receive the log." iconic behavior, no cap. ✨

The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). you gotta point it at the right device, bestie. 🫢

On success, the returned persistent event log structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse. choose your adventure, but the flags decide the vibe. 🌈


πŸ’… OPTIONS πŸ’…

  • -a <action>, --action=<action> β€” when it tries to retrieve this log, this is the action the controller shall take during processing this persistent log page command. this is a mandatory field, and based on the value issued it may Read Log Data, Establish Context and Read Log Data or Release Context can occur. For More details see NVM Express 1.4 Spec. Section 5.14.1.13 Persistent Event Log (Log Identifier 0Dh). iykyk 🫢
  • -l <log-len>, --log-len=<log-len> β€” allocates a buffer of <log-len> bytes size and requests this many bytes be returned in the constructed NVMe command. this param is mandatory. if <log-len> given is 0 and action is 0, it will read the Total Log Length(TLL) of the page. periodt πŸ’…
  • -b, --raw-binary β€” print the raw persistent event log buffer to stdout. raw raw raw, no filter, just bytes ✨

🌈 GLOBAL OPTIONS 🌈

The following options are defined at the top-level nvme command and are available to this subcommand:

  • --dry-run β€” print the command that would be executed, but do not actually execute it. it's giving rehearsal, not the actual show 🎭
  • --no-ioctl-probing β€” disable probing for 64-bit IOCTL support. no probing, bestie 🚫
  • --no-retries β€” disable retry logic on transient errors. one shot only πŸ’€
  • -o <fmt>, --output-format=<fmt> β€” set the reporting format to normal, tabular, 'json, or binary. only one output format may be used at a time. choose ur fighter, but only one πŸŽ€
  • --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. v2 is the main character, v1 is nostalgia 🌈
  • --quiet β€” suppress informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. shhh 🀫 but errors still get to speak.
  • --set-options=<key=value>[,<key=value>...] β€” set libnvme library options for this invocation. supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir. key=value era πŸ”‘
  • --timeout=<ms> β€” set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). patient queen energy ⏳
  • -v, --verbose β€” increase the level of detail in the output. may be specified multiple times to further increase verbosity. the way that more is more πŸ—£οΈβœ¨

These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. file says one thing, flag says another, flag wins πŸ’…


πŸ“ EXAMPLES πŸ“

  • Print the persistent event log page in a human readable format:
# nvme log persistent-event /dev/nvme0
  • Print the raw persistent event log to a file:
# nvme log persistent-event /dev/nvme0 --raw-binary > persistent_log.raw
⚠️ It is probably a bad idea to not redirect stdout when using this mode. do not let the raw bytes just spill out into your terminal, bestie 😭

πŸ‘‘ NVME πŸ‘‘

Part of the nvme-user suite. periodt πŸ’–

πŸ’– source/version: NVMe manual β€’ date: 10/30/2026 β€’ page: NVME-LOG-PERSISTEN(1) β€” bestie out! πŸ’–

πŸ“¦ where this page comes from