NVME-LOG-FW(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’Ύ NVME-LOG-FW β€” nvme-log-fw(1) πŸŽ€

okay bestie, welcome to the NVMe Manual page for nvme-log-fw β€” yes that's the one, section 1, the firmware-log grabber. it's giving "small command, big lore" and honestly? we're obsessed. πŸ’…


✨ NAME ✨

nvme-log-fw β€” send an NVMe Firmware log page request, returns result and log 🫢


🌸 SYNOPSIS 🌸

nvme [<global-options>] log fw <device> [--raw-binary | -b]

πŸ¦‹ DESCRIPTION πŸ¦‹

So what does it do? It retrieves the NVMe Firmware log page from an NVMe device and hands you back the returned structure. literally that's the whole gig. 😌

The <device> parameter is mandatory β€” like, non-negotiable, main character behavior only. And it can be either:

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

On success, the returned f/w log structure may come back in one of several ways depending on the option flags you picked: either the program parses the structure and prints it in a readable format, or the raw buffer gets printed to stdout so another program can parse it. your call, bestie β€” choose your fighter. βš”οΈ


πŸ’– OPTIONS πŸ’–

  • -b, --raw-binary β€” print the raw fw log buffer to stdout. no parsing, no vibes, just bytes. 🧚

πŸ‘‘ GLOBAL OPTIONS πŸ‘‘

okay so these ones are defined up at the top-level nvme command and they're available to this subcommand too. crumbs of the mothership. 🌈

  • --dry-run β€” print the command that would be executed, but do not actually execute it. window shopping, essentially. πŸ›οΈ
  • --no-ioctl-probing β€” disable probing for 64-bit IOCTL support.
  • --no-retries β€” disable retry logic on transient errors. one shot, no takebacks. πŸ’€
  • -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 β€” pick one, we beg of you. πŸ™ˆ
  • --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. no custom versions, no exceptions, periodt. 🚫
  • --quiet β€” suppress informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level. they're beefing, and --quiet wins. 😭
  • --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. mix and match, comma-separated, go off. πŸ’œ
  • --timeout=<ms> β€” set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). for the patient girlies. ⏳
  • -v, --verbose β€” increase the level of detail in the output. May be specified multiple times to further increase verbosity. stack 'em like bracelets. πŸŽ€
These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. no cap β€” the flag is the final boss. πŸ”₯

⭐ EXAMPLES ⭐

  • Print the firmware log page in a human readable format:
# nvme log fw /dev/nvme0
  • Print the log firmware to a file:
# nvme log fw /dev/nvme0 --raw-binary > fw_log.raw
It is probably a bad idea to not redirect stdout when using this mode. like... genuinely, bestie, please redirect it. πŸ˜­πŸ™ˆ

🌟 NVME 🌟

Part of the nvme-user suite. we're basically family now. 🫢


okay that's the whole page, mwah πŸ’‹ β€” this was the NVMe manual, dated 10/30/2026, and the page you just read is NVME-LOG-FW(1). go forth and read your firmware logs, icon. βœ¨πŸ‘‘πŸ’–

πŸ“¦ where this page comes from