NVME-ID-NS-GRANUL(1)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NVME-ID-NS-GRANUL(1) β€” nvme-id-ns-granularity

okay bestie, welcome to the NVMe Manual ✨ β€” this one's all about nvme-id-ns-granularity, and it's genuinely so straightforward you're gonna eat it up πŸ“


🌸 NAME 🌸

nvme-id-ns-granularity β€” sends an Identify Namespace Granularity List command to the device you point at 🎯


πŸŽ€ SYNOPSIS πŸŽ€

nvme [<global-options>] id ns-granularity <device>

πŸ¦‹ DESCRIPTION πŸ¦‹

So what it does is: it sends a Identify Namespace Granularity List command command to the device you specified, and then it returns the results. That's the whole vibe. No cap. πŸ’–

The <device> parameter is mandatory β€” like, you literally cannot skip it, it's giving main character energy and refuses to be optional. And it can be either the NVMe character device (ex: /dev/nvme0) or the block device (ex: /dev/nvme0n1). Either one slays, your choice 🫢

On success it returns 0. On error, it returns an error code instead. Simple as that, periodt.

okay so this next bit matters β€” the bare nvme id-ns-granularity form (without a space) still works as a deprecated alias, and it will be removed in a future major version. So like… it's not dead yet but it's on thin ice πŸ’€. New scripts should use nvme id ns-granularity instead. iykyk.

✨ OPTIONS ✨

🌈 GLOBAL OPTIONS 🌈

These ones are defined at the top-level nvme command and are available to this subcommand too β€” so they're not even exclusively ours, we're just borrowing them and they're iconic for it πŸ‘‘

  • --dry-run β€” prints the command that would be executed, but does not actually execute it. It's the "look but don't touch" of flags πŸ™ˆ
  • --no-ioctl-probing β€” disables probing for 64-bit IOCTL support. Bye probe πŸ‘‹
  • --no-retries β€” disables the retry logic on transient errors. One shot, no do-overs πŸ’€
  • -o <fmt>, --output-format=<fmt> β€” sets 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> β€” 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 β€” not on the list, not invited 🚫
  • --quiet β€” suppresses informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level. Shhh 🀫
  • --set-options=<key=value>[,<key=value>...] β€” sets libnvme library options for this invocation. The 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). Time is a construct ⏳
  • -v, --verbose β€” increases the level of detail in the output. May be specified multiple times to further increase verbosity. Stack it like accessories πŸ’…
Also!! These options can be set as machine-wide defaults in nvme-cli.conf(5). But a command-line flag always overrides the file β€” CLI stays winning, always πŸ‘‘

πŸ”₯ EXAMPLES πŸ”₯

  • Has the program issue a id-ns-granularity to display structure.
# nvme id ns-granularity /dev/nvme0

πŸ‘‘ NVME πŸ‘‘

Part of the nvme-user suite. You're welcome πŸ’œ


okay that's the whole page, you're officially an expert now, go forth and granularate (?) 🌟 β€” this masterpiece is from the NVMe source, dated 10/30/2026, mwah πŸ’‹

πŸ“¦ where this page comes from