MKFS.VFAT(8) دستورات مدیریت سیستم MKFS.VFAT(8)

mkfs.vfat, mkfs.fat - ساخت و قالببندی سامانه پرونده FAT/VFAT

mkfs.vfat [گزینه‌ها] دستگاه [تعداد-بلوک]

دستور mkfs.vfat برای ایجاد و قالببندی یک سامانه پرونده از نوع FAT/VFAT روی یک دستگاه ذخیرهسازی به کار میرود. دستگاه فایل ویژه‌ای مربوط به دستگاه است (مانند /dev/sdXX) یا فایل تصویری (که در صورت مشخص شدن گزینه -C نیازی به وجود قبلی آن نیست). تعداد-بلوک تعداد بلوک‌ها روی دستگاه است و اندازه هر بلوک صرف‌نظر از اندازه سکتور یا اندازه کلاستر، همیشه ۱۰۲۴ بایت است. بنابراین تعداد-بلوک اندازه سامانه پرونده را بر حسب واحد KiB مشخص می‌کند و نه بر حسب تعداد سکتورها (برخلاف تمام گزینه‌های دیگر mkfs.fat). در صورت حذف، mkfs.fat به‌طور خودکار اندازه سامانه پرونده را برای پر کردن فضای موجود انتخاب می‌کند.

دو گونه مختلف از سامانه پرونده FAT پشتیبانی می‌شود. حالت استاندارد سامانه‌های پرونده FAT12، FAT16 و FAT32 است که توسط مایکروسافت تعریف شده و به طور گسترده در دیسک‌های سخت و رسانه‌های جداشدنی مانند فلش مموری‌های USB و کارت‌های SD استفاده می‌شود. گونه دیگر، نگارش موروثی آتاری است که در Atari ST استفاده می‌شد.

در حالت Atari، اگر توسط کاربر روش دیگری تعیین نشود، mkfs.fat همیشه از ۲ سکتور در هر کلاستر استفاده می‌کند، زیرا GEMDOS مقادیر دیگر را به خوبی نمی‌پذیرد. همچنین از حداکثر تعداد سکتورهایی که GEMDOS می‌تواند مدیریت کند پیروی خواهد کرد. سامانه‌های پرونده بزرگ‌تر با افزایش اندازه سکتور منطقی مدیریت می‌شوند. یک شماره سریال سازگار با Atari برای سامانه پرونده تولید می‌شود و تنها برای سامانه‌های پرونده‌ای که دارای یکی از اندازه‌های معمول دیسکت (720k، 1.2M، 1.44M، 2.88M) باشند از FAT دوازده بیتی استفاده شده و در غیر این صورت از FAT شانزده بیتی استفاده می‌شود. این مورد را می‌توان با گزینه -F تغییر داد. برخی فیلدهای سکتور بوت مخصوص رایانه‌های شخصی (PC) نوشته نمی‌شوند و پیام بوت (گزینه -m) نادیده گرفته می‌شود.

