NVME-SAMSUNG-VS-I(1)
π 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:host0andhost1β the host-initiated telemetry dump using Log Specific Parameter 0 and 1 respectivelyctlr(orcontroller) β the controller-initiated telemetry dumpvendorβ 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,1to4. Defaults to0, which retrieves every data area. Data area4is 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/nameor./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 atemp_samsung_dumpsdirectory next to the output path, saves them as a single compressed.tar.gzarchive, 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 tonormal,tabular,'json, orbinary. Only one output format may be used at a time. (That stray'beforejsonis 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--quietcancels any--verbosefor 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 areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir.--timeout=<ms>β set the timeout for the command in milliseconds.infiniteor-1waits 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
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms