نتورک کار

به راحتی متخصص شبکه شوید

سبد خرید 0

نحوه استفاده از دستور fsck برای رفع Error های فایل سیستم در لینوکس

نحوه استفاده از دستور fsck برای رفع Error های فایل سیستم در لینوکس

فایل سیستم ها مسئولیت سازماندهی نحوه ذخیره و ریکاوری دیتا را به عهده دارند. به هر شیوه ای با گذر زمان فایل سیستم ممکن است با مشکل روبه رو شود و بخش های خاصی از آن دیگر قابل دسترسی نباشند. اگر فایل سیستم این چنین ناپایداری هایی را از خود نشان داد توصیه میشود که صحت و درستی آنرا بررسی کنید.

این کار را میتوان از طریق ابزار سیستمی fsck (مخفف file system consistency check)‌ انجام داد. این check را میتوان به صورت اتوماتیک در هنگام boot و یا به صورت دستی اجرا کرد.

در این مقاله، قصد داریم که ابزار fsck و کاربردش را مرور کنیم و به شما در رفع خطاهای Disk کمک کنیم.

چه زمانی در لینوکس از fsck استفاده کنیم

سناریو های متفاوتی وجود دارد که شما بخواهید fsck را اجرا کنید. در اینجا به چندین مثال اشاره میکنیم.

  • سیستم boot نشود.
  • فایل های روی سیستم خراب شوند. (اغلب شما خطای input/output را مشاهده خواهید کرد)
  • درایو متصل شده به سیستم (شامل درایو فلش / کارت های SD) درست کار نمیکند.

آپشن های موجود برای fsck

برای اجرای دستور fsck نیاز به دسترسی سوپر یوزر یا root دارید. شما میتوانید آنرا با آپشن های متفاوتی استفاده کنید. کاربرد آنها به کیس خاص شما بستگی دارد. در زیر شما یکسری آپشن های مهمتر را مشاهده خواهید کرد.

-A : برای بررسی همه فایل سیستم ها مورد استفاده قرار میگیرد. لیست مورد نظر از مسیر /etc/fstab دریافت میشود.
-C : نمایش نوار پیشرفت دستور
-l : دیوایس را برای گارانتی کردن این که هیچ برنامه دیگری برای استفاده از پارتیشن در طول check تلاش نکند، block میکند.
-M : فایل سیستم های mount شده را چک نمیکند.
-N : تنها عملیاتی که قرار است انجام شود را نمایش میدهد – تغییرات واقعی اتفاق نمی افتد.
-P : درصورتی که بخواهید فایل سیستم ها را به صورت موازی شامل root چک کنید.
-R : فایل سیستم root را چک نمیکند. این گزینه تنها در صورت استفاده از -A مفید است.
-r : آمار مربوط به هر دیوایس را که باید چک شود فراهم میاورد.
-T : عنوان (title) را نمایش نمیدهد.
-t : انواع فایل سیستمی که باید چک شود را به صورت گسترده مشخص میکند که لیستی هستند که با کاما از هم جدا شده اند.
-V : با استفاده از این آپشن میتوان توضیحاتی درباره مواردی که انجام میشود فراهم کرد.

نحوه اجرا کردن fsck برای رفع خطاهای فایل سیستم لینوکس

به منظور اجرا کردن fsck شما نیاز خواهید داشت، مطمئن شوید پارتیشنی که قصد بررسی آنرا دارید mount نباشد. به این منظور من از درایو دومم /dev/sdb که در /mnt مانت شده استفاده خواهم کرد.

در زیر مشاهده میکنید که اگر تلاش برای اجرا کردن fsck روی پارتیشنی که mount باشد داشته باشید، چه اتفاقی خواهد افتاد.

کد PHP:

# fsck /dev/sdb1  

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Run-fsck-on-Mounted-Partition-1.png مشاهده: 1 حجم: 19.8 کیلو بایت

برای جلوگیری از نمایش پیغام بالا، پارتیشن را با استفاده از دستور زیر unmount کنید.

کد PHP:

# umount /dev/sdb1  

سپس fsck را با اطمینان میتوان با استفاده از دستور زیر اجرا کرد.

کد PHP:

# fsck /dev/sdb1  

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Run-fsck-on-Linux-Partition-2.png مشاهده: 1 حجم: 25.4 کیلو بایت

درک exit code های fsck

بعد از اجرا کردن fsck این دستور یک exit code برخواهد گرداند. این کدها در راهنمای fsck قابل مشاهده هستند.

کد PHP:

# man fsck

۰      No errors
۱      Filesystem errors corrected
۲      System should be rebooted
۴      Filesystem errors left uncorrected
۸      Operational error
۱۶     Usage or syntax error
۳۲     Checking canceled by user request
۱۲۸    Shared-library error

رفع Error های فایل سیستم Linux

گاهی اوقات بیشتر از یک error در فایل سیستم پیدا میشود. در این چنین مواقعی fsck به صورت اتوماتیک تلاش در اصلاح خطاها میکند. این مورد را میتوان با دستور زیر انجام داد.

کد PHP:

# fsck -y /dev/sdb  

آپشن -y به صورت اتوماتیک به تمام درخواست های به منظور اصلاحیه error جواب yes میدهد.

