DOSFSCK(8) دستورات مدیریت سیستم DOSFSCK(8)

dosfsck, fsck.fat - بررسی و تعمیر فایل‌سیستم‌های MS-DOS FAT

dosfsck [گزینه‌ها] دستگاه

دستور dosfsck صحت ساختار فایل‌سیستم‌های FAT (مانند FAT12, FAT16, FAT32) را بررسی کرده و خطاهای جدول تخصیص فایل را برطرف می‌نماید.

مشکلات زیر در فایل‌سیستم می‌توانند برطرف شوند (به همین ترتیب):

  • جدول FAT حاوی شماره خوشه‌های نامعتبر است. خوشه به EOF (پایان فایل) تغییر می‌یابد.
  • زنجیره خوشه‌های فایل شامل یک حلقه است. حلقه شکسته می‌شود.
  • خوشه‌های خراب (خطاهای خواندن). خوشه‌ها به عنوان خراب علامت‌گذاری شده و از فایل‌های مالک آن‌ها جدا می‌شوند. این بررسی اختیاری است.
  • دایرکتوری‌هایی با تعداد زیادی ورودی خراب (احتمالاً آسیب‌دیده). دایرکتوری می‌تواند حذف شود.
  • فایل‌های . و .. که دایرکتوری نیستند. آن‌ها می‌توانند حذف یا تغییر نام داده شوند.
  • دایرکتوری‌های . و .. در دایرکتوری ریشه. آن‌ها حذف می‌شوند.
  • نام‌های فایل خراب یا نامعتبر. می‌توانند تغییر نام داده شوند.
  • ورودی‌های تکراری در دایرکتوری. می‌توانند حذف یا تغییر نام داده شوند.
  • دایرکتوری‌هایی با فیلد اندازه غیرصفر. اندازه آن‌ها روی صفر تنظیم می‌شود.
  • دایرکتوری . به دایرکتوری والد اشاره نمی‌کند. اشاره‌گر آغازین تنظیم می‌شود.
  • دایرکتوری .. به والدِ دایرکتوری والد اشاره نمی‌کند. اشاره‌گر آغازین تنظیم می‌شود.
  • موارد . و .. دو ورودی نخست در یک دایرکتوری غیرریشه نیستند. این ورودی‌ها ایجاد شده و در صورت نیاز موقعیت‌های اشغال‌شده جابه‌جا می‌شوند.
  • شماره خوشه آغازین یک فایل نامعتبر است. فایل کوتاه (Truncate) می‌شود.
  • فایل شامل خوشه‌های خراب یا آزاد است. فایل کوتاه می‌شود.
  • زنجیره خوشه‌های فایل طولانی‌تر از مقدار مشخص‌شده در فیلدهای اندازه است. فایل کوتاه می‌شود.
  • دو یا چند فایل در خوشه(های) یکسانی مشترک هستند. همه فایل‌ها به جز یکی کوتاه می‌شوند. اگر فایلی که کوتاه می‌شود یک دایرکتوری باشد که قبلاً خوانده شده است، بررسی فایل‌سیستم پس از کوتاه‌سازی مجدداً آغاز می‌گردد.
  • زنجیره خوشه‌های فایل کوتاه‌تر از مقدار مشخص‌شده در فیلدهای اندازه است. فایل کوتاه می‌شود.
  • برچسب نام حجم در دایرکتوری ریشه یا برچسب در سکتور راه‌انداز نامعتبر است. برچسب‌های نامعتبر حذف می‌شوند.
  • برچسب نام حجم در دایرکتوری ریشه و برچسب در سکتور راه‌انداز متفاوت هستند. برچسب نام حجم از دایرکتوری ریشه در سکتور راه‌انداز کپی می‌شود.
  • خوشه‌ها به عنوان استفاده‌شده علامت‌گذاری شده‌اند اما به هیچ فایلی تعلق ندارند. آن‌ها به عنوان آزاد علامت‌گذاری می‌شوند.

علاوه بر این، مشکلات زیر شناسایی می‌شوند، اما تعمیر نمی‌گردند:

•
پارامترهای نامعتبر در سکتور راه‌انداز (Boot sector)

هنگامی که dosfsck یک فایل‌سیستم را بررسی می‌کند، تمام تغییرات را در حافظه جمع‌آوری کرده و تنها پس از پایان همه بررسی‌ها آن‌ها را اعمال می‌کند. این رفتار را می‌توان با استفاده از گزینه -w غیرفعال کرد.

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

