NVME-WDC-VS-INTER(1)
π NVME-WDC-VS-INTER(1) π
okay so this one lives in the NVMe Manual and it's genuinely iconic β it's the girl that reaches into a WDC drive and yoinks the internal firmware log out of it. no cap. π
πΈ NAME πΈ
nvme-wdc-vs-internal-log β grab the WDC device's internal firmware log and save it to a file. that's the whole assignment bestie π
β¨ SYNOPSIS β¨
nvme [<global-options>] wdc vs-internal-log <device>
[--output-file=<FILE>, -O <FILE>]
[--transfer-size=<SIZE>, -s <SIZE>]
[--data-area=<DATA AREA>, -d <DATA_AREA>]
[--file-size=<FILE SIZE>, -f <FILE SIZE>]
[--offset=<OFFSET>, -e <OFFSET>]
[--type=<TYPE>, -t <type>]
π¦ DESCRIPTION π¦
so for the NVMe device you hand it, it sends the WDC Vendor Specific Internal Log request and saves the result to a file. lowkey magical, highkey useful π
the <device> parameter is mandatory and it has to be an NVMe character device (ex: /dev/nvme0). don't skip it, she's not optional.
β οΈ heads up bestie β this only works on WDC devices that actually support this feature. results for any other device are undefined. like, undefined undefined. not "probably fine", not "worth a shot". undefined. π«Ά
π OPTIONS π
-O <FILE>,--output-file=<FILE>β the output file. if you don't pick one, it defaults to the device serial number followed by the"internal_fw_log<date>_<time>.bin"suffix. auto-naming queen β¨-s <SIZE>,--transfer-size=<SIZE>β the transfer size. defaults to0x10000(65536decimal) bytes. chunk it however you like π-d <DATA AREA>,--data-area=<DATA AREA>β which data area to retrieve. here's the tea: if you're capturing with a--typevalue that includes telemetry (CONTROLLERorHOST), this specifies the NVMe telemetry data area to capture, containing data from areas 1 to<DATA AREA>. but if you're capturing without such a--typevalue, this instead specifies the amount of vendor defined debug data to capture β and that version is only supported on theSN340,SN350,SN530,SN570,SN730,SN740,SN840,SN850X,SN5000,SN5100S,SN7000S,SN7100, andSN7150devices. very specific, very demure π-t <TYPE>,--type=<TYPE>β specifies the telemetry type:NONE,HOST, orCONTROLLER. this is the one that gets you either the host-initiated or the controller-initiated telemetry log page. if you don't specify it, or if<TYPE>isNONE, the command returns vendor defined debug data instead. pick your fighter π-f <FILE SIZE>,--file-size=<FILE SIZE>β deprecated π specifies the desired size of the data file starting at the passed in offset. it lets you retrieve the data in several smaller files of the passed in size. only supported on the devices mentioned in the docs for the--data-areaparameter, and only for capture with--type=NONEor with--typenot specified. so basically: know before you go.-e <OFFSET>,--offset=<OFFSET>β deprecated π specifies the data offset at which to start retrieving the data. use it together with the file size parameter to pull the data in several smaller files. same deal as above: only supported on the devices mentioned in the docs for the--data-areaparameter, and only for capture with--type=NONEor with--typenot specified.
π GLOBAL OPTIONS π
these ones are defined at the top-level nvme command and are available to this subcommand. shared queens, basically π«Ά
--dry-runβ prints the command that would be executed but doesn't actually execute it. all the delusion, none of the consequences β¨--no-ioctl-probingβ disables probing for 64-bit IOCTL support.--no-retriesβ disables retry logic on transient errors. one shot, one opportunity π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,'json, orbinary. only one output format at a time, bestie, we do not multitask here.--output-format-version=<version>β selects the output format version. version1uses the original field naming, while version2(default) provides more consistent and script-friendly field names. other versions are rejected. sorry to those versions π--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. she's quiet but she's still watching π--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir.--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). patience is a virtue fr fr β-v,--verboseβ increases the level of detail in the output. may be specified multiple times to further increase verbosity. the more the merrier π
these options can also be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file β she said what she said π
π₯ EXAMPLES π₯
- gets the internal firmware log from the device and saves to the default file in the current directory (e.g.
STM00019F3F9_internal_fw_log_20171127_095704.bin):
# nvme wdc vs-internal-log /dev/nvme0
- gets the internal firmware log from the device and saves it to a file you actually named, in the current directory (e.g.
test.bin):
# nvme wdc vs-internal-log /dev/nvme0 -O test.bin
- gets the internal firmware log from the device and saves it to a defined file with a pathname (e.g.
/tmp/test):
# nvme wdc vs-internal-log /dev/nvme0 -O /tmp/test
- gets the internal firmware log from the device, transferring the data in 64k chunks, and saves to the default file in the current directory (e.g.
STM00019F3F9_internal_fw_log_20171127_100754.bin):
# nvme wdc vs-internal-log /dev/nvme0 -s 0x10000
- gets the internal firmware log from the device, transferring the data in 16k chunks, and saves to the default file in the current directory (e.g.
STM00019F3F9_internal_fw_log_20171127_100950.bin):
# nvme wdc vs-internal-log /dev/nvme0 -s 16384
- gets the internal firmware log up to data area 3 from the device, in 3 files of
0x1000000bytes. three commands, three files, one slay:
# nvme wdc vs-internal-log /dev/nvme0 -d 3 -f 0x1000000 -t 0x0000000 -O /tmp/sn340_dui_data_1.bin
# nvme wdc vs-internal-log /dev/nvme0 -d 3 -f 0x1000000 -t 0x1000000 -O /tmp/sn340_dui_data_2.bin
# nvme wdc vs-internal-log /dev/nvme0 -d 3 -f 0x1000000 -t 0x2000000 -O /tmp/sn340_dui_data_3.bin
- gets the host telemetry log page to data area 3 from the device and stores it in the file
host-telem-log-da3.bin:
# nvme wdc vs-internal-log /dev/nvme1 -t host -O host-telem-log-da3.bin -d 3
- gets the controller telemetry log page to data area 3 from the device and stores it in the file
ctlr-telem-log-da3.bin:
# nvme wdc vs-internal-log /dev/nvme1 -t controller -O ctlr-telem-log-da3.bin -d 3
π NVME π
part of the nvme-user suite. iykyk β¨
πΈ and that's the whole page bestie! this lil beauty comes to you from NVMe, dated 10/30/2026, and it's the NVME-WDC-VS-INTER(1) page β go forth and capture those logs, you absolute main character ππ«Άπ
π¦ 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