دستور fsck در لینوکس برای رفع ارورهای فایل سیستم
هدف دستور fsck در لینوکس، بررسی و کشف خطاهای مرتبط با فایل سیستم های دیسک است. در واقع، ارورهایی که به خاطر سناریوهای مختلفی مثل بوت نشدن فایل سیستم، معیوب بودن فایل های سیستمی و عدم کارکرد درست درایورهای متصل شده به سیستم اتفاق می افتند، به کمک ابزار fsck قابل شناسایی و حل هستند.
ابزار fsck، این امکان را به کاربران لینوکس می دهد که ناسازگاری های مربوط به فایل سیستم را بررسی و تعمیر کنند و از مشکلات جدی تری مثل عدم دسترسی به داده ها، خرابی فایل ها، بوت نشدن سیستم و افت سرعت/عملکرد سیستم جلوگیری کند.
پیش نیازهای دستور fsck در لینوکس
- سیستم یا سرور مجازی لینوکس
- دسترسی به ترمینال
- دسترسی به یک کاربر با امتیازات روت یا sudo
جهت خرید سرور مجازی لینوکس با امکانات و عملکرد فوق العاده می توانید به آسام سرور اعتماد کنید.
نحوه نصب fsck در توزیع های لینوکس
ابزار fsck به طور پیش فرض در اکثر توزیع های لینوکس نصب است ولی اگر به هر دلیلی، موقع اجرای این ابزار متوجه شدید که سیستم لینوکس شما مجهز به این ابزار نیست، می توانید دستور نصب fsck مناسب توزیع لینوکس خود را اجرا کنید:
توزیع های مبتنی بر دبیان مثل اوبونتو
sudo apt-get update
sudo apt-get install util-linux
توزیع های مبتنی بر Red Hat مثل Centos و فدورا
sudo yum install util-linux
یا
sudo dnf install util-linux
توزیع های مبتنی بر آرچ لینوکس
sudo pacman -S util-linux
بعد از اینکه دستور نصب fsck را اجرا کردید، می توانید از دستور زیر برای اطمینان از نصب این ابزار کمک بگیرید:
fsck --version
نمایش نسخه ابزار fsck در خروجی، نشانه نصب موفقیت آمیز این ابزار است.
سینتکس و آپشن های دستور fsck در لینوکس
سینتکس اصلی و پایه دستور fsck به صورت زیر است:
fsck <options> <filesystem>
در این سینتکس، filesystem می تواند یک دستگاه، پارتیشن، نقطه مانت یا هر هیچ دیگری باشد که قصد خطایابی آن را دارید. اما این option ها هستند که تعیین کننده نحوه رفتار دستور fsck هستند.
آپشن های دستور fsck
آپشن | کاربرد |
A- | بررسی تمام فایل سیستم ها به صورت یکجا |
C- | نمایش نوار پیشرفت پروسه خطایابی |
F- | بررسی اجباری فایل سیستم موردنظر (حتی در صورت تمیز بودن) |
l- | قفل دستگاه موردنظر برای عدم استفاده برنامه ها از آن در حین پروسه بررسی خطاها |
M- | عدم بررسی فایل سیستم های مانت شده |
N- | بررسی و نمایش خطاها بدون انجام هیچ اقدام خاص (به اصطلاح، اجرای خشک) |
P- | بررسی فایل سیستم ها به صورت موازی |
R- | عدم بررسی فایل سیستم روت (موقع بررسی تمام فایل سیستم ها با آپشن A) |
r- | ارائه آمار مربوط به هر دستگاه بررسی شده |
T- | عدم نمایش عنوان |
t- | تعیین نوع فایل سیستم های موردنظر برای بررسی توسط fsck |
V- | ارائه یک توضیح مختصر در مورد پروسه بررسی خطاها |
y- | تعمیر خودکار خطاها در حین پروسه بررسی فایل سیستم |
بررسی کد های خروجی ابزار fsck
این دستور با ارائه یک سری کدهای معنی دار، اطلاعاتی را در مورد وضعیت دیسک ارائه می دهد که جدول زیر چند نمونه از این کدها را شامل می شود:
کد | معنی |
0 | هیچ خطایی یافت نشد. سیستم در وضعیت خوبی قرار دارد. |
1 | خطاهای فایل سیستم برطرف شدند. اکنون، سیستم در وضعیت خوبی قرار دارد. |
2 | برای اینکه فایل سیستم مانت شده به درستی بررسی شود، باید سیستم خود را ریبوت کنید. |
4 | خطاهای فایل سیستم شناسایی شدند ولی تصحیح نشدند. |
8 | خطای عملیاتی رخ داده است که می تواند از خطای سخت افزار یا سینتکس اشتباه ناشی باشد. |
16 | خطای سینتکسی |
32 | لغو عملیات بررسی به خاطر درخواست کاربر |
128 | خطای کتابخانه اشتراکی |
مثال های کاربردی از دستور fsck لینوکس
حالا که با سینتکس و آپشن های این دستور لینوکسی آشنا شدید، وقت آن است که کاربردهای مختلف آن را با استفاده از مثال ها بررسی کنیم تا برایتان قابل درک تر باشند.
ابتدا قبل از هر کاری بهتر است لیست پارتیشن ها و دیسک های مانت شده را بررسی کنید تا بتوانید استفاده درست تری از دستور fsck داشته باشید.
قدم اول) مشاهده لیست دیسک ها و پارتیشن هاسی فایل سیستم
برای این کار می توانید از دستور زیر استفاده کنید:
df -h
حالا برای این پارتیشن های مربوط به هر کدام از دیسک ها را ببینید، کافیست اسم دیسک را در دستور زیر لحاظ کنید:
sudo parted /dev/sda 'print'
قدم دوم) unmoumt کردن پارتیشن یا دستگاه موردنظر
fsck قادر به بررسی دیسک ها و پارتیشن های مانت شده نیست و برای اینکه بتوانید از fsck برای اسکن آنها استفاده کنید، ابتدا باید آن را unmount کنید:
sudo umount /dev/sdX
بعد از اینکه پروسه بررسی و تعمیر پارتیشن موردنظر تکمیل شد، با اجرای دستور mount، مجدداً آن را مانت کنید.
حالا دیگ وقت بررسی مثال های کاربردی مربوط به fsck است.
بررسی وضعیت تمام فایل سیستم ها به صورت همزمان و تعمیر خطاها
sudo fsck -A
* برای اینکه هر بار بعد از اجرای دستور fsck نیازی به وارد کردن y جهت تایید پروسه تعمیر نباشد، می توانید آن را در خود دستور لحاظ کنید:
sudo fsck -A -y
اگر می خواهید از بررسی فایل سیستم روت / توسط ابزار fsck جلوگیری کنید، کافیست آپشن R را به دستور بالا اضافه کنید:
sudo fsck -AR -y
بررسی و تعمیر خطاهای یک یا چند فایل سیستم خاص
sudo fsck /dev/sdb -y
sudo fsck /dev/sda2 /dev/sdb1 -y
بررسی خطای فایل سیستم موردنظر بدون اجرای عملیات تعمیر
sudo fsck -n /dev/sdb1
بررسی و تعمیر نوع خاصی از فایل سیستم ها
* برای اطلاع از نوع فایل سیستم های لینوکس خود می توانید از دستور زیر استفاده کنید:
findmnt
حالا اگر نوع خاصی از پارتیشن ها یا دستگاه ها را در نظر گرفته اید و می خواهید آنها را با استفاده از دستور fsck در لینوکس بررسی و تعمیر کنید، کافیست نوع آن را همراه آپشن t در دستور زیر لحاظ کنید:
sudo fsck -AR -t ext4 -y
بررسی و تعمیر خطاهای تمام فایل سیستم ها به جز نوع فایل سیستم موردنظر
sudo fsck -AR -t noext4 -y
همراه شدن آپشن t با no (پیشوند فایل سیستم) باعث می شود که دستور fsck تمام فایل سیستم ها به جز فایل سیستم هایی که از نوع ext4 هستند را بررسی و تعمیر کند.
نمایش نوار پیشرفت از پروسه بررسی خطاهای فایل سیستم
sudo fsck -C /dev/sdb -y
بررسی اجباری فایل سیستم موردنظر توسط fsck
سبک کار fsck به این صورت است که به طور خودکار فایل سیستم های تمیز را بدون بررسی رد می کند. حالا اگر می خواهید کاری کنید که fsck به صورت اجباری، یک دستگاه یا پارتیشن تمیز را بررسی کند، کافیست آپشن f را به آن اضافه کنید:
sudo fsck -f /dev/sdb -y
عدم بررسی فایل سیستم های مانت/نصب شده
sudo fsck -M /dev/sdb -y
اگر پارتیشن یا دستگاهی که در دستور لحاظ کردید، به یک دایرکتوری خاص فایل سیستم مانت شده باشد، آپشن M از بررسی آن خودداری می کند.
نمایش خروجی fsck به صورت Verbose
sudo fsck -v /dev/sdb -y
استفاده از این آپشن باعث می شود که جزئیات بیشتری در مورد عملیات بررسی و تعمیر خطاها توسط fsck ارائه شود.
عدم نمایش عنوان دستور fsck در خروجی
sudo -TAR
این آپشن، عنوانی شبیه fsck from util-linux را از خروجی دستور fsck حذف می کند.
برای دسترسی به اطلاعات بیشتر در مورد دستور fsck در لینوکس می توانید از دستورات زیر استفاده کنید:
man fsck
fsck --help
تعمیر فایل سیستم روت توسط دستور fsck
همانطور که می دانید فایل سیستم روت لینوکس همیشه در حال استفاده است و قابل unmount شدن نیست. به همین خاطر، ابزار fsck قادر به بررسی و تعمیر خطاهای پارتیشن های روت نیست.
اگر به هر دلیلی نیاز به تعمیر فایل سیستم روت دارید، باید یک سری مراحل خاص را اجرا کنید تا بتوانید از fsck برای بررسی و تعمیر فایل سیستم روت استفاده کنید:
- تمام برنامه های سیستم لینوکس خود را ببندید و آن را ریبوت کنید:
sudo reboot
- کلید Shift را فشار داده و نگه دارید تا منوی GNU GRUB باز شود.
- گزینه Advanced options را انتخاب کنید.
- گزینه recovery mode را انتخاب کنید تا منوی Recovery باز شود.
- گزینه fsck را انتخاب کنید و از پنجره باز شده، گزینه Yes را انتخاب کنید.
- سپس، گزینه resume را انتخاب کنید تا سیستم شما بوت شود.
اکنون می توانید از دستور fsck در لینوکس برای خطایابی فایل سیستم و پارتیشن های روت خود استفاده کنید.
برای اطلاع از پارتیشن های روت سیستم خود می توانید از ابزار fdisk و parted در لینوکس استفاده کنید.
فعال سازی قابلیت اجرای اجباری fsck موقع بوت
اگر می خواهید وضعیت سیستم فایل در هر بار بوت بررسی شود و همان موقع، خطاهای احتمالی شناسایی و برطرف شوند، باید فایل forcefsck را در پارتیشن ریشه سیستم لینوکس ایجاد کرده و آن را ویرایش کنید:
پس ترمینال را باز کنید.
دستور زیر را اجرا کنید تا فایل forcefsck ایجاد شود:
sudo touch /forcefsck
خطوط زیر را در این فایل وارد کنید:
fsck.mode=force
fsck.repair=yes
فایل را ذخیره کرده و ببندید.
اگر سرعت بالا آمدن و بوت شدن سیستم برایتان مهم است، فعال سازی این قابلیت می تواند به ضرر شما تمام شود چون پروسه بررسی و تعمیر خطاها توسط fsck می تواند زمان بر باشد و بعداً برای شما دردسر ساز شود.
بررسی نکات مهم برای استفاده از دستور fsck در لینوکس
- برای اجرای دستورات fsck حتماً باید از امتیازات روت یا sudo برخوردار باشید.
- برای جلوگیری از هر گونه احتمال از دست دادن داده، بهتر است قبل از اجرای fsck از فایل های مهم خود بکاپ بگیرید.
- برای اینکه بتوانید پارتیشن یا دستگاهی را با fsck تعمیر کنید، باید ابتدا آن را unmount کنید.
- بعد از بررسی و تعمیر fsck، حتماً باید پارتیشن موردنظر را مجدداً mount کنید.
- فایل سیستم روت قابل unmount شدن نیست و برای اسکن آن باید fsck را از طریق منوی ریکاوری بوت فعال کنید.
- بررسی منظم فایل سیستم توسط fsck ایده خوبی برای حفظ سلامتی دیسک سیستم است.
- به پیام ها و کدهای خروجی دستور fsck در لینوکس توجه کنید چون می توانند اطلاعات مفیدی را برای خطایابی دیسک ارائه دهند.
سخن آخر
fsck یک ابزار قدرتمند برای مدیریت بهتر فایل سیستم ها است که اگر هدف هر کدام از آپشن ها و نحوه استفاده از آن را یاد بگیرید و عملیات خطایابی با fsck را به طور منظم اجرا کنید، مطمئن باشید که پایداری، یکپارچگی و قابلیت اطمینان هارد دیسک سیستم شما برای همیشه حفظ خواهد شد.