NVME-IO-MGMT-SEND(1)
π NVME-IO-MGMT-SEND(1) β like, the NVMe Manual one, bestie β¨
okay so real talk, this is a page from the NVMe Manual and it's about one very specific little command, and honestly? it's giving "raw interface, no training wheels." let's get into it π
β¨ NAME β¨
nvme-io-mgmt-send β the I/O Management Send command, periodt π¦
πΈ SYNOPSIS πΈ
nvme [<global-options>] io-mgmt send <device>
[--namespace-id=<NUM> | -n <NUM>]
[--mos=<NUM> | -s <NUM>]
[--mo=<NUM> | -m <NUM>]
[--data=<FILE> | -d <FILE>]
[--data-len=<NUM> | -l <NUM>]
like, that's the whole shape of it. <device> is the main character here, everything else is optional-ish (until it isn't, see below π).
π DESCRIPTION π
so for the NVMe device you hand it, this issues the I/O Management Send command rocking the management operation (mo) you asked for and the management operation specific parameter (mos) that goes with it. that's it, that's the vibe β¨
it's the generic interface β the forward-compatibility girly. basically it exists so that when new operations get added that this program isn't aware of at the time of its development, you're not stuck. she's ready for whatever the future drops π₯
and because she's generic, she does not hold your hand: no convenience parameters to build the binary payload for you. you're assembling that yourself, bestie. it's giving DIY π«Ά
π heads up, deprecated-alias alert: the barenvme io-mgmt-sendform (no space in it) still works as a deprecated alias and will be removed in a future major version. new scripts should usenvme io-mgmt sendinstead. don't get attached to the old one, okay? she's leaving π
π OPTIONS π
-n <NUM>,--namespace-id=<NUM>β use the namespace id you give it for the command. if you don't provide one, the namespace id of the block device gets used instead. but if the command is issued to a non-block device, this parameter is required β no cap, it's mandatory then π. also the broadcast value0xffffffffcan be given asallor-1, iconic little trio π-d <FILE>,--data=<FILE>β the file to read the payload from. if you don't specify it, data gets read from the standard input stream. stdin girlies rise π-l <NUM>,--data-len=<NUM>β payload data buffer length. that's the whole lore π-m <NUM>,--mo <NUM>β Management Operation to perform. this is the what are we even doing flag β-s <NUM>,--mos=<NUM>β Management Operation Specific parameter. the little sidekick that goes with the operation above π§
π GLOBAL OPTIONS π
these are defined up at the top-level nvme command and they're available to this subcommand too β so they're not this command's own, but she absolutely benefits π
--dry-runβ print the command that would be executed, but don't actually execute it. manifesting the command without committing to it β¨--no-ioctl-probingβ disable probing for 64-bit IOCTL support. no poking around, we're skipping that π¦--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 β 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 β we don't do off-menu versions here π--quietβ suppress 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>...]β set libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir. very much a build-your-own-situation πΈ--timeout=<ms>β set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). literally forever, bestie π«Ά-v,--verboseβ increase the level of detail in the output. may be specified multiple times to further increase verbosity β stack it, she's not mad at it π₯
π‘ little fact drop: these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. always. no negotiating π
π NVME π
part of nvme-cli. that's the family, that's the house she lives in π
okay that's the whole page!! mwah π
signed off with love β this is the NVMe manual, dated 10/30/2026, and the page is NVME-IO-MGMT-SEND(1), no cap πβ¨
π¦ 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