| FSCK(8) | دستورات مدیریت سیستم | FSCK(8) |
نام (NAME)
fsck - بررسی و تعمیر فایلسیستمهای لینوکس
خلاصه دستور (SYNOPSIS)
fsck [-lsAVRTMNP] [-r [fd]] [-C [fd]] [-t fstype] [filesystem...] [--] [fs-specific-options]
توضیحات (DESCRIPTION)
دستور fsck برای بررسی سلامت و در صورت نیاز تعمیر یک یا چند فایلسیستم لینوکس استفاده میشود.
پارامتر filesystem میتواند نام یک دستگاه (مانند /dev/hdc1 یا /dev/sdb2)، یک نقطه اتصال (مانند /، /usr یا /home)، یا یک برچسب فایلسیستم یا مشخصکننده UUID (مانند UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd یا LABEL=root) باشد. بهطور معمول، برنامه fsck تلاش میکند فایلسیستمهای موجود بر روی دیسکهای فیزیکی مختلف را بهطور همروند بررسی کند تا زمان کل لازم برای بررسی همه آنها کاهش یابد.
اگر هیچ فایلسیستمی در خط فرمان مشخص نشود و گزینه -A نیز مشخص نشده باشد، fsck بهطور پیشفرض فایلسیستمهای موجود در /etc/fstab را به صورت متوالی بررسی میکند. این رفتار معادل استفاده از گزینههای -As است.
وضعیت خروج بازگرداندهشده توسط fsck حاصلجمع مقادیر شرایط زیر است:
0
1
2
4
8
16
32
128
وضعیت خروج بازگرداندهشده در هنگام بررسی چندین فایلسیستم، حاصل OR بیتی وضعیتهای خروج تکتک فایلسیستمهای بررسیشده است.
در واقعیت، fsck صرفاً یک رابط فرانتاند برای برنامههای بررسیکننده مختلف فایلسیستم (fsck.fstype) در لینوکس است. برنامه بررسیکننده خاص فایلسیستم در متغیر محیطی PATH جستجو میشود. اگر PATH تعریف نشده باشد، به مسیر /sbin رجوع میشود.
لطفاً برای جزئیات بیشتر به صفحات راهنمای بررسیکننده اختصاصی هر فایلسیستم مراجعه کنید.
گزینهها (OPTIONS)
-l
-r [fd]
/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186
رابطهای کاربری گرافیکی (GUI) میتوانند یک توصیفگر فایل fd را مشخص کنند؛ در این صورت، اطلاعات نوار پیشرفت در قالبی قابل تجزیه توسط ماشین به آن توصیفگر فایل ارسال میشود. به عنوان مثال:
/dev/sda1 0 92828 4.002804 2.677592 0.86186
-s
-t fslist
مشخصکنندههای گزینهها ممکن است در fslist جداشده با ویرگول گنجانده شوند. آنها باید در قالب opts=fs-option باشند. اگر یک مشخصکننده گزینه وجود داشته باشد، فقط فایلسیستمهایی بررسی میشوند که فیلد گزینههای اتصال آنها در /etc/fstab شامل fs-option باشد. اگر مشخصکننده گزینه دارای پیشوند عملگر نقیض باشد، فقط فایلسیستمهایی بررسی میشوند که فیلد گزینههای اتصال آنها در /etc/fstab فاقد fs-option باشد.
به عنوان مثال، اگر opts=ro در fslist ظاهر شود، تنها فایلسیستمهای فهرستشده در /etc/fstab با گزینه ro بررسی خواهند شد.
برای سازگاری با توزیعهای Mandrake که اسکریپتهای بوت آنها به تغییر غیرمجاز رابط کاربری برنامه fsck وابسته است، اگر نوع فایلسیستم loop در fslist یافت شود، به گونهای رفتار میشود که گویی opts=loop به عنوان آرگومان برای گزینه -t مشخص شده است.
بهطور معمول، نوع فایلسیستم با جستجوی filesys در فایل /etc/fstab و استفاده از مدخل متناظر آن استخراج میشود. اگر نوع فایلسیستم قابل تشخیص نباشد و تنها یک فایلسیستم به عنوان آرگومان به گزینه -t داده شده باشد، fsck از نوع فایلسیستم مشخصشده استفاده میکند. اگر این نوع در دسترس نباشد، از نوع فایلسیستم پیشفرض (در حال حاضر ext2) استفاده میشود.
-A
فایلسیستم ریشه ابتدا بررسی خواهد شد مگر اینکه گزینه -P مشخص شده باشد (به زیر مراجعه کنید). پس از آن، فایلسیستمها به ترتیبی که توسط فیلد fs_passno (فیلد ششم) در فایل /etc/fstab مشخص شده بررسی میشوند. فایلسیستمهایی با مقدار fs_passno برابر با 0 نادیده گرفته شده و اصلاً بررسی نمیشوند. فایلسیستمهای دارای مقدار fs_passno بزرگتر از صفر به ترتیب بررسی میشوند؛ فایلسیستمهایی با کمترین شماره fs_passno ابتدا بررسی میشوند. اگر چند فایلسیستم دارای شماره پاس یکسان باشند، fsck تلاش میکند آنها را بهطور موازی بررسی کند، هرچند از اجرای چندین بررسی همزمان بر روی یک دیسک فیزیکی یکسان خودداری میکند.
دستور fsck دستگاههای انباشته (مانند RAIDها، dm-crypt و ...) را به صورت موازی با هیچ دستگاه دیگری بررسی نمیکند. برای تنظیمات FSCK_FORCE_ALL_PARALLEL به بخش زیر مراجعه کنید. از فایلسیستم /sys برای تعیین وابستگیهای بین دستگاهها استفاده میشود.
از این رو، یک پیکربندی بسیار رایج در فایلهای /etc/fstab این است که مقدار fs_passno فایلسیستم ریشه برابر با 1 و برای تمام فایلسیستمهای دیگر برابر با 2 تنظیم شود. این کار به fsck اجازه میدهد تا در صورت سودمند بودن، بررسیکنندههای فایلسیستم را بهطور خودکار موازی اجرا کند. مدیران سیستم اگر به دلایلی بخواهند از بررسی موازی چند فایلسیستم جلوگیری کنند - برای مثال اگر حافظه رم سیستم کم باشد و نگرانی بابت سوآپ بیشازحد (paging) وجود داشته باشد - میتوانند از این پیکربندی استفاده نکنند.
برنامه fsck معمولاً قبل از فراخوانی بررسیکننده اختصاصی، بررسی نمیکند که آیا دستگاه واقعاً وجود دارد یا خیر. بنابراین دستگاههای ناموجود در صورت بازگرداندن خطای مهلک توسط بررسیکننده، ممکن است باعث شوند سیستم هنگام بوت وارد حالت تعمیر فایلسیستم شود. از گزینه اتصال nofail در /etc/fstab میتوان استفاده کرد تا fsck از دستگاههای ناموجود صرفنظر کند. همچنین fsck دستگاههای ناموجودی را که دارای نوع فایلسیستم ویژه auto هستند نادیده میگیرد.
-C [fd]
-M
-N
-P
-R
-T
-V
-?, --help
--version
گزینههای اختصاصی فایلسیستم (FILESYSTEM SPECIFIC OPTIONS)
گزینههایی که توسط fsck درک نمیشوند، به بررسیکننده اختصاصی فایلسیستم منتقل میشوند!
این گزینهها نباید آرگومان دریافت کنند، زیرا راهی وجود ندارد که fsck بتواند به درستی حدس بزند کدام گزینهها آرگومان میگیرند و کدام نمیگیرند.
گزینهها و آرگومانهایی که پس از -- قرار میگیرند، به عنوان گزینههای اختصاصی فایلسیستم در نظر گرفته شده و به بررسیکننده مربوطه منتقل میشوند.
لطفاً توجه داشته باشید که fsck برای انتقال گزینههای پیچیده به بررسیکنندههای اختصاصی طراحی نشده است. اگر قصد انجام کار پیچیدهای دارید، لطفاً بررسیکننده اختصاصی فایلسیستم را مستقیماً اجرا کنید. اگر گزینهها و آرگومانهای بسیار پیچیدهای را به fsck منتقل کنید و آنگونه که انتظار دارید عمل نکند، زحمت گزارش آن را به عنوان باگ نکشید. تقریباً به طور قطع در حال انجام کاری هستید که نباید با fsck انجام دهید. گزینههای مربوط به برنامههای مختلف fsck استاندارد نیستند.
متغیرهای محیطی (ENVIRONMENT)
رفتار برنامه fsck تحت تأثیر متغیرهای محیطی زیر قرار میگیرد:
FSCK_FORCE_ALL_PARALLEL
FSCK_MAX_INST
PATH
FSTAB_FILE
LIBBLKID_DEBUG=all
LIBMOUNT_DEBUG=all
فایلها (FILES)
/etc/fstab
نکات (NOTES)
در طول بوت، systemd دستور fsck -A را فراخوانی نمیکند. در عوض، فعالسازی نقاط اتصال را به صورت جداگانه و با در نظر گرفتن وابستگی به دستگاههای پشتیبان، شبکه و عوامل دیگر زمانبندی میکند. در نتیجه، fsck برای هر دستگاه به صورت جداگانه فراخوانی میشود.
نویسندگان (AUTHORS)
Theodore Ts’o <tytso@mit.edu>, Karel Zak <kzak@redhat.com>
همچنین ببینید (SEE ALSO)
fstab(5), mkfs(8), fsck.ext2(8) یا fsck.ext3(8) یا e2fsck(8), fsck.cramfs(8), fsck.jfs(8), fsck.nfs(8), fsck.minix(8), fsck.msdos(8), fsck.vfat(8), fsck.xfs(8), reiserfsck(8)
گزارش باگها (REPORTING BUGS)
برای گزارش باگها از سامانه پیگیری مشکلات https://github.com/util-linux/util-linux/issues. استفاده کنید.
در دسترس بودن (AVAILABILITY)
دستور fsck بخشی از بسته util-linux است که میتواند از آرشیو کرنل لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دریافت شود.
| مه ۲۰۲۵ | util-linux |