NVME-RESV-ACQUIRE(1)

πŸ’… NVME-RESV-ACQUIRE(1) β€” the nvme-resv-acquire glow-up πŸŽ€

okay bestie, buckle up β€” this is the nvme-resv-acquire page from the NVMe Manual, and it's genuinely so much cooler than it sounds. it's giving "I hold the keys to the namespace" energy. πŸ”‘


✨ NAME ✨

nvme-resv-acquire β€” literally just: acquire an nvme reservation. that's her. that's the whole vibe. πŸ’–


✨ SYNOPSIS ✨

nvme [<global-options>] resv acquire <device>
                        [--namespace-id=<nsid> | -n <nsid>]
                        [--crkey=<crkey> | -c <crkey>]
                        [--prkey=<prkey> | -p <prkey>]
                        [--rtype=<rtype> | -t <rtype>]
                        [--racqa=<racqa> | -a <racqa>]
                        [--iekey | -i]

✨ DESCRIPTION ✨

so the Reservation Acquire command does three iconic things, and she does them well:

  • acquire a reservation on a namespace 🫢
  • preempt a reservation held on a namespace 😀
  • abort a reservation held on a namespace πŸ’€

also, quick heads up β€” the bare nvme resv-acquire form (yeah, the one without a space between resv and acquire) still works as a deprecated alias, but she's getting removed in a future major version. πŸ™ˆ so like, new scripts should use nvme resv acquire instead, fr fr. old form is on her way out, no cap.


✨ OPTIONS ✨

  • -n <nsid>, --namespace-id=<nsid> β€” overrides the nsid field. heads up though: if you're using the admin character device, this parameter is required (she's not optional, bestie πŸ’…). also you can pass the broadcast value 0xffffffff, which you can also write as all or -1. cute, right?
  • -c <crkey>, --crkey=<crkey> β€” Current Reservation Key. this field specifies the current reservation key associated with the host. but plot twist 🎬 β€” if the IEKEY bit is set to 1 in the command, then the CRKEY check succeeds regardless of whatever value is sitting in this field. so like, it just doesn't care.
  • -p <prkey>, --prkey=<prkey> β€” Preempt Reservation Key. okay so if the Reservation Acquire Action is set to 001b (that's Preempt) or 010b (that's Preempt and Abort), then this field specifies the reservation key to be unregistered from the namespace. for all other Reservation Acquire Action values, this field is reserved. reserved = not her moment. 😌
  • -t <rtype>, --rtype=<rtype> β€” Reservation Type. this field specifies the type of reservation to be created. the menu:
    • 0h β€” Reserved
    • 1h β€” Write Exclusive Reservation
    • 2h β€” Exclusive Access Reservation
    • 3h β€” Write Exclusive - Registrants Only Reservation
    • 4h β€” Exclusive Access - Registrants Only Reservation
    • 5h β€” Write Exclusive - All Registrants Reservation
    • 6h β€” Exclusive Access - All Registrants Reservation
    • 07h-FFh β€” Reserved
  • -a <racqa>, --racqa=<racqa> β€” Reservation Acquire Action. this field specifies the action that is performed by the command. the lineup:
    • 0 β€” Acquire
    • 1 β€” Preempt
    • 2 β€” Preempt and Abort
    • 3-7 β€” Reserved
  • -i, --iekey β€” Ignore Existing Key. if this bit is set to a 1, then the Current Reservation Key (CRKEY) check is disabled and the command shall succeed regardless of the CRKEY field value. it's giving "rules? never met her." πŸ”₯

indicator option, defaults to 0.


🌈 GLOBAL OPTIONS 🌈

these ones live at the top-level nvme command and are available to this subcommand. main character options, honestly πŸ‘‘

  • --dry-run β€” prints the command that would be executed, but does not actually execute it. window shopping, basically. πŸ›οΈ
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support.
  • --no-retries β€” disables retry logic on transient errors. one shot, no takebacks. πŸ’€
  • -o <fmt>, --output-format=<fmt> β€” sets the reporting format to normal, tabular, 'json, or binary. (yes, that stray apostrophe before json is exactly how the original page has it β€” copying it verbatim, i don't make the rules πŸŽ€). only one output format may be used at a time, so pick your fave.
  • --output-format-version=<version> β€” selects the output format version. version 1 uses the original field naming, while version 2 (the default) provides more consistent and script-friendly field names. any other versions are rejected. 🚫
  • --quiet β€” suppresses informational messages. errors are still reported, and --quiet cancels any --verbose for the library log level. she's quiet but not that quiet.
  • --set-options=<key=value>[,<key=value>...] β€” sets libnvme library options for this invocation. supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.
  • --timeout=<ms> β€” sets the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff). she'll wait forever if you ask nicely. 🫢
  • -v, --verbose β€” increases the level of detail in the output. may be specified multiple times to further increase verbosity. say it with me: more -v, more lore. πŸ“–
also!! these options can be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file. flag supremacy, periodt. πŸ’…

✨ EXAMPLES ✨

No examples yet 😭 (she's mysterious. she's an enigma. we respect it.)


🌸 NVME 🌸

part of the nvme-user suite πŸ¦‹


and that's the whole page, bestie β€” you ate that. πŸ’–βœ¨

sign-off time: this lil masterpiece is from the NVMe crew, dated 10/30/2026, and it's NVME-RESV-ACQUIRE(1) all day every day. go acquire some reservations, you absolute icon πŸ‘‘πŸŽ€πŸ§š

πŸ“¦ where this page comes from