مشابها شما میتوانید آنرا روی همه فایل سیستم ها (بدون root) اجرا کنید.

کد PHP:

$ fsck -AR -y  

نحوه اجرا کردن fsck روی پارتیشن root لینوکس

در این چنین مواردی، شما ممکن است بخواهید fsck را روی پارتیشن root سیستم تان اجرا کنید. از آنجایی که شما نمیتوانید fsck را هنگامیکه پارتیشن mount است اجرا کنید، میتوان یکی از گزینه های زیر را امتحان کنید.

  • fsck را بهنگام boot سیستم force کنید.
  • fsck را در مد rescue اجرا کنید.

ما هر دو روش را در اینجا تست میکنیم.

Force کردن fsck در طول پروسه Boot سیستم

این مورد نسبتا آسان است و تنها کاری که شما نیاز دارید انجام دهید ایجاد فایلی به نام forcefsck در پارتیشن root سیستم تان میباشد. از دستور زیر استفاده کنید.

کد PHP:

# touch /forcefsck  

سپس شما میتوانید به آسانی سیستم تان را reboot کنید. در طول boot بعدی fsck اجرا خواهد شد. اگر down time ضروری باشد توصیه میشود که آنرا با دقت انجام دهید از آنجایی که ممکن است inode های مورد استفاده زیادی روی سیستم داشته باشید ممکن است زمان اضافه تری برای اجرای fsck طول بکشد.

بعد از اینکه سیستم شما boot شد بررسی کنید که آیا هنوز فایل موجود است یا خیر.

کد PHP:

# ls /forcefsck  

اگر وجود داشته باشد شما ممکن است بخواهید که آنرا به منظور جلوگیری از اینکه fsck روی هر بوت سیستم اجرا شود پاک کنید.

اجرا کردن fsck در مد Rescue

اجرای fsck در مد rescue نیاز به مراحل بیشتری دارد ابتدا سیستم تان را برای ریبوت آماده کنید. هر گونه سرویس حیاتی مانند MySQL/MariaDB و غیره را stop کنید و سپس دستور زیر را تایپ کنید.

کد PHP:

# reboot  

وارد شدن به مد Rescue در Ubuntu

در حین boot کلید shift را نگه دارید تا منوی گراب نمایش داده شود. Advanced options را انتخاب کنید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Select-Linux-Recovery-Mode-3.png مشاهده: 1 حجم: 4.8 کیلو بایت

سپس Recovery mode را انتخاب کنید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Select-Linux-Recovery-Mode-3-1.png مشاهده: 1 حجم: 7.1 کیلو بایت

در منوی بعدی fsck را انتخاب کنید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Select-fsck-Utility-4.png مشاهده: 1 حجم: 5.7 کیلو بایت

از شما پرسیده میشود که آیا میخواهید فایل سیستم “/” تان دوباره mount شود. yes را انتخاب کنید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Confirm-Root-Filesystem-5.png مشاهده: 1 حجم: 4.0 کیلو بایت

شما باید چیزی شبیه به زیر ببینید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Running-fsck-Filesystem-Check-6.png مشاهده: 1 حجم: 5.9 کیلو بایت

سپس شما میتوانید با انتخاب Resume به boot نرمال بازگردید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Select-Normal-Boot-7.png مشاهده: 1 حجم: 5.7 کیلو بایت
برای دیدن سایز بزرگ روی عکس کلیک کنید نام: Select-Normal-Boot-7-1.png مشاهده: 1 حجم: 5.3 کیلو بایت

وارد شدن به مد Rescue در CentOS

در حین boot کلید shift را نگه دارید تا منوی گراب نمایش داده شود.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: run-fsck-in-rescue-mode-centos-7.png مشاهده: 1 حجم: 4.9 کیلو بایت

سپس کلید “e” را فشار دهید و همانند تصویر کلمه rescue را به خط مارک شده اضافه کنید، سپس کلیدهای Ctrl+x را به جهت اعمال تغییرات فشار دهید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: run-fsck-in-rescue-mode-centos-7-1.png مشاهده: 1 حجم: 11.7 کیلو بایت

در این بخش پسورد root سیستم تان را وارد کنید که به محیط شل دسترسی پیدا کنید.

برای دیدن سایز بزرگ روی عکس کلیک کنید نام: run-fsck-in-rescue-mode-centos-7-2.png مشاهده: 1 حجم: 12.7 کیلو بایت

نتیجه

در این مقاله شما نحوه استفاده از fsck و بررسی روی فایل سیستم های متفاوت لینوکسی را آموزش دیدید. اگر هر سوالی درباره fsck داشتید لطفا آنرا در اینجا با ما مطرح کنید.

 

 

با نتورک کار همراه باشید

جدیدترین مطالب آموزشی را در کانال تلگرام نتورک کار دنبال کنید

 

 

مهدی سلیمانی

مطالب مرتبط

دیدگاه ها

دیدگاه کاربران انتشار یافته : ۰ - در انتظار بررسی :
    • دیدگاه ارسال شده توسط شما ، پس از تایید توسط مدیران سایت منتشر خواهد شد.
    • دیدگاهی که به غیر از زبان فارسی یا غیر مرتبط با مطلب باشد منتشر نخواهد شد.