NVME-IO-MGMT-RECV(1)

πŸ’… NAME πŸ’…

Okay bestie, welcome to the nvme-io-mgmt-recv page from the NVMe Manual β€” it's literally the I/O Management Receive command. πŸ’–

✨ SYNOPSIS ✨

Here's the summoning spell, exactly as written:

nvme [<global-options>] io-mgmt recv <device>
                               [--namespace-id=<NUM> | -n <NUM>]
                               [--mos=<NUM> | -s <NUM>]
                               [--mo=<NUM> | -m <NUM>]
                               [--data=<FILE> | -d <FILE>]
                               [--data-len=<NUM> | -l <NUM>]

πŸ¦‹ DESCRIPTION πŸ¦‹

So for the NVMe device you give it, this issues the I/O Management Receive command with the requested management operation (mo) and management operation specific parameter (mos). It's the generic interface made for forward compatibility, because new operations get added that this program isn't aware of at the time of its development. 🫢

Because it's generic, it does not do any additional decoding for specific types of data received. It will only report the data as a hex dump, or binary. That's the vibe. πŸ’…

Also important: the bare nvme io-mgmt-recv form (without a space) still works as a deprecated alias and will be removed in a future major version. New scripts should use nvme io-mgmt recv instead. No cap, update your scripts bestie. 😭

πŸŽ€ OPTIONS πŸŽ€

  • -n <NUM>, --namespace-id=<NUM> β€” Use the provided namespace id for the command. If it's not provided, the namespace id of the block device will be used. If the command is issued to a non-block device, this parameter is required. The broadcast value 0xffffffff can also be given as all or -1. 🌈
  • -d <FILE>, --data=<FILE> β€” File to write received data into. If unspecified, received data will be hex dumped to the standard output stream. πŸ“
  • -l <NUM>, --data-len=<NUM> β€” Received data buffer length. πŸ“
  • -m <NUM>, --mo <NUM> β€” Management Operation to perform. πŸ‘‘
  • -s <NUM>, --mos=<NUM> β€” Management Operation Specific parameter. ✨

🌈 GLOBAL OPTIONS 🌈

The following options are defined at the top-level nvme command and are available to this subcommand:

  • --dry-run β€” Print the command that would be executed, but do not actually execute it. πŸ™ˆ
  • --no-ioctl-probing β€” Disable probing for 64-bit IOCTL support.
  • --no-retries β€” Disable retry logic on transient errors.
  • -o <fmt>, --output-format=<fmt> β€” Set the reporting format to normal, tabular, 'json, or binary. Only one output format may be used at a time.
  • --output-format-version=<version> β€” Select the output format version. Version 1 uses the original field naming, while version 2 (default) provides more consistent and script-friendly field names. Other versions are rejected.
  • --quiet β€” Suppress informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level.
  • --set-options=<key=value>[,<key=value>...] β€” Set libnvme library options for this invocation. Supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.
  • --timeout=<ms> β€” Set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff).
  • -v, --verbose β€” Increase the level of detail in the output. May be specified multiple times to further increase verbosity.

These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. πŸ’–

πŸ‘‘ NVME πŸ‘‘

Part of nvme-cli. Periodt. πŸ’…


πŸ’– That's the whole page, bestie β€” signed off by NVMe, dated 10/30/2026, and filed under NVME-IO-MGMT-RECV(1). Mwah! πŸ’–

πŸ“¦ where this page comes from