Reference

nvme-get-log(1)

Retrieves a log page from an NVMe device

NAME

nvme-get-log - Retrieves a log page from an NVMe device

SYNOPSIS

nvme [<global-options>] get-log <device> [--log-id=<log-id> | -i <log-id>]
                        [--log-len=<log-len> | -l <log-len>]
                        [--aen=<aen> | -a <aen>]
                        [--namespace-id=<nsid> | -n <nsid>]
                        [--raw-binary | -b]
                        [--lpo=<offset> | -L <offset>]
                        [--lsp=<field> | -s <field>]
                        [--lsi=<field> | -S <field>]
                        [--rae | -r]
                        [--csi=<command_set_identifier> | -y <command_set_identifier>]
                        [--ot=<offset_type> | -O <offset_type>]
                        [--xfer-len=<length> | -x <length>]

DESCRIPTION

Retrieves an arbitrary NVMe log page from an NVMe device and provides the returned structure.

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 log structure may be returned in one of several ways depending on the option flags; the structure may be displayed in hex by the program or the raw buffer may be printed to stdout for another program to parse.

OPTIONS

-l <log-len>, --log-len=<log-len>

Allocates a buffer of <log-len> bytes size and requests this many bytes be returned in the constructed NVMe command. This param is mandatory.

-i <log-id>, --log-id=<log-id>

Sets the commands requested log-id to <log-id>. Defaults to 0.

ValueDefinition
0x00 | supported-log-pagesSupported Log Pages
0x01 | errorError Information
0x02 | smartSMART / Health Information
0x03 | fw-slotFirmware Slot Information
0x04 | changed-nsChanged Namespace List
0x05 | cmd-effectsCommands Supported and Effects
0x06 | device-self-testDevice Self-test
0x07 | telemetry-hostTelemetry Host-Initiated
0x08 | telemetry-ctrlTelemetry Controller-Initiated
0x09 | endurance-groupEndurance Group Information
0x0a | predictable-lat-nvmsetPredictable Latency Per NVM Set
0x0b | predictable-lat-aggPredictable Latency Event Aggregate
0x0c | anaAsymmetric Namespace Access
0x0d | persistent-eventPersistent Event Log
0x0e | lba-statusLBA Status Information
0x0f | endurance-grp-evtEndurance Group Event Aggregate
0x10 | media-unit-statusMedia Unit Status
0x11 | supported-cap-config-listSupported Capacity Configuration Lis
0x12 | fid-supported-effectsFeature Identifiers Supported and Effects
0x13 | mi-cmd-supported-effectsNVMe-MI Commands Supported and Effects
0x14 | cmd-and-feat-lockdownCommand and Feature Lockdown
0x15 | boot-partitionBoot Partition
0x16 | rotational-media-infoRotational Media Information
0x17 | dispersed-ns-participating-nsDispersed Namespace Participating NVM Subsystems
0x18 | mgmt-addr-listManagement Address List
0x19 | phy-rx-eomPhysical Interface Receiver Eye Opening Measurement
0x1a | reachability-groupsReachability Groups
0x1b | reachability-associationsReachability Associations
0x1c | changed-alloc-ns-listChanged Allocated Namespace List
0x20 | fdp-configsFDP Configurations
0x21 | fdp-ruh-usageReclaim Unit Handle Usage
0x22 | fdp-statsFDP Statistics
0x23 | fdp-eventsFDP Events
0x70 | discoverDiscovery
0x71 | host-discoverHost Discovery
0x72 | ave-discoverAVE Discovery
0x73 | pull-model-ddc-reqPull Model DDC Request
0x80 | reservationReservation Notification
0x81 | sanitizeSanitize Status
0xbf | zns-changed-zonesChanged Zone List
-a <aen>, --aen=<aen>

Convenience field for extracting log information based on an asynchronous event notification result. This will override log-id and log-len, if set.

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

Sets the command’s nsid value to the given nsid. Defaults to 0xffffffff if not given. This option may not affect anything depending on the log page, which may or may not be specific to a namespace. The broadcast value 0xffffffff can also be given as all or -1.

-b, --raw-binary

Print the raw log buffer to stdout.

-L <offset>, --lpo=<offset>

The log page offset specifies the location within a log page to start returning data from. It’s Dword-aligned and 64-bits.

-s <field>, --lsp=<field>

The log specified field of LID.

-S <field>, --lsi=<field>

The log specified field of Log Specific Identifier.

-r, --rae

Retain an Asynchronous Event.

-y <command_set_identifier>, --csi=<command_set_identifier>

This field specifies the identifier of command set. if not issued, NVM Command Set will be selected.

-O, --ot

This field specifies the offset type. If set to false, the Log Page Offset Lower field and the Log Page Offset Upper field specify the byte offset into the log page to be returned. If set to true, the Log Page Offset Lower field and the Log Page Offset Upper field specify the index into the list of data structures in the log page to be returned. The default is byte offset. If the option is specified the index mode is used.

-x <length>

--xfer-len <length>: Specify the read chunk size. The length argument is expected to be a multiple of 4096. The default size is 4096.

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

• Get 512 bytes from log page 2

# nvme get-log /dev/nvme0 --log-id=2 --log-len=512

The above example will get log page 2 (SMART), and request 512 bytes. On success, the returned log will be dumped in hex and not interpreted by the program.

• Have the program return the raw log page in binary:

# nvme get-log /dev/nvme0 -log-id=2 --log-len=512 --raw-binary > log_page_2.raw
# nvme get-log /dev/nvme0 -i 2 -l 512 -b > log_page_2.raw

It is not a good idea to not redirect stdout when using this mode.

NVME

Part of the nvme-user suite

History

--aen since Debian 10 (Buster); --csi since Debian 12 (Bookworm); --dry-run since Arch Linux 2026-11-01; --lpo since Debian 10 (Buster); --lsi since Debian 12 (Bookworm); --lsp since Debian 10 (Buster); --no-ioctl-probing since Arch Linux 2026-11-01; --no-retries since Arch Linux 2026-11-01; --ot since Debian 12 (Bookworm); --output-format since Debian 13 (Trixie); --output-format-version since Arch Linux 2026-11-01; --quiet since Arch Linux 2026-11-01; --rae since Debian 10 (Buster); --set-options since Arch Linux 2026-11-01; --timeout since Arch Linux 2026-11-01; --verbose since Debian 13 (Trixie); -L since Debian 13 (Trixie); -O since Debian 12 (Bookworm); -S since Debian 12 (Bookworm); -a since Debian 10 (Buster); -o since Debian 10 (Buster); -r since Debian 10 (Buster); -s since Debian 10 (Buster); -v since Debian 13 (Trixie); -x since Debian 13 (Trixie); -y since Debian 12 (Bookworm).