اطلاعیه

بستن
هنوز اعلام نشده است.

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

بستن
X
  • فیلتر کردن
  • زمان
  • نمایش
پاک کردن همه
پست های جدید

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

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

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

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


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

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


    همچنین توصیه میشود مطالعه کنید.

    آموزش پیدا کردن Badsector در لینوکس



    آپشن های موجود برای 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

    0      No errors
    1      Filesystem errors corrected
    2      System should be rebooted
    4      Filesystem errors left uncorrected
    8      Operational error
    16     Usage 
    or syntax error
    32     Checking canceled by user request
    128    Shared
    -library error 


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

    گاهی اوقات بیشتر از یک error در فایل سیستم پیدا میشود. در این چنین مواقعی fsck به صورت اتوماتیک تلاش در اصلاح خطاها میکند. این مورد را میتوان با دستور زیر انجام داد.
    کد PHP:
    # fsck -y /dev/sdb 
    آپشن -y به صورت اتوماتیک به تمام درخواست های به منظور اصلاحیه error جواب yes میدهد.

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


    نحوه اجرا کردن 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 داشتید لطفا آنرا در اینجا با ما مطرح کنید.
    ویرایش توسط Habili : http://linux-zone.org/forums/member/5-habili در ساعت 11-08-2018, 10:02 PM

  • #2
    سپاس از شما بدلیل مطرح کردن این موضوع این مهم روی هارد و دیوایس های متصل به دستگاه کار می کند اگر دستگاهی دارای فلش داخلی emmc باشد چطور می شود فایل های معیوب را بررسی و رفع عیب کرد ؟

    نظر


    • amir
      amir نظر داد
      ویرایش یک نظر
      سلام. اگر هر دیوایسی به دستگاه وصل بشه و پارتیشنش دیتکت بشه رو میشه با دستور fsck یا ابزارهای دیگه بررسی کرد.

  • #3
    با سلام ممنون از اطلاعات مفیدتون .

    نظر

    پردازش ...
    X
    کانال تلگرام منطقه لینوکسی ها