NDCTL-WRITE-INFOBLOCK(1) ndctl Manual NDCTL-WRITE-INFOBLOCK(1)

ndctl-write-infoblock - تولید و نوشتن یک infoblock

ndctl write-infoblock [<namespaceX.Y> | -o <file> | --stdout] [<options>]

همان‌طور که در بخش نحوه عملکرد ndctl-create-namespace(1) شرح داده شده است، گنجایش خام یک namespace می‌تواند دربرگیرنده یک هویت یا حالت عملکرد باشد. به طور مشخص، این حالت می‌تواند روی یکی از مقادیر “sector”، “fsdax” و “devdax” تنظیم شود. هر یک از این حالت‌ها توسط ساختار یک info-block که حالت عملکرد را به صورت منحصربه‌فردی مشخص می‌کند، تعریف می‌شوند. دستور write-infoblock نحوه تولید یک info-block از نوع “fsdax” یا “devdax” را متناسب با اندازه تصویر (image size) مشخص‌شده می‌داند.

بلوک تولیدشده می‌تواند در یک namespace موجود نوشته شود (به شرطی که آن namespace در حال حاضر فعال نباشد)، در یک فایل نوشته شود یا به خروجی استاندارد (stdout) هدایت گردد.


هشدار

این دستور یک امکان اشکال‌زدایی (debug) است که می‌تواند فایل‌های تصویری با infoblockهای معتبر، و همچنین infoblockهای نامعتبر را به منظور آزمایش هسته تولید کند. از گزینه‌های --offset و --align با احتیاط استفاده کنید. به ویژه اینکه --offset باید دقیقاً با افست آدرس فیزیکی واقعی namespaceای که روی آن اعمال می‌شود مطابقت داشته باشد، و --align باید یکی از اندازه‌های صفحه پشتیبانی‌شده در معماری باشد.

ndctl write-infoblock -s 1T -c | ndctl read-infoblock -j
wrote 1 infoblock
[
  {
    "file":"<stdin>",
    "signature":"NVDIMM_PFN_INFO",
    "uuid":"42e1d574-76ac-402c-9132-5436e31528c0",
    "parent_uuid":"ef83e49c-4c4a-4fae-b908-72e94675b1b7",
    "flags":0,
    "version":"1.4",
    "dataoff":17196646400,
    "npfns":264237056,
    "mode":2,
    "start_pad":0,
    "end_trunc":0,
    "align":16777216,
    "page_size":4096,
    "page_struct_size":64
  }
]
read 1 infoblock

<namespace(s)>

یک یا چند نام دستگاه namespaceX.Y. کلیدواژه all می‌تواند برای اعمال روی تمام namespaceهای موجود در سیستم مشخص شود، و اختیاری است که بر اساس شناسه گذرگاه (گزینه --bus= را ببینید) یا شناسه ناحیه (گزینه --region= را ببینید) فیلتر شود.

-c, --stdout

نوشتن infoblock در خروجی استاندارد (stdout).

-o, --output=

نوشتن infoblock در فایل داده‌شده (مانعة‌الجمع با --stdout).

-m, --mode=

انتخاب حالت infoblock میان fsdax و devdax. برای جزئیات در مورد --mode به ndctl-create-namespace(1) مراجعه کنید.

-s, --size=

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

-a, --align=

مشخص کردن مقدار “align” در infoblock. در حالت --mode=devdax مقدار “align” اندازه نگاشت صفحه را تعیین می‌کند. هیچ‌گونه اعتبارسنجی روی این مقدار نسبت به قابلیت‌های نگاشت صفحه در پلتفرم انجام نمی‌شود.

-u, --uuid=

جایگزینی مقدار پیش‌فرض UUID تولیدشده به صورت خودکار با مقدار داده‌شده.

-M, --map=

انتخاب اینکه آیا آرایه نگاشت صفحه از دستگاه تخصیص یابد یا از “System RAM”. پیش‌فرض، دستگاه است. برای جزئیات بیشتر به ndctl-create-namespace(1) مراجعه کنید.

-p, --parent-uuid=

هنگامی که infoblock روی یک namespace برچسب‌دار (labelled) ذخیره می‌شود، UUID مربوط به namespace باید با صفت “parent uuid” در infoblock همخوانی داشته باشد. این گزینه در صورتی که از --output و --stdout استفاده نشود، به صورت پیش‌فرض برابر با UUID آن namespace خواهد بود؛ در غیر این صورت مقدار پیش‌فرض آن یک UUID تهی (NULL UUID، تمام صفرها) است.

-O, --offset=

به طور پیش‌فرض فرض بر این است که infoblock در یک namespace یا namespace-image نوشته می‌شود که با اندازه خود هم‌تراز شده است. این گزینه تخصصی/اشکال‌زدایی (EXPERT/DEBUG) را برای آزمایش و ارزیابی نحوه مدیریت هسته در قبال namespaceهایی که این فرض را نقض می‌کنند، تعیین کنید.

-r, --region=

یک نام دستگاه regionX یا یک شماره شناسه ناحیه. محدود کردن عملیات به ناحیه(های) مشخص‌شده. کلیدواژه all می‌تواند برای مشخص کردن عدم وجود هرگونه محدودیت به کار رود، هرچند این کار معادل مشخص نکردن گزینه --region است.

Copyright © 2016 - 2022, Intel Corporation. License GPLv2: GNU GPL version 2 http://gnu.org/licenses/gpl.html. این نرم‌افزار آزاد است: شما مجاز به تغییر و توزیع مجدد آن هستید. هیچ‌گونه ضمانتی وجود ندارد، تا حدی که قانون اجازه می‌دهد.

ndctl-create-namespace(1), UEFI NVDIMM Label Protocol http://www.uefi.org/sites/default/files/resources/UEFI_Spec_2_7.pdf

2026-06-30 ndctl