NVME-ID-NS(1) NVMe Manual NVME-ID-NS(1)

nvme-id-ns - ارسال ساختار شناسایی فضای نام NVMe

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]

برای دستگاه NVMe داده‌شده، یک دستور شناسایی فضای نام ارسال کرده و نتیجه و ساختار بازگردانده‌شده را ارائه می‌دهد.

پارامتر <device> اجباری است و می‌تواند یک دستگاه کاراکتری NVMe (مانند /dev/nvme0) یا یک دستگاه بلوکی فضای نام (مانند /dev/nvme0n1) باشد. اگر دستگاه کاراکتری داده شود، گزینه '--namespace-id' اجباری است، در غیر این صورت از ns-id فضای نام مربوط به دستگاه بلوکی که باز کرده‌اید استفاده خواهد شد. برای دستگاه‌های بلوکی، مقدار ns-id مورد استفاده را می‌توان با همین گزینه لغو و جایگزین (override) کرد.

در صورت موفقیت، بسته به فلگ‌های گزینه، ساختار ممکن است به یکی از چندین شیوه بازگردانده شود؛ ساختار می‌تواند توسط برنامه پردازش و تجزیه شود یا بافر خام به خروجی استاندارد (stdout) ارسال گردد.

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

ساختار شناسایی فضای نام را برای nsid داده‌شده دریافت می‌کند. این گزینه برای دستگاه‌های کاراکتری الزامی است، یا در صورت تعیین، مقدار nsid دستگاه بلوکی را بازنویسی می‌کند. اگر کنترلر از قابلیت مدیریت فضای نام پشتیبانی کند و مقدار 0xFFFFFFFF داده شود، کنترلر ساختار شناسایی فضای نامی را بازمی‌گرداند که قابلیت‌های مشترک میان فضاهای نام را برای آن کنترلر مشخص می‌کند.

--force

از کنترلر درخواست می‌کند که ساختار شناسایی فضای نام را حتی در صورتی که فضای نام به کنترلر متصل نباشد، بازگرداند. این گزینه تنها برای کنترلرهای نسخه 1.2 یا جدیدتر معتبر است. کنترلرهای با نسخه پایین‌تر ممکن است این دستور را به درستی تفسیر نکنند.

-b, --raw-binary

بافر خام را در خروجی استاندارد (stdout) چاپ می‌کند. ساختار توسط برنامه تجزیه نمی‌شود. این گزینه بر گزینه‌های مختص سازنده (vendor specific) و خوانا برای انسان (human readable) اولویت دارد.

-V, --vendor-specific

علاوه بر تجزیه فیلدهای شناخته‌شده، این گزینه ناحیه مختص سازنده از ساختار را به‌صورت هگزادسیمال همراه با تفسیر اسکی نمایش می‌دهد.

-H, --human-readable

این گزینه بسیاری از فیلدهای بیتی را تجزیه کرده و در قالب‌های خوانا برای انسان قالب‌بندی می‌کند.

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

قالب گزارش‌دهی را روی normal، json یا binary تنظیم می‌کند. در هر بار تنها یک قالب خروجی قابل استفاده است.

-v, --verbose

میزان جزئیات اطلاعات را در خروجی افزایش می‌دهد.

•واداشتن برنامه به تفسیر بافر بازگردانده‌شده و نمایش فیلدهای شناخته‌شده در قالبی خوانا برای انسان:
# nvme id-ns /dev/nvme0n1
•در صورت استفاده از دستگاه کاراکتری یا بازنویسی شناسه فضای نام:
# nvme id-ns /dev/nvme0 -n 1
# nvme id-ns /dev/nvme0n1 -n 1
# nvme id-ns /dev/nvme0 --namespace-id=1
•علاوه بر نمایش فیلدهای شناخته‌شده، واداشتن برنامه به نمایش فیلد یکتای مختص سازنده:
# nvme id-ns /dev/nvme0n1 --vendor-specific
# nvme id-ns /dev/nvme0n1 -V

دستور بالا بافر 'vs' را به‌صورت هگزادسیمال تخلیه می‌کند، زیرا روش تفسیر آن را نمی‌داند.

•واداشتن برنامه به بازگرداندن ساختار خام به‌صورت باینری:
# nvme id-ns /dev/nvme0n1 --raw-binary > id_ns.raw
# nvme id-ns /dev/nvme0n1 -b > id_ns.raw

تغییر مسیر ندادن خروجی استاندارد (stdout) هنگام استفاده از این حالت احتمالاً ایده مناسبی نیست.

•همچنین ممکن است بخواهید داده‌ها را به برنامه دیگری بفرستید که بتواند بافر خام را تجزیه کند.
# nvme id-ns /dev/nvme0n1 --raw-binary | nvme_parse_id_ns

برنامه تجزیه‌کننده در مثال بالا می‌تواند برنامه‌ای باشد که ساختار را به شیوه دلخواه شما نشان می‌دهد. برنامه زیر نمونه‌ای از چنین برنامه‌ای است که آن را تجزیه می‌کند و می‌تواند خروجی را از طریق یک لوله (pipe)، '|'، همان‌طور که در مثال بالا نشان داده شده دریافت کند، یا می‌توانید با 'cat' یک بافر خروجی ذخیره‌شده را به ورودی آن ارسال کنید.

/* 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-user

02/16/2026 NVMe