NVME-FORMAT(1) NVMe Manual NVME-FORMAT(1)

nvme-format - قالببندی فضای نام NVMe

nvme format <device> [--namespace-id=<nsid> | -n <nsid>]
                        [--lbaf=<lbaf> | -l <lbaf>]
                        [--block-size=<block size | -b <block size>]
                        [--ses=<ses> | -s <ses>] [--pil=<pil> | -p <pil>]
                        [--pi=<pi> | -i <pi>] [--ms=<ms> | -m <ms>]
                        [--reset | -r] [--force]
                        [--timeout=<timeout> | -t <timeout>]
                        [--output-format=<fmt> | -o <fmt>] [--verbose | -v]

دستور مدیریتی Format Namespace را برای دستگاه NVMe مشخص‌شده ارسال کرده و نتایج را ارائه می‌دهد.

پارامتر <device> الزامی است و می‌تواند یک دستگاه کاراکتری NVMe (مانند /dev/nvme0) یا یک دستگاه بلوکی فضای نام (مانند /dev/nvme0n1) باشد. اگر دستگاه کاراکتری داده شود و کنترلر از قالب‌بندی فضاهای نام خاص پشتیبانی نکند (بیت ۰ از ID_CTRL.FNA فعال باشد)، آن‌گاه همهٔ فضاهای نام قالب‌بندی خواهند شد. اگر FNA غیرفعال باشد، شناسهٔ فضای نام باید با گزینهٔ namespace-id مشخص شود؛ برای ارسال فرمان قالب‌بندی به تمامی فضاهای نام، مقدار 0xffffffff را تعیین کنید. اگر دستگاه بلوکی داده شود، شناسهٔ فضای نام به‌طور پیش‌فرض همان شناسهٔ فضای نام دستگاه بلوکی ارائه‌شده خواهد بود، اما با همان گزینه می‌توان آن را بازنویسی کرد.

توجه داشته باشید که پسوند عددی روی دستگاه کاراکتری، برای مثال 0 در /dev/nvme0، نشان‌دهندهٔ این نیست که این شناسهٔ دستگاه، کنترلر والد هر فضای نامی با همان پسوند است. ممکن است عدد شناسهٔ فضای نام از شناسهٔ زیرسیستم باشد که مستقل از شناسهٔ کنترلر است. بر اساس نام دستگاه‌ها هیچ رابطهٔ خاصی میان آن‌ها فرض نکنید؛ در غیر این صورت ممکن است داده‌های روی یک دستگاه دیگر را به شکل غیرقابل‌بازگشتی پاک کنید.

در صورت موفقیت، برنامه به‌طور خودکار فراخوان ioctl با نام BLKRRPART را برای وادار کردن به پویش مجدد فضاهای نام صادر می‌کند. اگر درایور به اندازهٔ کافی جدید باشد، این کار به‌طور خودکار اندازهٔ فیزیکی بلوک را به‌روزرسانی می‌کند. در صورتی که درایور به اندازهٔ کافی جدید نباشد و اندازهٔ بلوک با این دستور تغییر کرده باشد، لازم است دستگاه خود را به روش دیگری حذف و دوباره پویش کنید تا اندازهٔ بلوک جدید قابل مشاهده باشد.

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

فرمان قالب‌بندی را برای nsid مشخص‌شده ارسال می‌کند. این گزینه می‌تواند برای بازنویسی مقدار پیش‌فرض چه برای دستگاه کاراکتری (نامشخص) یا دستگاه بلوکی (حاصل از NVME_IOCTL_ID) استفاده شود.

-l <lbaf>, --lbaf=<lbaf>

قالب LBA: این فیلد قالب LBA را برای اعمال روی رسانهٔ NVM مشخص می‌کند. این فیلد با قالب‌های LBA نشان‌داده‌شده در دستور Identify Namespace مطابقت دارد. با آرگومان --block-size تداخل دارد. مقدار پیش‌فرض 0 است.

-b <block size>, --block-size=<block size>;

