فایل سیستم ها مسئولیت سازماندهی نحوه ذخیره و ریکاوری دیتا را به عهده دارند. به هر شیوه ای با گذر زمان فایل سیستم ممکن است با مشکل روبه رو شود و بخش های خاصی از آن دیگر قابل دسترسی نباشند. اگر فایل سیستم این چنین ناپایداری هایی را از خود نشان داد توصیه میشود که صحت و درستی آنرا بررسی کنید.
این کار را میتوان از طریق ابزار سیستمی fsck (مخفف file system consistency check) انجام داد. این check را میتوان به صورت اتوماتیک در هنگام boot و یا به صورت دستی اجرا کرد.
در این مقاله، قصد داریم که ابزار fsck و کاربردش را مرور کنیم و به شما در رفع خطاهای Disk کمک کنیم.
چه زمانی در لینوکس از fsck استفاده کنیم
سناریو های متفاوتی وجود دارد که شما بخواهید fsck را اجرا کنید. در اینجا به چندین مثال اشاره میکنیم.
همچنین توصیه میشود مطالعه کنید.
آموزش پیدا کردن Badsector در لینوکس
آموزش Disk Defragment در لینوکس (تعمیر و Defrag پارتیشن ها و دایرکتوری ها)
آپشن های موجود برای 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 باشد داشته باشید، چه اتفاقی خواهد افتاد.
برای جلوگیری از نمایش پیغام بالا، پارتیشن را با استفاده از دستور زیر unmount کنید.
سپس fsck را با اطمینان میتوان با استفاده از دستور زیر اجرا کرد.
درک exit code های fsck
بعد از اجرا کردن fsck این دستور یک exit code برخواهد گرداند. این کدها در راهنمای fsck قابل مشاهده هستند.
رفع Error های فایل سیستم Linux
گاهی اوقات بیشتر از یک error در فایل سیستم پیدا میشود. در این چنین مواقعی fsck به صورت اتوماتیک تلاش در اصلاح خطاها میکند. این مورد را میتوان با دستور زیر انجام داد.
آپشن -y به صورت اتوماتیک به تمام درخواست های به منظور اصلاحیه error جواب yes میدهد.
مشابها شما میتوانید آنرا روی همه فایل سیستم ها (بدون root) اجرا کنید.
نحوه اجرا کردن fsck روی پارتیشن root لینوکس
در این چنین مواردی، شما ممکن است بخواهید fsck را روی پارتیشن root سیستم تان اجرا کنید. از آنجایی که شما نمیتوانید fsck را هنگامیکه پارتیشن mount است اجرا کنید، میتوان یکی از گزینه های زیر را امتحان کنید.
Force کردن fsck در طول پروسه Boot سیستم
این مورد نسبتا آسان است و تنها کاری که شما نیاز دارید انجام دهید ایجاد فایلی به نام forcefsck در پارتیشن root سیستم تان میباشد. از دستور زیر استفاده کنید.
سپس شما میتوانید به آسانی سیستم تان را reboot کنید. در طول boot بعدی fsck اجرا خواهد شد. اگر down time ضروری باشد توصیه میشود که آنرا با دقت انجام دهید از آنجایی که ممکن است inode های مورد استفاده زیادی روی سیستم داشته باشید ممکن است زمان اضافه تری برای اجرای fsck طول بکشد.
بعد از اینکه سیستم شما boot شد بررسی کنید که آیا هنوز فایل موجود است یا خیر.
اگر وجود داشته باشد شما ممکن است بخواهید که آنرا به منظور جلوگیری از اینکه fsck روی هر بوت سیستم اجرا شود پاک کنید.
اجرا کردن fsck در مد Rescue
اجرای fsck در مد rescue نیاز به مراحل بیشتری دارد ابتدا سیستم تان را برای ریبوت آماده کنید. هر گونه سرویس حیاتی مانند MySQL/MariaDB و غیره را stop کنید و سپس دستور زیر را تایپ کنید.
وارد شدن به مد Rescue در Ubuntu
در حین boot کلید shift را نگه دارید تا منوی گراب نمایش داده شود. Advanced options را انتخاب کنید.
سپس Recovery mode را انتخاب کنید.
در منوی بعدی fsck را انتخاب کنید.
از شما پرسیده میشود که آیا میخواهید فایل سیستم "/" تان دوباره mount شود. yes را انتخاب کنید.
شما باید چیزی شبیه به زیر ببینید.
سپس شما میتوانید با انتخاب Resume به boot نرمال بازگردید.
وارد شدن به مد Rescue در CentOS
در حین boot کلید shift را نگه دارید تا منوی گراب نمایش داده شود.
سپس کلید "e" را فشار دهید و همانند تصویر کلمه rescue را به خط مارک شده اضافه کنید، سپس کلیدهای Ctrl+x را به جهت اعمال تغییرات فشار دهید.
در این بخش پسورد root سیستم تان را وارد کنید که به محیط شل دسترسی پیدا کنید.
نتیجه
در این مقاله شما نحوه استفاده از fsck و بررسی روی فایل سیستم های متفاوت لینوکسی را آموزش دیدید. اگر هر سوالی درباره fsck داشتید لطفا آنرا در اینجا با ما مطرح کنید.
این کار را میتوان از طریق ابزار سیستمی fsck (مخفف file system consistency check) انجام داد. این check را میتوان به صورت اتوماتیک در هنگام boot و یا به صورت دستی اجرا کرد.
در این مقاله، قصد داریم که ابزار fsck و کاربردش را مرور کنیم و به شما در رفع خطاهای Disk کمک کنیم.
چه زمانی در لینوکس از fsck استفاده کنیم
سناریو های متفاوتی وجود دارد که شما بخواهید fsck را اجرا کنید. در اینجا به چندین مثال اشاره میکنیم.
- سیستم boot نشود.
- فایل های روی سیستم خراب شوند. (اغلب شما خطای input/output را مشاهده خواهید کرد)
- درایو متصل شده به سیستم (شامل درایو فلش / کارت های SD) درست کار نمیکند.
همچنین توصیه میشود مطالعه کنید.
آموزش پیدا کردن Badsector در لینوکس
آموزش Disk Defragment در لینوکس (تعمیر و Defrag پارتیشن ها و دایرکتوری ها)
آپشن های موجود برای 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
برای جلوگیری از نمایش پیغام بالا، پارتیشن را با استفاده از دستور زیر unmount کنید.
کد PHP:
# umount /dev/sdb1
کد PHP:
# fsck /dev/sdb1
درک 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
مشابها شما میتوانید آنرا روی همه فایل سیستم ها (بدون root) اجرا کنید.
کد PHP:
$ fsck -AR -y
نحوه اجرا کردن fsck روی پارتیشن root لینوکس
در این چنین مواردی، شما ممکن است بخواهید fsck را روی پارتیشن root سیستم تان اجرا کنید. از آنجایی که شما نمیتوانید fsck را هنگامیکه پارتیشن mount است اجرا کنید، میتوان یکی از گزینه های زیر را امتحان کنید.
- fsck را بهنگام boot سیستم force کنید.
- fsck را در مد rescue اجرا کنید.
Force کردن fsck در طول پروسه Boot سیستم
این مورد نسبتا آسان است و تنها کاری که شما نیاز دارید انجام دهید ایجاد فایلی به نام forcefsck در پارتیشن root سیستم تان میباشد. از دستور زیر استفاده کنید.
کد PHP:
# touch /forcefsck
بعد از اینکه سیستم شما boot شد بررسی کنید که آیا هنوز فایل موجود است یا خیر.
کد PHP:
# ls /forcefsck
اجرا کردن fsck در مد Rescue
اجرای fsck در مد rescue نیاز به مراحل بیشتری دارد ابتدا سیستم تان را برای ریبوت آماده کنید. هر گونه سرویس حیاتی مانند MySQL/MariaDB و غیره را stop کنید و سپس دستور زیر را تایپ کنید.
کد PHP:
# reboot
وارد شدن به مد Rescue در Ubuntu
در حین boot کلید shift را نگه دارید تا منوی گراب نمایش داده شود. Advanced options را انتخاب کنید.
سپس Recovery mode را انتخاب کنید.
در منوی بعدی fsck را انتخاب کنید.
از شما پرسیده میشود که آیا میخواهید فایل سیستم "/" تان دوباره mount شود. yes را انتخاب کنید.
شما باید چیزی شبیه به زیر ببینید.
سپس شما میتوانید با انتخاب Resume به boot نرمال بازگردید.
وارد شدن به مد Rescue در CentOS
در حین boot کلید shift را نگه دارید تا منوی گراب نمایش داده شود.
سپس کلید "e" را فشار دهید و همانند تصویر کلمه rescue را به خط مارک شده اضافه کنید، سپس کلیدهای Ctrl+x را به جهت اعمال تغییرات فشار دهید.
در این بخش پسورد root سیستم تان را وارد کنید که به محیط شل دسترسی پیدا کنید.
نتیجه
در این مقاله شما نحوه استفاده از fsck و بررسی روی فایل سیستم های متفاوت لینوکسی را آموزش دیدید. اگر هر سوالی درباره fsck داشتید لطفا آنرا در اینجا با ما مطرح کنید.
کامنت