NVME-FEAT-TIMESTAM(1)
π nvme-feat-timestamp β like, the timestamp feature, bestie
okay so this is a page out of the NVMe Manual (yes, the NVMe one, we're fancy here) and it's literally all about one little command that reads and writes the clock inside your controller. let's get into it πβ¨
β¨ NAME β¨
nvme-feat-timestamp β get and set timestamp feature
π¦ SYNOPSIS π¦
nvme [<global-options>] feat timestamp <device>
[--timestamp=<timestamp> | -t <timestamp>]
[--sel=<select> | -S <select>] [--save | -s]
πΈ DESCRIPTION πΈ
Get and set timestamp feature. that's the whole gig. π«
the <device> parameter is mandatory, no skipping it β and it can be either the NVMe character device (like /dev/nvme0) or a namespace block device (like /dev/nvme0n1). pick your fighter π«Ά
if you pass the setting option (--timestamp), the command updates the controller's internal clock to whatever timestamp value you handed it. if you don't pass it, it just retrieves and displays the current timestamp from the device. so it's like β read by default, write if you say so. lowkey elegant ngl β¨
on success it returns 0, and an error code otherwise. slay.
π OPTIONS π
-t <timestamp>,--timestamp=<timestamp>β the timestamp value itself. it's the number of milliseconds since midnight, January 1, 1970 (that's POSIX epoch time, iykyk), and that's what gets written to the controller clock. π°οΈ-S <select>,--sel=<select>β Select (SEL): this field specifies which value of the attributes to return in the provided data. here's the whole menu, no cap:0β current β Current1β default β Default2β saved β Saved3β supported β Supported capabilities
-s,--saveβ save the attribute so that it persists through all power states and resets. like, it stays staying. π
π GLOBAL OPTIONS π
these are defined at the top-level nvme command and are available to this subcommand too. they're the main character options, honestly:
--dry-runβ print the command that would be executed, but do not actually execute it. fake it till you make it energy π--no-ioctl-probingβ disable probing for 64-bit IOCTL support.--no-retriesβ disable retry logic on transient errors. one shot, no do-overs π-o <fmt>,--output-format=<fmt>β set the reporting format tonormal,tabular,json, orbinary. only one output format may be used at a time β pick one, bestie π--output-format-version=<version>β select the output format version. version1uses the original field naming, while version2(the default) provides more consistent and script-friendly field names. other versions are rejected, periodt.--quietβ suppress informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. π€«--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). time is a construct anyway β³-v,--verboseβ increase the level of detail in the output. may be specified multiple times to further increase verbosity. go off, stack those-vs π₯
these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. the flag wins, every single time, no debate π
π EXAMPLES π
- has the program issue a
feat timestampto get the current device time:
# nvme feat timestamp /dev/nvme0
- has the program issue a
feat timestampto set the clock to a specific value:
# nvme feat timestamp /dev/nvme0 --timestamp=1700000000000
β NVME β
part of the nvme-user suite. iconic, we know π§
and that's the whole page, bestie β brought to you by the NVMe manual, dated 10/30/2026. go set a timestamp, you absolute legend ππ
π¦ 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