NVME-NS-DETACH(1)
π NVME-NS-DETACH(1) β the nvme-ns-detach glow-up
okay so bestie, welcome to the NVMe Manual page for nvme-ns-detach, and no, that's not a typo, that's literally the whole title π let's get into it β¨
πΈ NAME πΈ
nvme-ns-detach β sends the NVMe detach namespace command, and hands you back the result. that's it, that's the vibe π¦
β¨ SYNOPSIS β¨
nvme [<global-options>] ns detach <device>
[--namespace-id=<nsid> | -n <nsid>]
[--controllers=<ctrl-list,> | -c <ctrl-list,>]
so you run nvme with your optional <global-options>, then ns detach, then the <device>, and then optionally the namespace id and the controller list. chef's kiss π
π DESCRIPTION π
for the NVMe device you hand it, it sends the nvme namespace detach command for the namespace identifier you gave, detaching it to the list of controller identifiers you provided. like, it's literally unhooking that namespace from those controllers. main character energy π
π OPTIONS π
-n <nsid>,--namespace-id=<nsid>β the namespace identifier you're detaching. and here's the fun part: you can also pass the broadcast value0xffffffffas eitherallor-1. yes bestie,all,-1, and0xffffffffare all saying the same thing π-c <ctrl-list,>,--controllers=<ctrl-list,>β the comma separated list of controller identifiers to detach the namespace from. note the trailing comma in the placeholder, it's giving "expecting a list" π
π GLOBAL OPTIONS π
these ones are defined up at the top-level nvme command, but they're available to this subcommand too. iykyk π«Ά
--dry-runβ prints the command that would be executed, but does not actually execute it. vibes only, no consequences β¨--no-ioctl-probingβ disables probing for 64-bit IOCTL support. lowkey niche but slay π--no-retriesβ kills the retry logic on transient errors. one shot, no takebacks π₯-o <fmt>,--output-format=<fmt>β sets the reporting format tonormal,tabular,json, orbinary. and heads up: only one output format at a time, we don't do both π--output-format-version=<version>β picks the output format version. version1uses the original field naming, while version2(that's the default, bestie) gives you more consistent and script-friendly field names. other versions are rejected, so don't try it π--quietβ suppresses informational messages. errors are still reported, and--quietcancels any--verbosefor the library log level. it's giving "i'm not listening but i still care" π--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. mix and match, comma separated, go off π--timeout=<ms>β sets the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). literally forever, no cap β³-v,--verboseβ increases the level of detail in the output. you can specify it multiple times to further increase verbosity. stack it, bestie π¦
π‘ these options can also be set as machine-wide defaults in nvme-cli.conf(5). and remember the golden rule: a command-line flag always overrides the file. periodt π
πΈ EXAMPLES πΈ
no examples yet. girl, the docs are lacking, but the command is iconic, what can i say π
π NVME π
part of the nvme-user suite π
and that's the whole page! this one's from the NVMe Manual, dated 10/30/2026 β go detach those namespaces, bestie, you're gonna ate π
β¨π«Ά
π¦ 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