NVME-IO-PASSTHRU(1) NVMe Manual NVME-IO-PASSTHRU(1)

nvme-io-passthru - ارسال یک دستور دلخواه ورودی/خروجی (IO) و بازگرداندن نتایج

nvme-io-passthru <device> [--opcode=<opcode> | -O <opcode>]
                        [--flags=<flags> | -f <flags>] [-rsvd=<rsvd> | -R <rsvd>]
                        [--namespace-id=<nsid> | -n <nsid>] [--cdw2=<cdw2> | -2 <cdw2>]
                        [--cdw3=<cdw3> | -3 <cdw3>] [--cdw10=<cdw10> | -4 <cdw10>]
                        [--cdw11=<cdw11> | -5 <cdw11>] [--cdw12=<cdw12> | -6 <cdw12>]
                        [--cdw13=<cdw13> | -7 <cdw13>] [--cdw14=<cdw14> | -8 <cdw14>]
                        [--cdw15=<cdw15> | -9 <cdw15>]
                        [--data-len=<data-len> | -l <data-len>]
                        [--metadata-len=<len> | -m <len>]
                        [--read | -r] [--write | -w]
                        [--input-file=<file> | -i <file>]
                        [--metadata=<file> | -M <file>]
                        [--timeout=<timeout> | -t <timeout>] [--show-command | -s]
                        [--dry-run | -d] [--raw-binary | -b]
                        [--prefill=<prefill> | -p <prefill>]
                        [--latency | -T]
                        [--output-format=<fmt> | -o <fmt>] [--verbose | -v]

یک دستور دلخواه ورودی/خروجی (IO) ان‌وی‌ام‌ای را ارسال کرده و نتایج مربوطه را بازمی‌گرداند. این خروجی ممکن است صرفاً نتیجه و وضعیت دستور باشد، یا در صورتی که دستور بافری را برگرداند شامل بافر نیز باشد. این دستور هیچ‌گونه تفسیری روی کدهای عملیاتی (opcodes) یا گزینه‌ها انجام نمی‌دهد.

پارامتر <device> اجباری است و می‌تواند یک دستگاه کاراکتری NVMe (مانند /dev/nvme0) یا یک دستگاه بلوکی فضای نام (مانند /dev/nvme0n1) باشد.

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

-O <opcode>, --opcode=<opcode>

کد عملیاتی (opcode) مربوط به NVMe جهت ارسال به دستگاه در دستور. از آنجا که این پارامتر اجباری است، ارائهٔ آرگومان الزامی می‌باشد.

-f <flags>, --flags=<flags>

فلگ‌های دستور NVMe جهت ارسال به دستگاه در دستور.

-R <rsvd>, --rsvd=<rsvd>

مقدار فیلد رزروشده (reserved) در دستور.

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

مقدار شناسهٔ فضای نام (ns-id) در دستور. مقدار پیش‌فرض 0 است.

-[2-9] <cdw>, --cdw[2-3,10-15]=<cdw>

مقدار dword دستور را برای مدخل مشخص‌شده در دستور تعیین می‌کند.

-r, --read, -w, --write

برای جهت داده‌ها (data-direction) در دستور استفاده می‌شود و برای دستوراتی که داده ارسال یا دریافت می‌کنند الزامی است. هرگز از هر دو گزینهٔ خواندن (read) و نوشتن (write) به‌طور هم‌زمان استفاده نکنید.

-i <file>, --input-file=<file>

اگر دستور از نوع خروج داده (data-out / نوشتن) باشد، از این فایل برای پر کردن بافر ارسالی به دستگاه استفاده می‌شود. در صورت عدم تعیین فایل، فرض می‌شود از STDIN استفاده می‌شود. اگر دستور از نوع ورود داده (data-in / خواندن) باشد، داده‌های بازگردانده‌شده از دستگاه در این فایل ذخیره خواهند شد.

-M <file>, --metadata=<file>

اگر دستور از نوع خروج داده (data-out / نوشتن) باشد، از این فایل برای پر کردن بافر متادادهٔ ارسالی به دستگاه استفاده می‌شود. در صورت عدم تعیین فایل، فرض می‌شود از STDIN استفاده می‌شود. اگر دستور از نوع ورود داده (data-in / خواندن) باشد، متادادهٔ بازگردانده‌شده از دستگاه در این فایل ذخیره خواهد شد.

-l <data-len>, --data-len=<data-len>

طول داده برای بافر مورد استفاده در این دستور.

-m <data-len>, --metadata-len=<data-len>

طول متاداده برای بافر مورد استفاده در این دستور.

-s, --show-cmd

دستوری را که قرار است ارسال شود، چاپ می‌کند.

-d, --dry-run

دستور را در عمل ارسال نمی‌کند. در صورت تمایل به استفاده از گزینهٔ --dry-run، گزینهٔ --show-cmd باید تنظیم شده باشد. در غیر این صورت گزینهٔ --dry-run نادیده گرفته خواهد شد.

-b, --raw-binary

در صورتی که دستور، داده یا ساختاری را بازگرداند، بافر خام بازگردانده‌شده را در stdout چاپ می‌کند.

-p <prefill>, --prefill <prefill>

پر کردن اولیهٔ بافر با یک مقدار بایت از پیش تعیین‌شده. مقدار پیش‌فرض 0 است. این گزینه زمانی مفید است که داده‌های در حال نوشتن کوتاه‌تر از بافر مورد نیاز باشند و لازم باشد آن را با یک مقدار مشخص پر (pad) کنید. همچنین اگر نیاز داشته باشید بررسی کنید که آیا دستگاه در یک دستور ورود داده (data-in) بافر را بازنویسی می‌کند یا خیر، کاربردی است.

-T, --latency

میزان تاخیر اجرای فراخوانی IOCTL را چاپ می‌کند (بر حسب میکروثانیه).

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

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

-v, --verbose

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

-t <timeout>, --timeout=<timeout>

بازنویسی مقدار مهلت زمانی پیش‌فرض. بر حسب میلی‌ثانیه.

nvme io-passthru /dev/nvme0n1 --opcode=2 --namespace-id=1 --data-len=4096 --read --cdw10=0 --cdw11=0 --cdw12=0x70000 --raw-binary

nvme(1)

بخشی از مجموعهٔ nvme-user

02/16/2026 NVMe