{
  "slug": "nvme-get-lba-status",
  "term": "NVMe Get LBA Status",
  "aliases": [
    "Get LBA Status (NVMe)",
    "nvme get-lba-status"
  ],
  "definition": "NVMe Get LBA Status is an optional administrative command that reports selected allocation or potentially unrecoverable-block information for a namespace LBA range.",
  "note": "Action type 02h requests tracked allocated LBAs; 10h scans for untracked and also returns tracked potentially unrecoverable LBAs; 11h requests tracked potentially unrecoverable LBAs. The 10h scan examines internal controller data structures, not necessarily every block's payload. These are distinct queries, not interchangeable health scores. [lba-types] [lba-nvm12]\n\nIn NVM Command Set 1.2, allocation reporting uses AOCS.RALBAS support; the error-oriented actions use OACS.GLSS. Allocation reporting can include deallocated blocks within a mixed tracking unit. A returned range need not consist entirely of unreadable blocks. [lba-nvm12]\n\nRead completion condition (CMPC) separately from descriptor count. The value 0 gives no completion indication, 1 means incomplete, and 2 reports that the selected action completed over the requested range with no additional descriptors remaining. An empty list alone is not evidence of a healthy namespace. [lba-output]\n\nRetain the namespace, starting LBA, range length, action, response-size limit and command outcome with a capture. JSON or readable formatting does not broaden the requested scope. [lba-manual]\n\nField encodings differ: RL=0 extends from SLBA through NSZE-1; MNDW and descriptor NLB are zero-based quantities. Thus NLB=0 describes one block, not an empty extent. Preserve raw values and their encoding. [lba-nvm12]",
  "status": "shipping",
  "advantages": [],
  "limitations": [
    {
      "text": "This command is not the SCSI provisioning command of the same name; compare protocol, action and supported revision before interpreting a report.",
      "citationIds": [
        "lba-nvm12"
      ]
    },
    {
      "text": "Controller-reported LBA status does not validate filesystem block identity or application-level content.",
      "citationIds": [
        "lba-integrity"
      ]
    }
  ],
  "related": [
    "scsi-get-lba-status",
    "namespace-nvme",
    "nvme-write-uncorrectable",
    "nvme-media-data-integrity-errors"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-08",
  "citations": [
    {
      "id": "lba-nvm12",
      "title": "NVM Command Set 1.2, sections 4.1.5.4, 4.2.1 and 5.2.1; Figures 120, 130-132. Copyright 2008-2025 NVM Express, Inc. All rights reserved.",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-NVM-Command-Set-Specification-Revision-1.2-2025.08.01-Ratified.pdf",
      "accessed": "2026-11-08"
    },
    {
      "id": "lba-types",
      "title": "libnvme v1.15: nvme_lba_status_atype",
      "url": "https://github.com/linux-nvme/libnvme/blob/v1.15/src/nvme/types.h#L4575",
      "accessed": "2026-11-08"
    },
    {
      "id": "lba-output",
      "title": "nvme-cli v2.13: stdout_lba_status completion and descriptor output",
      "url": "https://github.com/linux-nvme/nvme-cli/blob/v2.13/nvme-print-stdout.c#L4849",
      "accessed": "2026-11-08"
    },
    {
      "id": "lba-manual",
      "title": "nvme-cli v2.11: Get LBA Status command options",
      "url": "https://github.com/linux-nvme/nvme-cli/blob/v2.11/Documentation/nvme-get-lba-status.txt",
      "accessed": "2026-11-08"
    },
    {
      "id": "lba-integrity",
      "title": "Bairavasundaram et al. An Analysis of Data Corruption in the Storage Stack. FAST 2008, sections 2.2-2.3 and 3.",
      "url": "https://static.usenix.org/events/fast08/tech/full_papers/bairavasundaram/bairavasundaram_html/index.html",
      "accessed": "2026-11-08"
    }
  ],
  "provenance": [
    "Primary-source interpretation of pinned NVM Command Set 1.2, libnvme v1.15 and nvme-cli documentation/source. No controller command, device scan or hardware experiment was performed."
  ]
}