اندازهٔ بلوک: این فیلد برای مشخص کردن اندازهٔ بلوک هدف جهت قالب‌بندی استفاده می‌شود. مقادیر بالقوه lbaf بررسی شده و کمترین شماره برای عملیات قالب‌بندی انتخاب خواهد شد. با آرگومان --lbaf تداخل دارد.

-s <ses>, --ses=<ses>

تنظیمات پاک‌سازی امن: این فیلد مشخص می‌کند که آیا پاک‌سازی امن باید به عنوان بخشی از قالب‌بندی انجام شود یا خیر، و همچنین نوع عملیات پاک‌سازی امن را تعیین می‌کند. پاک‌سازی روی تمام داده‌های کاربر، صرف‌نظر از مکان آن‌ها (مانند درون یک LBA در دسترس، درون حافظهٔ نهان، درون LBAهای تخصیص‌نیافته و غیره) اعمال می‌شود. مقدار پیش‌فرض 0 است.
مقدار تعریف
0 هیچ عملیات پاک‌سازی امنی درخواست نشده است
1 پاک‌سازی داده‌های کاربر: تمام داده‌های کاربر باید پاک شوند؛ محتوای داده‌های کاربر پس از پاک‌سازی نامشخص است (مثلاً ممکن است با صفر پر شود، با یک پر شود، و غیره). اگر تمام داده‌های کاربر رمزگذاری شده باشد، کنترلر ممکن است هنگام درخواست پاک‌سازی داده‌های کاربر، یک پاک‌سازی رمزنگارانه انجام دهد.
2 پاک‌سازی رمزنگارانه: تمام داده‌های کاربر باید به صورت رمزنگاری‌شده پاک شوند. این کار با حذف کلید رمزگذاری انجام می‌شود.
3–7 رزرو شده

-p <pil>, --pil=<pil>

مکان اطلاعات حفاظتی: اگر روی ‘1’ تنظیم شود و اطلاعات حفاظتی فعال باشد، اطلاعات حفاظتی به عنوان نخستین بایت‌های فراداده منتقل می‌شود. اگر روی ‘0’ تنظیم شود و اطلاعات حفاظتی فعال باشد، اطلاعات حفاظتی به عنوان آخرین بایت‌های فراداده منتقل می‌شود. مقدار پیش‌فرض 0 است.

-i <pi>, --pi=<pi>

اطلاعات حفاظتی: این فیلد مشخص می‌کند که آیا حفاظت سرتاسری از داده‌ها فعال است یا خیر، و همچنین نوع اطلاعات حفاظتی را تعیین می‌کند. مقدار پیش‌فرض 0 است.
مقدار تعریف
0 اطلاعات حفاظتی فعال نیست
1 اطلاعات حفاظتی فعال است، نوع ۱
2 اطلاعات حفاظتی فعال است، نوع ۲
3 اطلاعات حفاظتی فعال است، نوع ۳
4–7 رزرو شده

-m <ms>, --ms=<ms>

تنظیمات فراداده: اگر فراداده به عنوان بخشی از یک LBA دادهٔ گسترش‌یافته منتقل شود، این فیلد روی ‘1’ تنظیم می‌شود. اگر فراداده به عنوان بخشی از یک بافر جداگانه منتقل شود، این فیلد روی ‘0’ پاک می‌شود. فراداده ممکن است بر اساس فیلد اطلاعات حفاظتی (PI)، شامل اطلاعات حفاظتی باشد. مقدار پیش‌فرض 0 است.

-r, --reset

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

--force

فرمان را بلافاصله و بدون هشدار دربارهٔ پیامدهای آن ارسال می‌کند.

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

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

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

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

-v, --verbose

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

•قالب‌بندی دستگاه با استفاده از تمامی مقادیر پیش‌فرض:
# nvme format /dev/nvme0n1
•قالب‌بندی فضای نام ۱ با تنظیمات پاک‌سازی امن داده‌های کاربر و اطلاعات حفاظتی:
# nvme format /dev/nvme0 --namespace-id=1 --ses=1 --pi=1

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

02/16/2026 NVMe