NVME-VERIFY(1)
π NVME-VERIFY(1) β the verify girlies' era β¨
okay so bestie, this is a page from the NVMe Manual and it's literally all about nvme-verify β sending an NVMe Verify command and getting results back π
πΈ NAME πΈ
nvme-verify β send an NVMe Verify command, and it returns results. that's it, that's the vibe π¦
β¨ SYNOPSIS β¨
nvme [<global-options>] verify <device>
[--namespace-id=<nsid> | -n <nsid>]
[--start-block=<slba> | -s <slba>]
[--block-count=<nlb> | -c <nlb>] [--limited-retry | -l]
[--force-unit-access | -f]
[--prinfo=<prinfo> | -p <prinfo>]
[--ref-tag=<reftag> | -r <reftag>]
[--app-tag-mask=<appmask> | -m <appmask>]
[--app-tag=<apptag> | -a <apptag>]
[--storage-tag<storage-tag> | -S <storage-tag>]
[--storage-tag-check | -C]
like, copy that shape exactly, no cap β every bracket is doing its job π
π¦ DESCRIPTION π¦
the Verify command checks that the information you stored is still actually intact, by reading the data and the metadata. it's giving "trust but verify" main character energy. literally the integrity check we all deserve β¨
π₯ OPTIONS π₯
-n <nsid>,--namespace-id=<nsid>β the Namespace ID used in the command. also, the broadcast value0xffffffffcan be given asallor-1. yes bestie, three ways to say the same thing, pick your fighter π«Ά-s <slba>,--start-block=<slba>β the start block address. where the party begins π-c <nlb>,--block-count=<nlb>β how many logical blocks you want to Verify. the count, the whole count, nothing but the count π-l,--limited-retryβ sets the limited retry flag π-f,--force-unit-accessβ sets the force-unit access flag. highkey forceful of it, but ok π-p <prinfo>,--prinfo=<prinfo>β the Protection Information field definition. it's a lil bitfield and it's lowkey iconic, so here's the tea:- Bit 3 β
PRACT: Protection Information Action. set it to1and PI gets stripped/inserted on read/write when the block format's metadata size is8. set it to0and the metadata is passes β yep, passes through, untouched π - Bits 2:0 β
PRCHK: Protection Information Check. this is the trio that decides what actually gets checked:- Bit 2 β set to
1enables checking the guard tag β - Bit 1 β set to
1enables checking the application tag πΈ - Bit 0 β set to
1enables checking the reference tag π
- Bit 2 β set to
- Bit 3 β
-r <reftag>,--ref-tag=<reftag>β optional reftag, used when you're rolling with protection information π«-m <appmask>,--app-tag-mask=<appmask>β optional application tag mask, when used with protection information π-a <apptag>,--app-tag=<apptag>β optional application tag, when used with protection information β¨-S <storage-tag>,--storage-tag=<storage-tag>β Variable Sized Expected Logical Block Storage Tag (ELBST). say that five times fast, i dare you π-C,--storage-tag-checkβ this flag enables Storage Tag field checking as part of the Verify operation π
π GLOBAL OPTIONS π
these are defined up at the top-level nvme command, and they're available to this subcommand too β so they're basically the group chat everyone's in π«Ά
--dry-runβ prints the command it would execute, but doesn't actually execute it. manifesting without the consequences, we love to see it π--no-ioctl-probingβ disables probing for 64-bit IOCTL support π¦--no-retriesβ disables the retry logic on transient errors. one shot, no second chances, dramatic much π-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,'json, orbinary. only one output format at a time, bestie β you can't have all four, that's not how this works π€--output-format-version=<version>β picks the output format version. version1uses the original field naming, while version2(the default) gives you more consistent and script-friendly field names. any other version gets rejected, periodt π ββοΈ--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. it's giving "i'm not listening but i'm still watching" π--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. the 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). no clock, no stress, no cap β³-v,--verboseβ increases the level of detail in the output. you can specify it multiple times to further increase verbosity β go off, stack thosevs π₯
also!! all of these can 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 π
No examples yet. (literally the manpage said that, i'm not gatekeeping, there are just none π someone should fix this fr fr)
π NVME π
Part of the nvme-user suite π
alright bestie, that's the whole page, go verify something and slay π¦β¨
signed, sealed, delivered by the NVMe crew β page dated 10/30/2026 β from NVME-VERIFY(1) with love ππ
π¦ 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