NVME-SAMSUNG-VS-I(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’– NAME πŸ’–

nvme-samsung-vs-internal-log β€” bestie, this is the command that scoops up a Samsung NVMe SSD's internal firmware logs and drops them right onto your disk ✨ (it's the nvme-samsung-vs-i(1) page you're reading, iykyk)

πŸ¦‹ SYNOPSIS πŸ¦‹

nvme [<global-options>] samsung vs-internal-log <device> [OPTIONS]

🌸 DESCRIPTION 🌸

Okay so picture this: your Samsung NVMe SSD is out here holding its own little diary πŸ“– β€” internal firmware logs β€” and this command is the one that collects them and writes them to disk. It's giving full range, too: host-initiated telemetry, controller-initiated telemetry, and the vendor crash, memory and debug dumps are all supported. Each dump gets saved as its own file, so heads up β€” a single run usually spits out several files πŸ’…

Use --dump-type to pick which dumps you want; you can request several types in one single run, no multiple trips needed 🫢

Fair warning bestie: this command will only work on Samsung devices that support this feature. No Samsung support, no dumps, periodt.

The <device> parameter is mandatory (not optional, not vibes-based) and may be either an NVMe character device (ex: /dev/nvme0) or an nvme block device (ex: /dev/nvme0n1).


✨ OPTIONS ✨

  • -t <NAME,...>, --dump-type=<NAME,...> β€” a comma-separated list of dump types to extract, and ngl it has to be given without spaces (the comma list is not the place for a lil breather). The supported types are:
    • host0 and host1 β€” the host-initiated telemetry dump using Log Specific Parameter 0 and 1 respectively
    • ctlr (or controller) β€” the controller-initiated telemetry dump
    • vendor β€” the vendor dumps

You can give this option more than once to add more types. And when you omit it entirely, every dump type except host0 is extracted β€” host0 is only collected when it's requested explicitly. Main character energy only when invited πŸŽ€

  • -a <NUM>, --telemetry-data-area=<NUM> β€” which telemetry data area to retrieve, 1 to 4. Defaults to 0, which retrieves every data area. Data area 4 is only extracted when the device reports that it supports it. This option only affects the telemetry dumps β€” the vendor dumps are unbothered πŸ¦‹
  • -O <FILE>, --output-file=<FILE> β€” the output file name, optionally preceded by a path (ex: ./path/name or ./path1/path2/). Any directory in the path that doesn't exist yet gets created for you ✨ When you omit this option, the dumps get written to the current directory.
  • -z, --compress β€” collects the dumps into a temp_samsung_dumps directory next to the output path, saves them as a single compressed .tar.gz archive, then removes that directory afterwards. The directory is created for this run alone, so the command fails if anything already sits at that path πŸ’€ β€” one left behind by an interrupted run has to be removed before retrying. Cleanup is not optional, bestie.
  • --hide-progress β€” do not print the incremental progress of an extraction. Useful where the output is captured line by line and a carriage return doesn't overwrite, so every update would just pile up 🀒 The completion line of each dump is still printed though, so you'll know when it's done πŸ‘‘

πŸ’œ GLOBAL OPTIONS πŸ’œ

These options are defined at the top-level nvme command and they're available to this subcommand (yes, they follow you down here, ride or die):

  • --dry-run β€” print the command that would be executed, but don't actually execute it. Manifesting the dump without the dump πŸ™ˆ
  • --no-ioctl-probing β€” disable probing for 64-bit IOCTL support.
  • --no-retries β€” disable retry logic on transient errors.
  • -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. (That stray ' before json is literally in the manual, keep it πŸ’…)
  • --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 🚫
  • --quiet β€” suppress informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level. Quiet mode said "not today" to verbose 😌
  • --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.
  • --timeout=<ms> β€” set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). Patience is a virtue fr fr ⏳
  • -v, --verbose β€” increase the level of detail in the output. May be specified multiple times to further increase verbosity. Spam it, I'm obsessed.

These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file β€” CLI stays the main character πŸ‘‘


πŸ”₯ EXAMPLES πŸ”₯

Extract the controller-initiated telemetry, the host-initiated telemetry using Log Specific Parameter 1 and the vendor dumps of the given device into the current directory.

# nvme samsung vs-internal-log /dev/nvme0

Extract only the controller-initiated telemetry and the vendor dumps, naming both types in a single run.

# nvme samsung vs-internal-log /dev/nvme0 -t ctlr,vendor

Extract the host-initiated telemetry using Log Specific Parameter 0, which is not collected unless it is named explicitly, into ./dumps/, creating that directory if it doesn't exist.

# nvme samsung vs-internal-log /dev/nvme0 -t host0 -O ./dumps/

Extract data area 2 of the host-initiated telemetry using Log Specific Parameter 1, store the result compressed and keep the output quiet.

# nvme samsung vs-internal-log /dev/nvme0 -t host1 -a 2 -z --hide-progress

🌈 NVME 🌈

Part of the nvme-user suite 🫢


okay that's the whole page bestie, go get those dumps πŸ’– β€” this was page NVME-SAMSUNG-VS-I(1) from the nvme-user suite, dated 10/30/2026, and yes the source/version line is literally that. slay πŸŽ€βœ¨

πŸ“¦ where this page comes from