NVME-LOCKDOWN(1)

okay bestie, this is nvme-lockdown from the NVMe Manual, section 1 β€” and it is literally the bouncer for your NVMe commands, iykyk πŸ‘‘

✨ NAME ✨

nvme-lockdown β€” send an NVMe Lockdown command to prohibit or allow the execution of command πŸš«βœ…

πŸ¦‹ SYNOPSIS πŸ¦‹

nvme [<global-options>] lockdown <device>
                        [--ofi=<ofi> | -O <ofi>]
                        [--ifc=<ifc> | -f <ifc>]
                        [--prhbt=<prhbt> | -p <prhbt>]
                        [--scp=<scp> | -s <scp>]
                        [--uuid=<UUID_Index> | -U <UUID_Index>]
                        [--csel=<csel> | -c <csel>]
                        [--css=<css> | -C <css>]

πŸ’– DESCRIPTION πŸ’–

okay so the Lockdown command is the one that controls the Command and Feature Lockdown capability. and what that capability does is configure the prohibition (or the allowance, no judgement) of execution of the specified command β€” or of a Set Features command targeting a specific Feature Identifier. it's giving "you shall not pass" but for opcodes πŸ’…

πŸ”₯ OPTIONS πŸ”₯

  • -O <ofi>, --ofi=<ofi> β€” Opcode or Feature Identifier (OFI) πŸŽ€ this is the field that specifies the command opcode or the Set Features Feature Identifier, as identified by the Scope field.
  • -f <ifc>, --ifc=<ifc> β€” the Interface (INF) field, bestie β€” it identifies the interfaces affected by this command.
  • -p <prhbt>, --prhbt=<prhbt> β€” the Prohibit (PRHBT) bit 🌸 it specifies whether to prohibit or allow the command opcode or Set Features Feature Identifier specified by this command. one bit, two moods.
  • -s <scp>, --scp=<scp> β€” the Scope (SCP) field β€” it specifies the contents of the Opcode or Feature Identifier field.
  • -U <UUID_Index>, --uuid=<UUID_Index> β€” UUID Index πŸ¦‹ if this field is set to a non-zero value, then the value of this field is the index of a UUID in the UUID List that is used by the command. If this field is cleared to 0h, then no UUID index is specified.
  • -c <csel>, --csel=<csel> β€” Controller Select (CSEL) says which controller(s) are affected by this command, periodt:
    • 0 = NVM subsystem (all controllers)
    • 1 = the specific controller identified by --css
    • 2 = the secondary controllers of the specific primary controller identified by --css
    • 15 = vendor specific

ngl, 15 is the "we don't talk about it" option lol πŸ’€

  • -C <css>, --css=<css> β€” Controller Select Specific (CSS) β€” the meaning depends on --csel: it's the Controller Identifier if --csel=1, or the Primary Controller Identifier if --csel=2. Ignored if --csel=0. so like, it's lowkey doing whatever --csel told it to πŸ™ˆ

πŸ‘‘ GLOBAL OPTIONS πŸ‘‘

these live at the top-level nvme command and they're available to this subcommand too, so no FOMO 🌈

  • --dry-run β€” print the command that would be executed, but do not actually execute it. practice run, zero commitment.
  • --no-ioctl-probing β€” disable probing for 64-bit IOCTL support.
  • --no-retries β€” disable retry logic on transient errors. one shot, iconic energy.
  • -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 β€” pick a lane bestie.
  • --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). literal "i can do this all day" energy 😭
  • -v, --verbose β€” increase the level of detail in the output. May be specified multiple times to further increase verbosity. stack 'em, go off.
🫢 these options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file. the CLI stays the main character πŸ’…

πŸ’œ EXAMPLES πŸ’œ

No examples yet. (yes literally none, we're in our mysterious era 🧚)

⭐ NVME ⭐

Part of the nvme-user suite ✨


and that's the tea πŸ“ β€” this was NVMe, dated 10/30/2026, so go forth and lockdown responsibly, bestie πŸ’–πŸŽ€

πŸ“¦ where this page comes from