NVME-RESV-REGISTER(1)
π
NVME-RESV-REGISTER(1) β the nvme-resv-register page, but make it make sense
okay so bestie, this is a page from the NVMe Manual and it's literally all about registering an nvme reservation. yes it's as niche as it sounds and yes you're gonna slay it. π
β¨ NAME β¨
nvme-resv-register β register an nvme reservation π¦
β¨ SYNOPSIS β¨
nvme [<global-options>] resv register <device>
[--namespace-id=<nsid> | -n <nsid>]
[--crkey=<crkey> | -c <crkey>]
[--nrkey=<nrkey> | -k <nrkey>]
[--rrega=<rrega> | -r <rrega>]
[--cptpl=<cptpl> | -p <cptpl>]
[--iekey | -i]
β¨ DESCRIPTION β¨
so the Reservation Register command is the main character here β it's the one that registers, unregisters, or replaces a reservation key. that's the whole vibe. π
and listen β the old bare nvme resv-register form (no space in the middle, iykyk) still works, but it's a deprecated alias and it's getting yeeted in a future major version. so like, new scripts should use nvme resv register instead, okay? don't be that person. π«Ά
β¨ OPTIONS β¨
-n <nsid>,--namespace-id=<nsid>β overrides thensidfield. π if you're using the admin character device, this one is required β no skipping it. the broadcast value0xffffffffcan also be given asallor-1.-c <crkey>,--crkey=<crkey>β Current Reservation Key. so if the Reservation Register Action is001b(that's Unregister Reservation Key) or010b(Replace Reservation Key), then this field holds the current reservation key associated with the host π¦. for every other Reservation Register Action value, this field is reserved. oh and β the controller ignores this field's value when the Ignore Existing Key (IEKEY) bit is set to'1'. so like, don't stress about it then π.-k <nrkey>,--nrkey=<nrkey>β New Reservation Key. if the Reservation Register Action is000b(Register Reservation Key) or010b(Replace Reservation Key), then this field contains the new reservation key associated with the host β¨. for all other Reservation Register Action values, this field is reserved. periodt.-p <cptpl>,--cptpl=<cptpl>β Change Persist Through Power Loss State. this field lets the Persist Through Power Loss state associated with the namespace be modified as a side effect of processing this command π§. the values:0β No change to PTPL state1β Reserved2β Set PTPL state to'0'. Reservations are released and registrants are cleared on a power on.3β Set PTPL state to'1'. Reservations and registrants persist across a power loss.
(yes i turned the table into bullets, you're welcome, it reads so much better π)
-r <rrega>,--rrega=<rrega>β Reservation Register Action. this field specifies the registration action that gets performed by the command π:0β Register Reservation Key1β Unregister Reservation Key2β Replace Reservation Key3-7β Reserved
-i,--iekeyβ Ignore Existing Key. if this bit is set to a1, then the Current Reservation Key (CRKEY) check is disabled and the command shall succeed regardless of the CRKEY field value ππ₯.
indicator option, defaults to 0.
β¨ GLOBAL OPTIONS β¨
these bad boys are defined at the top-level nvme command, and they're available to this subcommand too β so you're never locked out π«Ά:
--dry-runβ prints the command that would be executed, but doesn't actually execute it. vibe check first, commit later π--no-ioctl-probingβ disables probing for 64-bit IOCTL support.--no-retriesβ disables retry logic on transient errors.-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,'json, orbinary. only one output format at a time, bestie β pick a lane β¨.--output-format-version=<version>β selects 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 π.--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level π€«.--set-options=<key=value>[,<key=value>...]β sets libnvme library options for this invocation. supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dirπ.--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff) β.-v,--verboseβ increases 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. no cap. π
β¨ EXAMPLES β¨
No examples yet π (literally just vibes and an empty section, we move)
β¨ NVME β¨
Part of the nvme-user suite π
and that's the whole page bestie, go forth and register those reservations πβ¨π¦
sign-off: this gorgeous little manual page is from the nvme-user suite, dated 10/30/2026 β the NVMe version of "posted from my phone" π
π¦ 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