تفاوت‌های جزئی در قالب Atari وجود دارد: برخی فیلدهای سکتور راه‌انداز اندکی متفاوت تفسیر می‌شوند و ورودی‌های ویژه FAT برای پایان فایل و خوشه‌های خراب می‌توانند متفاوت باشند. در MS-DOS مقدار 0xfff8 برای پایان فایل (EOF) استفاده می‌شود و Atari به طور پیش‌فرض 0xffff را به کار می‌برد، اما هر دو سیستم تمامی مقادیر از 0xfff8–0xffff را به عنوان پایان فایل شناسایی می‌کنند. سیستم‌عامل MS-DOS تنها از 0xfff7 برای خوشه‌های خراب استفاده می‌کند، در حالی که در Atari مقادیر 0xfff0–0xfff7 برای این منظور هستند (اما مقدار استاندارد همچنان 0xfff7 است).

تعمیر خودکار فایل‌سیستم. نیازی به دخالت کاربر نیست. هر زمان که بیش از یک روش برای حل یک مشکل وجود داشته باشد، رویکردی که کمترین آسیب را به همراه دارد به کار گرفته می‌شود.
انتخاب استفاده از گونه آتاری فایل‌سیستم FAT در صورتی که هنوز فعال نباشد؛ در غیر این صورت فایل‌سیستم استاندارد FAT انتخاب می‌شود. چنانچه mkfs.fat بر روی 68k Atari Linux اجرا شود، این گزینه به صورت پیش‌فرض فعال است.
انجام بررسی فقط‌خواندنی سکتور راه‌انداز (Boot sector).
استفاده از صفحه کد داس PAGE برای رمزگشایی نام‌های کوتاه فایل. به طور پیش‌فرض از صفحه کد 850 استفاده می‌شود.
حذف فایل مشخص‌شده. اگر بیش از یک فایل با این نام وجود داشته باشد، نخستین فایل حذف می‌شود. این گزینه می‌تواند بیش از یک بار مشخص شود.
بازیابی زنجیره خوشه‌های استفاده‌نشده و ذخیره آن‌ها در قالب فایل. به طور پیش‌فرض، خوشه‌های استفاده‌نشده به فضای آزاد دیسک اضافه می‌شوند مگر در حالت خودکار (-a).
مشخص کردن شماره جدول FAT با مقدار NUM جهت دسترسی به فایل‌سیستم. به طور پیش‌فرض مقدار 0 در نظر گرفته می‌شود و سپس نخستین جدول FAT آسیب‌ندیده انتخاب می‌گردد. آسیب‌ندیده بدین معناست که جدول FAT دارای خوشه نخست معتبر است. اگر از مقدار پیش‌فرض 0 استفاده شود و تمامی جداول FAT آسیب دیده باشند، dosfsck متوقف شده و تلاشی برای تعمیر فایل‌سیستم FAT انجام نمی‌دهد. اگر مقدار غیرصفر NUM تعیین شود، dosfsck از جدول FAT شماره NUM برای تعمیر فایل‌سیستم FAT استفاده خواهد کرد. اگر جدول FAT شماره NUM دارای خوشه نخست خراب باشد، dosfsck آن را تعمیر می‌کند. در هر حال، اگر فایل‌سیستم FAT جداول FAT بیشتری داشته باشد، محتوای تعمیرشده جدول انتخابی به جداول دیگر FAT رونویسی می‌شود. برای تعمیر خوشه نخست خراب، فراخوانی dosfsck با مقدار غیرصفر NUM الزامی است.
فهرست کردن نام مسیر فایل‌های در حال پردازش.
حالت بدون عملیات: بررسی غیرتعاملی خطاها، بدون نوشتن هیچ داده‌ای در فایل‌سیستم.
مشابه با -a، جهت سازگاری با سایر نسخه‌های *fsck.
تعمیر تعاملی فایل‌سیستم. هر زمان که بیش از یک رویکرد برای رفع یک ناهماهنگی وجود داشته باشد، از کاربر نظرخواهی می‌شود. این حالت پیش‌فرض است و این گزینه صرفاً برای سازگاری رو به عقب حفظ شده است.
نام‌های کوتاه فایل (8.3) که در میان خود دارای فاصله (Space) هستند را نامعتبر در نظر می‌گیرد، همان‌طور که در نگارش‌های پیشین این برنامه مرسوم بود. اگرچه چنین نام‌هایی در مشخصات FAT ممنوع نیستند و ابزارهای بررسی فایل‌سیستم مایکروسافت هرگز آن‌ها را خطا در نظر نمی‌گرفتند، اما بسیاری از برنامه‌های DOS قادر به کار با فایل‌هایی با چنین نام‌هایی نیستند. استفاده از این گزینه می‌تواند دسترسی به آن‌ها را برای این برنامه‌ها فراهم کند.
نام‌های کوتاه فایلی که با فاصله آغاز می‌شوند فارغ از تنظیمات این گزینه، نامعتبر تلقی می‌گردند.
نگارش‌های پیشین این برنامه به طور استثنایی با EA DATA. SF و WP ROOT. SF به عنوان نام‌های کوتاه معتبر رفتار می‌کردند؛ استفاده از این گزینه آن استثنا را حفظ نخواهد کرد.
علامت‌گذاری خوشه‌های غیرقابل‌خواندن به عنوان خراب (Bad).
تلاش برای بازگردانی فایل حذف‌شده (Undelete) مشخص‌شده. دستور dosfsck تلاش می‌کند زنجیره‌ای از خوشه‌های پیوسته تخصیص‌نیافته را با شروع از خوشه آغازین فایل حذف‌شده تخصیص دهد. این گزینه می‌تواند بیش از یک بار مشخص شود.
برچسب‌های حجم و راه‌انداز حاوی حروف کوچک را نامعتبر دانسته و تنها نویسه‌های بزرگ را مجاز می‌شمارد. چنین برچسب‌هایی بر طبق مشخصات فنی FAT ممنوع هستند، اما به طور گسترده توسط ابزارهای لینوکس استفاده می‌شوند. علاوه بر این، سیستم‌های MS-DOS و Windows مشکلی در خواندن آن‌ها ندارند. از این رو، برچسب‌های حجم و راه‌انداز دارای حروف کوچک به صورت پیش‌فرض مجاز شناخته می‌شوند.
حالت پرگو (Verbose). خروجی حاوی جزئیات بیشتری تولید می‌کند.
انجام یک مرحله بازبینی و اعتبارسنجی مجدد (Verification pass). بررسی فایل‌سیستم پس از اجرای اول دوباره تکرار می‌شود. مرحله دوم هرگز نباید خطای قابل تعمیری را گزارش کند. این مرحله ممکن است به طور قابل توجهی بیشتر از مرحله نخست به طول بینجامد، زیرا اجرای اول ممکن است فهرست بلندی از تغییرات ایجاد کرده باشد که باید برای هر بار خواندن از دیسک بررسی شوند.
ایجاد فایل‌سیستم از گونه TYPE. مقادیر قابل قبول عبارتند از standard و atari (با هر ترکیبی از حروف کوچک و بزرگ). برای مشاهده تفاوت‌ها به بخش «توضیحات» در بالا مراجعه فرمایید.
نوشتن فوری تغییرات بر روی دیسک.
مشابه با -a (تعمیر خودکار فایل‌سیستم) جهت سازگاری با سایر ابزارهای fsck.
نمایش پیام راهنما در خصوص شیوه استفاده و گزینه‌ها، سپس خروج.

0
هیچ خطای قابل بازیابی شناسایی نشد.
1
خطاهای قابل بازیابی شناسایی شدند یا dosfsck یک ناهماهنگی داخلی پیدا کرده است.
2
خطای نحوه استفاده. دستور dosfsck به فایل‌سیستم دسترسی پیدا نکرد.

هنگام بازیابی داده‌ها از یک فایل‌سیستم آسیب‌دیده، dosfsck داده‌های نجات‌یافته را در فایل‌هایی با نام fsckNNNN.rec در دایرکتوری سطح بالای فایل‌سیستم ذخیره می‌کند.

  • دایرکتوری‌های کاملاً خالی را حذف نمی‌کند.
  • باید پیام‌های تشخیصی بیشتری ارائه دهد.
  • بازیابی فایل‌های حذف‌شده باید از الگوریتم پیشرفته‌تری استفاده کند.

fatlabel(8), fsck.fat(8), mkfs.fat(8)

پایگاه اصلی پروژه dosfstools صفحه گیت‌هاب آن است: صفحه پروژه در GitHub

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

مه ۲۰۲۵ system