NVME-SECURITY-RECV(1)
β¨ NVME-SECURITY-RECV(1) β the security recv era β¨
okay so bestie, this is a page from the NVMe Manual and it's literally all about the Security Recv command. grab a snack, we're getting into it π
πΈ NAME πΈ
nvme-security-recv β the Security Recv command, aka the glow-up of "hey controller, gimme back what I sent you" π«Ά
β¨ SYNOPSIS β¨
nvme [<global-options>] security recv <device> [--size=<size> | -x <size>]
[--secp=<security-protocol> | -p <security-protocol>]
[--spsp=<protocol-specific> | -s <protocol-specific>]
[--nssf=<nvme-specific> | -N <nvme-specific>]
[--al=<allocation-length> | -t <allocation-length>]
[--namespace-id=<nsid> | -n <nsid>] [--raw-binary | -b]
π DESCRIPTION π
so the Security Receive command does one iconic thing: it transfers the status and data result of one or more Security Send commands that you previously submitted to the controller. like, you sent the vibe out, now you're collecting the receipts π₯
the association between a Security Receive command and previous Security Send commands is dependent on the Security Protocol. and the format of the data to be transferred is also dependent on the Security Protocol. for Security Protocol details, refer to SPC-4 β that's the source of truth, periodt.
every single Security Receive command returns the appropriate data corresponding to a Security Send command, as defined by the rules of the Security Protocol. β οΈ but here's the caveat, and it's giving "don't @ me": the Security Receive command data may not be retained if there's a loss of communication between the controller and host, or if a controller reset occurs. so like, no cap, that data can just ghost you π
π deprecated-alias alert: the barenvme security-recvform (without a space) still works as a deprecated alias and will be removed in a future major version. new scripts should usenvme security recvinstead. it's giving legacy, bestie β upgrade your scripts. π
π OPTIONS π
-n <nsid>,--namespace-id=<nsid>β targets a specific namespace for this security command. and plot twist: you can also pass the broadcast value0xffffffffasallor-1π-N <nssf>,--nssf=<nssf>β the NVMe Security Specific field. if you're using security protocolEAh(the one assigned for NVMe use), this NVMe security specific field indicates which reply memory buffer target you're going for π¦-x <size>,--size=<size>β size of the buffer to allocate. on success it'll be printed toSTDOUT. β¨-p <security-protocol>,--secp=<security-protocol>β the Security Protocol. this field specifies the security protocol as defined in SPC-4. and the controller shall fail the command with Invalid Parameter if you specify a reserved value of the Security Protocol β so don't try it, it's not cute π-s <security-protocol-specific>,--spsp=<security-protocol-specific>β SP Specific. the value of this field is specific to the Security Protocol, as defined in SPC-4 (iykyk)-t <allocation-length>,--al=<allocation-length>β Allocation Length. the value of this field is specific to the Security Protocol, as defined in SPC-4 π-b,--raw-binaryβ print the raw buffer tostdout. defaults to printing in hex π₯
π GLOBAL OPTIONS π
these ones live at the top-level nvme command and they're available to this subcommand too. main character energy, honestly:
--dry-runβ print the command that would be executed, but do not actually execute it. all talk, no action, we love a preview π--no-ioctl-probingβ disable probing for 64-bit IOCTL support--no-retriesβ disable retry logic on transient errors (one shot, one opportunity)-o <fmt>,--output-format=<fmt>β set the reporting format tonormal,tabular,'json, orbinary. only one output format may be used at a time, so pick your fighter π--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 β no in-between, bestie π«--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) β³-v,--verboseβ increase the level of detail in the output. may be specified multiple times to further increase verbosity β stack it, go off π
also important: these options can be set as machine-wide defaults in nvme-cli.conf(5). and a command-line flag always overrides the file. always. no exceptions, periodt π
π¦ EXAMPLES π¦
No Examples π (yes really, that's the whole section, we're as disappointed as you are)
β NVME β
part of the nvme-user suite πΈ
and that's the whole page, bestie β no crumbs left behind. this iconic little page is from the NVMe manual, version/date stamped 10/30/2026, filed under NVME-SECURITY-RECV(1). go forth and security recv responsibly π«Άβ¨
π¦ 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