به‌طور معمول، برای هر سامانه پرونده به جز نمونه‌های بسیار کوچک، mkfs.fat تمام ساختارهای داده را با اندازه کلاستر تراز می‌کند تا اطمینان حاصل شود که تا زمان تراز بودن پارتیشن، تمام ساختارهای داده سامانه پرونده نیز تراز خواهند بود. این گزینه ترازسازی را غیرفعال می‌کند؛ این کار ممکن است در ازای افت قابل توجه کارایی در آرایه‌های RAID، حافظه‌های فلش یا دیسک‌های سخت با سکتور بزرگ، چند کلاستر فضای ذخیره‌سازی اضافی فراهم کند.
انتخاب استفاده از گونه Atari سامانه پرونده FAT در صورتی که قبلاً فعال نشده باشد، در غیر این صورت انتخاب سامانه پرونده استاندارد FAT. اگر mkfs.fat روی لینوکس 68k Atari اجرا شود، این گزینه به‌طور پیش‌فرض انتخاب می‌شود.
موقعیت سکتور پشتیبانِ سکتور بوت را برای FAT32 مشخص می‌کند. مقدار پیش‌فرض به تعداد سکتورهای رزروشده بستگی دارد، اما معمولاً سکتور ۶ است. اگر پس از سکتور پشتیبان بوت فضای خالی وجود داشته باشد، پشتیبان سکتور اطلاعات FAT32 بعد از سکتور پشتیبان بوت (معمولاً در سکتور ۷) قرار می‌گیرد. پشتیبان باید در محدوده سکتورهای رزروشده باشد. مقدار ۰ ایجاد سکتورهای پشتیبان بوت و اطلاعات FAT32 را به‌طور کامل غیرفعال می‌کند.
بررسی دستگاه برای یافتن بلوک‌های معیوب (bad blocks) قبل از ایجاد سامانه پرونده.
فایل مشخص‌شده به عنوان دستگاه در خط فرمان را ایجاد کرده و سامانه پرونده در حال ساخت را درون آن می‌نویسد. از این گزینه می‌توان برای ایجاد سامانه پرونده جدید درون یک فایل به جای دستگاه واقعی، و برای جلوگیری از نیاز به استفاده قبلی از dd جهت ساخت فایلی با اندازه مناسب استفاده کرد. با این گزینه، مقدار تعداد-بلوک باید مشخص شود، زیرا در غیر این صورت اندازه مورد نظر سامانه پرونده مشخص نخواهد بود. فایل ایجادشده یک فایل تنک (sparse file) است که در واقع تنها حاوی نواحی فراداده (سکتور بوت، جدول‌های FAT و دایرکتوری ریشه) خواهد بود. بخش‌های داده روی دیسک ذخیره نمی‌شوند، اما فایل با این وجود اندازه صحیح را خواهد داشت. فایل حاصل را می‌توان بعداً روی دیسکت یا دستگاه دیگری کپی کرد، یا از طریق دستگاه loop سوار (mount) نمود.
شماره درایو BIOS را برای ذخیره در سکتور بوت FAT مشخص می‌کند. برای دیسک‌های سخت و رسانه‌های جداشدنی معمولاً 0x80–0xFF است (0x80 اولین دیسک سخت :C، و 0x81 دومین دیسک سخت :D و...)، برای دستگاه‌های دیسکت یا پارتیشن‌هایی که برای شبیه‌سازی دیسکت استفاده می‌شوند 0x00–0x7F است (0x00 اولین دیسکت :A، و 0x01 دومین دیسکت :B).
تعداد جدول‌های تخصیص پرونده (FAT) را در سامانه پرونده مشخص می‌کند. پیش‌فرض ۲ است.
نوع جدول‌های تخصیص پرونده مورد استفاده را مشخص می‌کند (۱۲، ۱۶ یا ۳۲ بیتی). اگر مقداری مشخص نشود، mkfs.fat به‌طور خودکار بین ۱۲، ۱۶ و ۳۲ بیتی هرکدام را که با اندازه سامانه پرونده سازگارتر باشد انتخاب می‌کند.
تعداد هدها (HEADS) و سکتورها در هر شیار (SECTORS-PER-TRACK) که هندسه دیسکِ دستگاه را مشخص می‌کنند، تعیین می‌کند. هر دو عدد در سکتور بوت FAT ذخیره می‌شوند. تعداد SECTORS-PER-TRACK همچنین برای تراز کردن تعداد کل سکتورهای FAT استفاده می‌شود. به‌طور پیش‌فرض هندسه دیسک از خود دستگاه خوانده می‌شود. در صورت عدم دسترسی، از LBA-Assist Translation و جدول ترجمه برگرفته از SD Card Part 2 File System Specification بر اساس تعداد کل سکتورهای دیسک استفاده می‌شود.
تعداد اصطلاحاً سکتورهای پنهان را جهت ذخیره در سکتور بوت FAT مشخص می‌کند: این عدد نشان‌دهنده سکتور شروع پارتیشن حاوی سامانه پرونده است. به‌طور معمول این یک آفست (بر حسب سکتور) نسبت به ابتدای دیسک است، اگرچه برای حجم‌های منطقی MBR موجود در یک پارتیشن توسعه‌یافته از نوع 0x05 (یک پارتیشن توسعه‌یافته غیر LBA)، یک ویژگی خاص در پیاده‌سازی MS-DOS از FAT ایجاب می‌کند که این مقدار نسبت به رکورد بوت گسترده (Extended Boot Record) حاوی بلافاصله پارتیشن باشد. کد بوت و سایر نرم‌افزارهایی که با حجم‌های FAT کار می‌کنند نیز ممکن است به تنظیم درست این فیلد وابسته باشند؛ با این حال اکثر پیاده‌سازی‌های مدرن FAT آن را نادیده می‌گیرند. به‌طور پیش‌فرض، اگر دستگاه یک دستگاه بلوکی پارتیشن باشد، mkfs.fat از آفست پارتیشن نسبت به شروع دیسک استفاده می‌کند. در غیر این صورت، mkfs.fat مقدار صفر را در نظر می‌گیرد. از این گزینه برای بازنویسی این رفتار استفاده کنید.
شناسه حجم سامانه پرونده جدید را تعیین می‌کند؛ VOLUME-ID یک عدد هگزادسیمال ۳۲ بیتی است (برای مثال 2e24ec82). پیش‌فرض عددی است که به زمان ساخت سامانه پرونده بستگی دارد.
نادیده گرفتن و غیرفعال کردن بررسی‌های ایمنی. به‌طور پیش‌فرض mkfs.fat از ایجاد سامانه پرونده روی دستگاهی با پارتیشن یا نگاشت مجازی خودداری می‌کند. mkfs.fat هشدار داده و اعلام می‌کند که از انجام کار خودداری می‌کند. هنگام استفاده از دیسک‌های MO این موضوع متفاوت است. روی دیسک‌های MO همیشه به پارتیشن نیازی نیست و سامانه پرونده می‌تواند مستقیماً روی کل دیسک قرار گیرد. در سایر سیستم‌عامل‌ها این مورد با عنوان قالب superfloppy شناخته می‌شود. این سوییچ mkfs.fat را وادار می‌کند تا به درستی کار کند.
فهرست بلوک‌های خراب را از FILENAME می‌خواند.
پیامی را تنظیم می‌کند که کاربر در هنگام تلاش برای بوت کردن این سامانه پرونده بدون نصب درست یک سیستم‌عامل دریافت می‌کند. حجم فایل پیام پس از تبدیل پایان‌خط‌ها به ترکیب خط‌جدید-بازگشت‌به‌سرخط و باز شدن تب‌ها، نباید از ۴۱۸ بایت بیشتر شود. اگر نام فایل یک خط تیره (-) باشد، متن از ورودی استاندارد دریافت می‌شود.
نوع رسانه را برای ذخیره در سکتور بوت FAT مشخص می‌کند. این مقدار معمولاً برای دیسک‌های سخت 0xF8 است و برای دیسکت‌ها یا پارتیشن‌های مورد استفاده برای شبیه‌سازی دیسکت 0xF0 یا مقداری از 0xF9 تا 0xFF است.
جدول MBR (جعلی) را با امضای دیسک و یک پارتیشن که از سکتور ۰ شروع می‌شود (شامل خود MBR) و کل فضای دیسک را در بر می‌گیرد پر می‌کند. این فقط برای دیسک‌های غیرقابل‌حمل مورد استفاده در سیستم‌های ویندوز مایکروسافت و تنها هنگام قالب‌بندی کل دیسک بدون پارتیشن لازم است. موقعیت امضای دیسک و جدول پارتیشن با انتهای اولین سکتور FAT (محل کد بوت) هم‌پوشانی دارد، بنابراین هیچ فضای اضافی مصرف نمی‌شود. حالت پیش‌فرض auto است که در آن mkfs.fat تنها برای دیسک‌های غیرقابل‌حمل هنگام قالب‌بندی کل دیسک بدون پارتیشن، جدول MBR را قرار می‌دهد.
نام حجم (برچسب / label) سامانه پرونده را مشخص می‌کند. طول نام حجم می‌تواند تا ۱۱ کاراکتر باشد. ارائه یک رشته خالی، رشته‌ای تنها شامل فضاهای خالی یا رشته "NO NAME" به عنوان VOLUME-NAME اثری مشابه تعیین نکردن گزینه -n دارد. حالت پیش‌فرض بدون برچسب است.
استفاده از کدپیج داس PAGE برای انکود برچسب. به‌طور پیش‌فرض از کدپیج 850 استفاده می‌شود.
حداقل تعداد مدخل‌های در دسترس در دایرکتوری ریشه را انتخاب می‌کند. پیش‌فرض ۱۱۲ یا ۲۲۴ برای دیسکت‌ها و ۵۱۲ برای دیسک‌های سخت است. توجه داشته باشید که این مقدار حداقل است و ممکن است توسط mkfs.fat به دلیل تراز ساختارها افزایش یابد. همچنین گزینه -a در mkfs.fat را ببینید.
حداقل تعداد سکتورهای رزروشده را انتخاب می‌کند. در فرمت FAT32 حداقل به ۲ سکتور رزروشده نیاز است و مقدار پیش‌فرض ۳۲ است. در غیر این صورت پیش‌فرض ۱ است (تنها سکتور بوت). توجه داشته باشید که این مقدار حداقل است و ممکن است توسط mkfs.fat به دلیل تراز ساختارها افزایش یابد. همچنین گزینه -a در mkfs.fat را ببینید.
تعداد سکتورهای دیسک در هر کلاستر را مشخص می‌کند. باید توانی از ۲ باشد، یعنی ۱، ۲، ۴، ۸، ... ۱۲۸.
تعداد بایت‌ها در هر سکتور منطقی را مشخص می‌کند. باید توانی از ۲ و بزرگ‌تر یا مساوی ۵۱۲ باشد، یعنی ۵۱۲، ۱۰۲۴، ۲۰۴۸، ۴۰۹۶، ۸۱۹۲، ۱۶۳۸۴ یا ۳۲۷۶۸. مقادیر بزرگ‌تر از ۴۰۹۶ با مشخصات سامانه پرونده FAT سازگار نیستند و ممکن است در همه‌جا کار نکنند.
اجرا با جزئیات کامل (Verbose).
سامانه پرونده را در سکتوری مشخص در فایل دستگاه می‌نویسد. این گزینه برای ایجاد سامانه پرونده در فایل ایمیج دیسک پارتیشن‌بندی‌شده بدون نیاز به راه‌اندازی دستگاه loop کاربرد دارد.
سامانه پرونده‌ای از گونه TYPE ایجاد می‌کند. مقادیر قابل قبول standard و atari هستند (با هر ترکیبی از حروف کوچک و بزرگ). برای تفاوت‌ها بخش توضیحات (DESCRIPTION) را در بالا ببینید.
نمایش خلاصه گزینه‌ها و خروج.
استفاده از مقادیر ثابت برای داده‌هایی که معمولاً به‌طور تصادفی یا بر مبنای زمان تولید می‌شوند، مانند شناسه حجم و زمان ایجاد. اجرای چندباره mkfs.fat روی یک دستگاه یکسان با این گزینه نتایج کاملاً یکسانی تولید می‌کند. هدف اصلی آن آزمایش mkfs.fat است.

دستور mkfs.fat نمی‌تواند سامانه‌های پرونده با قابلیت بوت ایجاد کند. این کار به دلایل گوناگون آن‌گونه که در نگاه نخست ممکن است تصور شود ساده نیست و پیش از این بسیار مورد بحث قرار گرفته است. mkfs.fat به‌طور ساده از آن پشتیبانی نخواهد کرد ;)

fatlabel(8), fsck.fat(8)

صفحه خانگی پروژه dosfstools در گیت‌هاب قرار دارد: صفحه پروژه در GitHub.

بسته dosfstools توسط Werner Almesberger، Roman Hodek و دیگران نوشته شده است. نگه‌دارنده‌های فعلی عبارتند از: Andreas Bombe و Pali Rohár.

مه ۲۰۲۵ system