Reference

nvme-set-feature(1)

Sets an NVMe feature, returns applicable results

NAME

nvme-set-feature - Sets an NVMe feature, returns applicable results

SYNOPSIS

nvme [<global-options>] set-feature <device>
                        [--namespace-id=<nsid> | -n <nsid>]
                        [--feature-id=<fid> | -f <fid>]
                        [--value=<value> | -V <value>]
                        [--uuid-index=<uuid-index> | -U <uuid_index>]
                        [--data-len=<data-len> | -l <data-len>]
                        [--data=<data-file> | -d <data-file>]
                        [--save | -s]
                        [--cdw12=<cdw12> | -c <cdw12>]

DESCRIPTION

Submits an NVMe Set 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 value sent to the device is displayed

OPTIONS

-n <nsid>, --namespace-id=<nsid>

Sets 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.

ValueDefinition
0x01 | arbitrationArbitration
0x02 | power-mgmtPower Management
0x03 | lba-rangeLBA Range Type
0x04 | temp-threshTemperature Threshold
0x05 | err-recoveryError Recovery
0x06 | volatile-wcVolatile Write Cache
0x07 | num-queuesNumber of Queues
0x08 | irq-coalesceInterrupt Coalescing
0x09 | irq-configInterrupt Vector Configuration
0x0a | write-atomicWrite Atomicity Normal
0x0b | async-eventAsynchronous Event Configuration
0x0c | auto-pstAutonomous Power State Transition
0x0d | host-mem-bufHost Memory Buffer
0x0e | timestampTimestamp
0x0f | katoKeep Alive Timer
0x10 | hctmHost Controlled Thermal Management
0x11 | nopscNon-Operational Power State Config
0x12 | rrlRead Recovery Level Config
0x13 | plm-configPredictable Latency Mode Config
0x14 | plm-windowPredictable Latency Mode Window
0x15 | lba-sts-intervalLBA Status Information Report Interval
0x16 | host-behaviorHost Behavior Support
0x17 | sanitizeSanitize Config
0x18 | endurance-evt-cfgEndurance Group Event Configuration
0x19 | iocs-profileI/O Command Set Profile
0x1a | spinup-controlSpinup Control
0x1b | power-loss-signalPower Loss Signaling Config
0x1c | perf-characteristicsPerformance Characteristics
0x1d | fdpFlexible Data Placement
0x1e | fdp-eventsFDP Events
0x1f | ns-admin-labelNamespace Admin Label
0x20 | key-valueKey Value Configuration
0x21 | ctrl-data-queueController Data Queue
0x78 | emb-mgmt-ctrl-addrEmbedded Management Controller Address
0x79 | host-mgmt-agent-addrHost Management Agent Address
0x7d | enh-ctrl-metadataEnhanced Controller Metadata
0x7e | ctrl-metadataController Metadata
0x7f | ns-metadataNamespace Metadata
0x80 | sw-progressSoftware Progress Marker
0x81 | host-idHost Identifier
0x82 | resv-maskReservation Notification Mask
0x83 | resv-persistReservation Persistence
0x84 | write-protectNamespace Write Protection Config
0x85 | bp-write-protectBoot Partition Write Protection Config
-l <data-len>, --data-len=<data-len>

The data length for the buffer submitted for this feature. Most known features do not use this value. The exceptions are LBA Range Type and host identifier.

-d <data-file>, --data=<data-file>

The data file for the buffer submitted for this feature. Most known features do not use this value. The exceptions is LBA Range Type and host identifier. This defaults to STDIN so files and echo can be piped.

-V <value>, --value=<value>

The value for command dword 11, the value you want to set the feature to.

-s, --save

Save the attribute so that it persists through all power states and resets.

-U <uuid-index>, --uuid-index=<uuid-index>

UUID Index of the feature

-c <cdw12>, --cdw12=<cdw12>

The value for command dword 12, if applicable.

GLOBAL 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

• Sets the Power State (PS) to 1 in feature id 2:

# nvme set-feature /dev/nvme0 -f 2 /dev/nvme0n1 -V 0x1

• Sets the host id to the ascii string.

# echo "abcdefgh" | nvme set-feature /dev/nvme0 -f 0x81 -l 8

nvme set-feature /dev/nvme0 -f 0x81 -l 8 -U 0x1

NVME

Part of the nvme-user suite

History

--cdw12 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); -U since Debian 12 (Bookworm); -V since Debian 13 (Trixie); -c since Debian 13 (Trixie); -o since Debian 13 (Trixie).

-t until Debian 13 (Trixie).