nvme-id-ns - Man Page

Send NVMe Identify Namespace, return result and structure

Synopsis

nvme id-ns <device> [--vendor-specific | -v] [--raw-binary | -b]
                        [--namespace-id=<nsid> | -n <nsid>] [--force]
                        [--human-readable | -H]
                        [--output-format=<fmt> | -o <fmt>] [--verbose | -v]

Description

For the NVMe device given, sends an identify namespace command and provides the result and 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)​. If the character device is given, the '--namespace-id' option is mandatory, otherwise it will use the ns-id of the namespace for the block device you opened​. For block devices, the ns-id used can be overridden with the same option​.

On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout​.

Options

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

Retrieve the identify namespace structure for the given nsid​. This is required for the character devices, or overrides the block nsid if given​. If the controller supports namespace management capability and 0xFFFFFFFF is given, then the controller returns the identify namespace structure that specifies common capabilities across namespaces for the controller​.

--force

Request controller return the identify namespace structure even if the namespace is not attached to the controller​. This is valid only for controllers at or newer than revision 1​.2​. Controllers at revision lower than this may interpret the command incorrectly​.

-b,  --raw-binary

Print the raw buffer to stdout​. Structure is not parsed by program​. This overrides the vendor specific and human readable options​.

-V,  --vendor-specific

In addition to parsing known fields, this option will dump the vendor specific region of the structure in hex with ascii interpretation​.

-H,  --human-readable

This option will parse and format many of the bit fields into human-readable formats​.

-o <fmt>, --output-format=<fmt>

Set the reporting format to normal, json or binary​. Only one output format can be used at a time​.

-v,  --verbose

Increase the information detail in the output​.

Examples

/* File: nvme_parse_id_ns​.c */

#include <linux/nvme​.h>
#include <stdio​.h>
#include <unistd​.h>

int main(int argc, char **argv)
{
        unsigned char buf[sizeof(struct nvme_id_ns)];
        struct nvme_id_ns *ns = (struct nvme_id_ns *)buf;

        if (read(STDIN_FILENO, buf, sizeof(buf)))
                return 1;

        printf("nsze : %#llx\n", ns->nsze);
        printf("ncap : %#llx\n", ns->ncap);
        return 0;
}

Nvme

Part of the nvme-user suite

Referenced By

nvme(1).

08/18/2026 NVMe Manual