nvme-get-feature1
Gets an nvme feature, returns applicable results
Usage
nvme [<global-options>]
get-feature
<device>
[{--namespace-id=<nsid> | -n
<nsid>}]
[{--feature-id=<fid> | -f
<fid>}]
[{--uuid-index=<uuid-index> | -U
<uuid_index>}]
[{--data-len=<data-len> | -l
<data-len>}]
[{--sel=<select> | -s
<select>}]
[{--raw-binary | -b}]
[{--cdw11=<cdw11> | -c
<cdw11>}]
[{--changed | -C}]
Overview
Submits an NVMe Get Feature admin command and returns the applicable results. This may be the feature’s value, or may also include a feature structure if the feature requires it (ex: LBA Range Type).
The <device> parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
On success, the returned feature’s structure (if applicable) may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format if it is a known structure, displayed in hex, or the raw buffer may be printed to stdout for another program to parse.
Options
-
-n <nsid>, --namespace-id=<nsid> -
Retrieve the feature for the given nsid. This is optional and most features do not use this value. The broadcast value 0xffffffff can also be given as all or -1.
-
-f <fid>, --feature-id=<fid> -
The feature id to send with the command. Value provided should be in hex.
Value Definition 0x01 | arbitration Arbitration 0x02 | power-mgmt Power Management 0x03 | lba-range LBA Range Type 0x04 | temp-thresh Temperature Threshold 0x05 | err-recovery Error Recovery 0x06 | volatile-wc Volatile Write Cache 0x07 | num-queues Number of Queues 0x08 | irq-coalesce Interrupt Coalescing 0x09 | irq-config Interrupt Vector Configuration 0x0a | write-atomic Write Atomicity Normal 0x0b | async-event Asynchronous Event Configuration 0x0c | auto-pst Autonomous Power State Transition 0x0d | host-mem-buf Host Memory Buffer 0x0e | timestamp Timestamp 0x0f | kato Keep Alive Timer 0x10 | hctm Host Controlled Thermal Management 0x11 | nopsc Non-Operational Power State Config 0x12 | rrl Read Recovery Level Config 0x13 | plm-config Predictable Latency Mode Config 0x14 | plm-window Predictable Latency Mode Window 0x15 | lba-sts-interval LBA Status Information Report Interval 0x16 | host-behavior Host Behavior Support 0x17 | sanitize Sanitize Config 0x18 | endurance-evt-cfg Endurance Group Event Configuration 0x19 | iocs-profile I/O Command Set Profile 0x1a | spinup-control Spinup Control 0x1b | power-loss-signal Power Loss Signaling Config 0x1c | perf-characteristics Performance Characteristics 0x1d | fdp Flexible Data Placement 0x1e | fdp-events FDP Events 0x1f | ns-admin-label Namespace Admin Label 0x20 | key-value Key Value Configuration 0x21 | ctrl-data-queue Controller Data Queue 0x78 | emb-mgmt-ctrl-addr Embedded Management Controller Address 0x79 | host-mgmt-agent-addr Host Management Agent Address 0x7d | enh-ctrl-metadata Enhanced Controller Metadata 0x7e | ctrl-metadata Controller Metadata 0x7f | ns-metadata Namespace Metadata 0x80 | sw-progress Software Progress Marker 0x81 | host-id Host Identifier 0x82 | resv-mask Reservation Notification Mask 0x83 | resv-persist Reservation Persistence 0x84 | write-protect Namespace Write Protection Config 0x85 | bp-write-protect Boot Partition Write Protection Config
-
-s <select>, --sel=<select> -
Select (SEL): This field specifies which value of the attributes to return in the provided data:
Select Name Description 0 current Current 1 default Default 2 saved Saved 3 supported Supported capabilities
-
-U <uuid-index>, --uuid-index=<uuid-index> -
UUID Index of the feature
-
-l <data-len>, --data-len=<data-len> -
The data length for the buffer returned for this feature. Most known features do not use this value. The exception is LBA Range Type
-
-c <cdw11>, --cdw11=<cdw11> -
The value for command dword 11, if applicable.
-
-b, --raw-binary -
Print the raw feature buffer to stdout if the feature returns a structure.
-
-C, --changed -
This option will show feature changed.
Options
The following options are defined at the top-level nvme command and are available to this subcommand:
-
--dry-run -
Print the command that would be executed, but do not actually execute it.
-
--no-ioctl-probing -
Disable probing for 64-bit IOCTL support.
-
--no-retries -
Disable retry logic on transient errors.
-
-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.
-
--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).
-
-v, --verbose -
Increase 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.
Examples
• Retrieves the feature for Number of Queues, or feature id 7:
# nvme get-feature /dev/nvme0 -f 7
• The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be printed to the screen in human readable format:
# nvme get-feature /dev/nvme0 -f 3
• Retrieves the feature for the some vendor specific feature and specifically requesting a buffer be allocate for this feature, which will be displayed to the user in as a hex dump:
# nvme get-feature /dev/nvme0 -f 0xc0 -l 512
Get feature with UUID index
# nvme get-feature /dev/nvme0 -f 0xc0 -l 512 -U 0x1
• The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be saved to a file in its raw format:
# nvme get-feature /dev/nvme0 -f 3 --raw-binary > lba_range.raw
It is probably a bad idea to not redirect stdout when using this mode.
Nvme
Part of the nvme-user suite
Releases
6 releases since Debian 9 (Stretch); the text changed 5 times.
--changed since Debian 13 (Trixie);
--dry-run since Arch Linux 2026-11-01;
--no-ioctl-probing since Arch Linux 2026-11-01;
--no-retries since Arch Linux 2026-11-01;
--output-format since Debian 13 (Trixie);
--output-format-version since Arch Linux 2026-11-01;
--quiet since Arch Linux 2026-11-01;
--set-options since Arch Linux 2026-11-01;
--timeout since Debian 13 (Trixie);
--uuid-index since Debian 12 (Bookworm);
--verbose since Debian 13 (Trixie);
-C since Debian 13 (Trixie);
-U since Debian 12 (Bookworm);
-c since Debian 13 (Trixie);
-o since Debian 13 (Trixie);
-v since Debian 13 (Trixie).
--human-readable until Debian 13 (Trixie);
-H until Debian 13 (Trixie);
-t until Debian 13 (Trixie).