محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

آموزش تشخیص خراب بودن فایل سیستم لینوکس و نحوه تعمیر آن

شما می توانید در سیستم عامل لینوکس با استفاده از ابزاری به نام fsck که مخفف file system checker می باشد از سلامت فایل سیستم موجود بر روی هارد دیسک خودتان اطمینان حاصل کنید ، دستور fsck برای هر کدام از فایل سیستم های مختلف دستور متفاوتی دارد برای مثال در فایل سیستم های ext2 و ext3 و xfs و ... دستورات repair کردن فایل سیستم متفاوت می شود ، در واقع با فراخوانی یک نوع خاص فایل سیستم برای تعمیر کردن نرم افزار یا اسکریپت خاص همان نوع فایل سیستم برای تعمیر کردن در نظر گرفته می شود ، به مثال زیر دقت کنید ، ابتدا ما با استفاده از دستور parted تمامی پارتیشن های هارد دیسک دوم سیستم که بصورت dev//sdb// می باشد را با نوع فایل سیستم آنها نمایش می دهد :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
[root@localhost ~]# parted /dev/sdb 'print'
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  5370MB  5369MB  primary   ext2
 2      5370MB  10.7GB  5369MB  primary   ext3
 3      10.7GB  16.1GB  5369MB  primary   xfs
 4      16.1GB  21.5GB  5368MB  extended

[root@localhost ~]# 

خوب همانطور که در بالا مشاهده می کنید ما 4 عدد پارتیشن با 4 عدد فایل سیستم مختلف داریم و می خواهیم فایل سیستم دوم که sdb1 می باشد را repair کنیم یا بهتر بگوییم سلامت آن را بررسی کنیم ، برای اینکار شما می توانید به روش زیر از دستور fsck استفاده کنید :

[root@localhost ~]# fsck.ext2 /dev/sdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb1: clean, 11/327680 files, 23134/1310720 blocks
[root@localhost ~]#

به دستور بالا دقت کنید ، یکی از مواردی که در استفاده کردن از دستور fsck اهمیت دارد تعریف کردن نوع فایل سیستم در دستور است ، شما می توانید اینکار را به دو روش انجام بدهید ، یا اینکه از پارامتر t- برای تعریف کردن type فایل سیستم استفاده کنید و یا اینکه نرم افزار تخصصی فایل سیستم مورد نظر را از همان ابتدا فراخوانی کنید ، برای مثال در بالا ما برنامه fsck.ext2 را فراخوانی کردیم که sdb1 را که دارای فایل سیستم ext2 است را چک کند ، البته خود دستور fsck بعضا ممکن است فایل سیستم را تشخیص بدهد اما برخی اوقات ممکن است اینکار به درستی انجام نشود ، روش دیگر اجرای دستور بالا به شکل زیر می باشد که ما از پارامتر t- استفاده می کنیم :

[root@localhost ~]# fsck -t ext2 /dev/sdb1
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb1: clean, 11/327680 files, 23134/1310720 blocks
[root@localhost ~]#

دو دستور بالا در عمل کار یکسانی را انجام می دهند ، اگر همینکار را برای فایل سیستم های دیگر بخواهیم انجام بدهیم و check disk برای این فایل سیستم ها انجام بدهیم به روش زیر برای sdb2 که دارای فایل سیستم ext3 است عمل می کنیم :

[root@localhost ~]# fsck.ext3 /dev/sdb2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb2: clean, 11/327680 files, 55935/1310720 blocks
[root@localhost ~]#

دستور پایین نیز دقیقا همان کار دستور بالا را انجام می دهد :

[root@localhost ~]# fsck -t ext3 /dev/sdb2
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdb2: clean, 11/327680 files, 55935/1310720 blocks
[root@localhost ~]#

اگر شما نوع فایل سیستم را در دستور fsck معرفی نکنید خود نرم افزار به شما پیشنهاد می دهد که باید از چه نوع برنامه ای برای بررسی فایل سیستم استفاده شود ، به مثال زیر توجه کنید :

[root@localhost ~]# fsck /dev/sdb3
fsck from util-linux 2.23.2
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_repair(8).
[root@localhost ~]# 

همانطور که در دستور بالا مشاهده می کنید fsck به ما پیشنهاد می دهد که برای بررسی فایل سیستم در sdb3 با توجه به اینکه فایل سیستم شما xfs است از برنامه xfs__repair استفاده کنید ، ما هم بر همین اساس از همین دستور برای repair کردن فایل سیستم استفاده می کنیم :

[root@localhost ~]# xfs_repair /dev/sdb3
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan and clear agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 0
        - agno = 2
        - agno = 3
        - agno = 1
Phase 5 - rebuild AG headers and trees...
        - reset superblock...
Phase 6 - check inode connectivity...
        - resetting contents of realtime bitmap and summary inodes
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done

دستور بالا برای repair کردن و بررسی کردن فایل سیستم xfs است هر چند دستور دیگری برای check کردن به همین شکل نیز وجود دارد ، دقت کنید که برای اینکه بتوانید فایل سیستم ها را check کنید بایستی فایل سیستم مورد نظر را از سیستم unmount کنید که اینکار توسط دستور umount انجام می شود ، نکته در اینجاست که در خصوص فایل سیستم xfs نیازی به unmount کردن وجود ندارد و در حالت mount هم قابلیت repair و check وجود دارد ، برای اینکه بتوانید اطلاعات بیشتری در خصوص option های مختلف دستور fsck داشته باشید می توانید دستور مورد نظر را به شکل زیر وارد کنید :

[root@localhost sbin]# ls fsck*
fsck         fsck.ext2  fsck.ext4  fsck.minix  fsck.vfat
fsck.cramfs  fsck.ext3  fsck.fat   fsck.msdos  fsck.xfs
[root@localhost sbin]#

تمامی خروجی هایی که در دستور بالا مشاهده می کنید برای بررسی کردن فایل سیستم های مختلف در سیستم عامل لینوکس هستند ، بررسی کردن fat و minix و msdos و ... را به همین شکل با دستوراتی که عنوان کردیم می توانید انجام بدهید . امیدوارم مورد توجه شما قرار گرفته باشد. ITPRO باشید

نویسنده : محمد نصیری
منبع : ITPRO
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات