FSCK(8) إدارة النظام FSCK(8)

الاسم

fsck - افحص وأصلح نظام ملفات لينكس

موجز

fsck [-lsAVRTMNP] [-r [fd]] [-C [fd]] [-t fstype] [نظام_ملفات...] [--] [خيارات-خاصة-بنظام-الملفات]

الوصف

يُستخدم fsck لفحص وإصلاح نظام ملفات لينكس واحد أو أكثر اختيارياً. يمكن أن يكون نظام_ملفات اسم جهاز (مثل: /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.

يرجى مراجعة صفحات الدليل الخاصة بفاحص كل نظام ملفات لمزيد من التفاصيل.

الخيارات

-l

أنشئ ملف قفل flock(2) حصري (/run/fsck/<diskname>.lock) لجهاز القرص بأكمله. يمكن استخدام هذا الخيار مع جهاز واحد فقط (وهذا يعني أن -A و -l متعارضان). يُوصى بهذا الخيار عند تشغيل عدة نسخ من fsck في نفس الوقت. يُتجاهل الخيار عند استخدامه لأجهزة متعددة أو للأقراص غير الدوارة. لا يقفل fsck الأجهزة التحتية عند تشغيله لفحص الأجهزة المتراصة (مثل MD أو DM) - هذه الميزة لم تُنفذ بعد.

-r [fd]

أبلغ عن إحصاءات معينة لكل عملية fsck عند اكتمالها. تشمل هذه الإحصاءات حالة الخروج، وأقصى حجم لمجموعة التشغيل (بالكيلوبايت)، والوقت المنقضي الكلي، ووقت المعالج للمستخدم والنظام المستخدم في تشغيل fsck. على سبيل المثال:

/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186

قد تحدد الواجهات الرسومية الأمامية واصف ملف fd، وفي هذه الحالة ستُرسل معلومات شريط التقدم إلى واصف الملف هذا بتنسيق قابل للتحليل آلياً. على سبيل المثال:

/dev/sda1 0 92828 4.002804 2.677592 0.86186

-s

نظم عمليات fsck تسلسلياً. هذه فكرة جيدة إذا كنت تفحص أنظمة ملفات متعددة وكانت الفاحصات في وضع تفاعلي. (ملاحظة: يعمل e2fsck(8) في وضع تفاعلي بشكل مبدئي. لجعل e2fsck(8) يعمل في وضع غير تفاعلي، يجب عليك تحديد الخيار -p أو -a، إذا كنت ترغب في تصحيح الأخطاء آلياً، أو الخيار -n إذا كنت لا ترغب في ذلك.)

-t fslist

يحدد نوع (أو أنواع) نظام الملفات المراد فحصها. عند تحديد العلم -A، تُفحص فقط أنظمة الملفات التي تطابق fslist. المعامل fslist هو قائمة مفصولة بفواصل لأنظمة الملفات وواصفات الخيارات. يمكن أن تُسبق جميع أنظمة الملفات في هذه القائمة المفصولة بفواصل بعامل نفي 'no' أو '!'، مما يطلب فحص أنظمة الملفات غير المدرجة في fslist فقط. إذا لم يُسبق أي من أنظمة الملفات في fslist بعامل نفي، فستُفحص فقط أنظمة الملفات المدرجة.

يمكن تضمين واصفات الخيارات في fslist المفصولة بفواصل. يجب أن تكون بالتنسيق opts=fs-option. إذا وجد واصف خيارات، فستُفحص فقط أنظمة الملفات التي تحتوي على fs-option في حقل خيارات الوصل الخاص بها في /etc/fstab. إذا سُبق واصف الخيارات بعامل نفي، فستُفحص فقط أنظمة الملفات التي لا تحتوي على fs-option في حقل خيارات الوصل في /etc/fstab.

على سبيل المثال، إذا ظهر opts=ro في fslist، فستُفحص فقط أنظمة الملفات المدرجة في /etc/fstab مع الخيار ro.

للتوافق مع توزيعات Mandrake التي تعتمد سكربتات إقلاعها على تغيير غير مصرح به في واجهة برنامج fsck، إذا وُجد نوع نظام ملفات loop في fslist، فسيُعامل كما لو كان opts=loop قد حُدد كمعامل للخيار -t.

عادةً، يُستنتج نوع نظام الملفات بالبحث عن filesys في ملف /etc/fstab واستخدام المدخل المقابل. إذا تعذر استنتاج النوع، وكان هناك نظام ملفات واحد فقط مُعطى كمعامل للخيار -t، فسيستخدم fsck نوع نظام الملفات المحدد. إذا لم يكن هذا النوع متاحًا، فسيُستخدم نوع نظام الملفات المبدئي (حالياً ext2).

-A

المرور عبر ملف /etc/fstab ومحاولة فحص جميع أنظمة الملفات في تشغيل واحد. يُستخدم هذا الخيار عادةً من ملف تهيئة النظام /etc/rc، بدلاً من أوامر متعددة لفحص نظام ملفات واحد.

يُفحص نظام ملفات الجذر أولاً ما لم يُحدد الخيار -P (انظر أدناه). بعد ذلك، تُفحص أنظمة الملفات بالترتيب المحدد في حقل fs_passno (السادس) في ملف /etc/fstab. تُتخطى أنظمة الملفات التي تحمل القيمة 0 في fs_passno ولا تُفحص على الإطلاق. أما أنظمة الملفات التي تزيد قيمة fs_passno فيها عن الصفر فتُفحص بالترتيب، مع البدء بأنظمة الملفات ذات الرقم الأدنى. وإذا وُجدت عدة أنظمة ملفات بنفس رقم المرور، فسيحاول fsck فحصها بالتوازي، مع تجنب إجراء عمليات فحص متعددة لأنظمة الملفات على نفس القرص المادي.

لا يفحص fsck الأجهزة المتراصة (RAIDs، dm-crypt، ...) بالتوازي مع أي جهاز آخر. انظر أدناه بخصوص إعداد FSCK_FORCE_ALL_PARALLEL. يُستخدم نظام ملفات /sys لتحديد التبعيات بين الأجهزة.

لذا، من الإعدادات الشائعة جداً في ملفات /etc/fstab تعيين قيمة fs_passno لنظام ملفات الجذر لتكون 1، وتعيين القيمة 2 لبقية أنظمة الملفات الأخرى. يتيح هذا لأداة fsck تشغيل فاحصات أنظمة الملفات آلياً بالتوازي إذا كان ذلك مفيداً. وقد يختار مديرو النظام عدم استخدام هذا الإعداد إذا احتاجوا لتجنب تشغيل فاحصات متعددة بالتوازي لسبب ما - على سبيل المثال، إذا كان الحاسوب المعني يعاني من نقص في الذاكرة بحيث يصبح التبديل (paging) المفرط مصدر قلق.

عادةً لا يتحقق fsck مما إذا كان الجهاز موجوداً بالفعل قبل استدعاء الفاحص الخاص بنظام الملفات. لذا، قد تتسبب الأجهزة غير الموجودة في دخول النظام إلى وضع إصلاح نظام الملفات أثناء الإقلاع إذا أرجع الفاحص خطأً فادحاً. يمكن استخدام خيار الوصل nofail في /etc/fstab لجعل fsck يتخطى الأجهزة غير الموجودة. كما يتخطى fsck الأجهزة غير الموجودة التي تملك نوع نظام ملفات خاص يسمى auto.

-C [fd]

اعرض أشرطة التقدم/الاكتمال لفاحصات أنظمة الملفات (حالياً لـ ext[234] فقط) التي تدعم ذلك. سيدير fsck فاحصات أنظمة الملفات بحيث يعرض واحد منها فقط شريط التقدم في كل مرة. قد تحدد الواجهات الرسومية واصف ملف fd، وفي هذه الحالة ستُرسل معلومات شريط التقدم إلى واصف الملف ذاك.

-M

لا تفحص أنظمة الملفات الموصولة، وأعِد حالة خروج 0 لأنظمة الملفات الموصولة.

-N

لا تنفذ، فقط اعرض ما سيجري القيام به.

-P

عند تعيين العلامة -A، افحص نظام ملفات الجذر بالتوازي مع أنظمة الملفات الأخرى. ليس هذا الإجراء الأكثر أماناً، لأنه إذا كان نظام ملفات الجذر مشكوكاً في سلامته، فقد تكون ملفات مثل البرنامج التنفيذي e2fsck(8) معطوبة! هذا الخيار متوفر أساساً لمديري النظام الذين لا يرغبون في إعادة تقسيم نظام ملفات الجذر ليكون صغيراً ومدمجاً (وهو الحل الصحيح حقاً).

-R

عند فحص جميع أنظمة الملفات باستخدام العلامة -A، تخطّ نظام ملفات الجذر. (يفيد هذا في حال وُصل نظام ملفات الجذر مسبقاً بوضعية القراءة والكتابة).

-T

لا تعرض العنوان عند بدء التشغيل.

-V

أخرج مخرجات مسهبة، بما في ذلك جميع الأوامر الخاصة بنظام الملفات التي نُفذت.

-?، --help

اعرض نص المساعدة ثم اخرج.

--version

اعرض الإصدار واخرج.

خيارات خاصة بنظام الملفات

الخيارات التي لا يفهمها fsck تُمرر إلى الفاحص الخاص بنظام الملفات!

هذه الخيارات يجب ألا تأخذ معطيات، إذ لا توجد وسيلة تمكن fsck من تخمين الخيارات التي تتطلب معطيات من التي لا تتطلبها.

تُعامل الخيارات والمعطيات التي تلي -- على أنها خيارات خاصة بنظام الملفات لتُمرر إلى الفاحص الخاص بنظام الملفات.

يرجى ملاحظة أن fsck لم يُصمم لتمرير خيارات معقدة بشكل عشوائي إلى فاحصات أنظمة الملفات. إذا كنت تقوم بأمر معقد، فيرجى تنفيذ الفاحص الخاص بنظام الملفات مباشرة. إذا مررت إلى fsck خيارات ومعطيات شديدة التعقيد ولم يعمل كما تتوقع، فلا تكلف نفسك عناء التبليغ عن علة. فمن المؤكد أنك تفعل شيئاً لا ينبغي فعله باستخدام fsck. إن خيارات أدوات fsck الخاصة بأنظمة الملفات المختلفة ليست موحدة.

البيئة

يتأثر سلوك برنامج fsck بمتغيرات البيئة التالية:

FSCK_FORCE_ALL_PARALLEL

إذا ضُبط متغير البيئة هذا، فسيحاول fsck فحص جميع أنظمة الملفات المحددة بالتوازي، بغض النظر عما إذا كانت أنظمة الملفات تظهر على نفس الجهاز أم لا. (يفيد هذا في أنظمة RAID أو أنظمة التخزين المتطورة مثل تلك التي تبيعها شركات مثل IBM أو EMC). لاحظ أن قيمة fs_passno لا تزال مستخدمة.

FSCK_MAX_INST

سيحد متغير البيئة هذا من الحد الأقصى لعدد فاحصات أنظمة الملفات التي يمكن تشغيلها في وقت واحد. يتيح هذا للإعدادات التي تحتوي على عدد كبير من الأقراص تجنب قيام fsck ببدء عدد كبير جداً من الفاحصات دفعة واحدة، مما قد يجهد المعالج وموارد الذاكرة المتاحة في النظام. إذا كانت هذه القيمة صفراً، فيمكن إطلاق عدد غير محدود من العمليات. هذا هو الوضع المبدئي حالياً، ولكن قد تحاول النسخ المستقبلية من fsck تحديد عدد فحوصات نظام الملفات التي يمكن تشغيلها آلياً بناءً على جمع بيانات المحاسبة من نظام التشغيل.

PATH

يُستخدم متغير البيئة PATH للعثور على فاحصات أنظمة الملفات.

FSTAB_FILE

يتيح متغير البيئة هذا لمدير النظام تجاوز الموقع القياسي لملف /etc/fstab. كما أنه مفيد للمطورين الذين يختبرون fsck.

LIBBLKID_DEBUG=all

يُفعّل مخرجات تصحيح أخطاء libblkid.

LIBMOUNT_DEBUG=all

يُفعل مخرج تنقِيح libmount.

الملفات

/etc/fstab

ملاحظات

أثناء الإقلاع، لا يستدعي systemd الأمر fsck -A. بدلاً من ذلك، يقوم بجدولة تفعيل عمليات الوصل بشكل فردي، مع مراعاة التبعيات على الأجهزة المساندة، والشبكات، وعوامل أخرى. وبناءً عليه، يُستدعى fsck بشكل فردي لكل جهاز.

المؤلفين

Theodore Ts’o <tytso@mit.edu>،‏ Karel Zak <kzak@redhat.com>

انظر أيضاً

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)

التبليغ عن الأخطاء

لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.

التوفر

الأمر fsck جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1