104.2 - حفظ یکپارچگی فایلسیستمها¶
اهداف یادگیری¶
در این درس با موارد زیر آشنا میشوید:
- بررسی و تأیید سلامت فایلسیستمها
- پایش فضای دیسک و تعداد inodeها
- تعمیر مشکلات سادهٔ فایلسیستم
کلیدواژهها¶
du, df, fsck, e2fsck, mke2fs, tune2fs, xfs_repair, xfs_fsr, xfs_db, blkid, lsblk
اندازهگیری مصرف فضا و اینودها (du & df)¶
برای فهمیدن میزان استفاده از فضای دیسک و تعداد inode باقیمانده از df و du استفاده کنید.
مثال df با نمایش نوع فایلسیستم و اعداد خوانا:
برای دیدن وضعیت inodeها:
du برای دیدن میزان استفادهٔ هر دایرکتوری است؛ سوئیچهای مفید: -h, -H, -c, --max-depth و -s.
بررسی و تعمیر فایلسیستم (fsck و e2fsck)¶
ابزار کلی برای بررسی و تعمیر فایلسیستمها fsck است؛ این فرمان نقش front-end برای ابزارهای مخصوص هر نوع فایلسیستم را دارد (مثلاً e2fsck برای ext⅔/4, fsck.vfat برای fat/vfat).
نمونهٔ خطا و راهنمایی (در صورت خراب بودن superblock):
$ fsck /dev/sdb
ext2fs_open2: Bad magic number in super-block
fsck.ext2: Superblock invalid, trying backup blocks...
در صورت خراب بودن superblock میتوان از یکی از سوپربلاکهای پشتیبان استفاده کرد:
هشدار
هرگز fsck را روی فایلسیستمِ mounted اجرا نکنید — این کار میتواند سبب خرابی بیشتر دادهها شود. ابتدا پارتیشن را unmount کنید یا از live/rescue environment استفاده کنید.
نکته
برای بررسی بدون اعمال تغییرات از fsck -N (dry-run) استفاده کنید تا ببینید چه عملیاتی قرار است انجام شود و از گزینه -n یا -y هنگام اجرا با دقت استفاده شود.
e2fsck، mke2fs و tune2fs (ext family)¶
e2fsck مخصوص خانوادهٔ ext است؛ بهطور کلی نباید روی فایلسیستم mounted اجرا شود مگر با -n.
گزینههای مفید: - -n : فقط گزارش (no changes) - -y : پاسخ مثبت خودکار به همهٔ سوالات - -p : تعمیر اتوماتیک اگر امن باشد
mke2fs برای ساخت فایلسیستم ext است و tune2fs برای نمایش و تنظیم پارامترها؛ مثال نمایش تنظیمات:
$ sudo tune2fs -l /dev/sda2
Filesystem UUID: 1651a94e-...
Filesystem state: clean
Mount count: 32
Maximum mount count: -1
Last checked: Mon Dec 1 10:21:42 2014
Check interval: 0 (<none>)
ابزارهای XFS¶
برای XFS از ابزارهای xfs_info, xfs_repair, xfs_fsr, xfs_admin و xfs_db استفاده میشود. توجه کنید که xfs_repair باید بر روی فایلسیستم unmounted اجرا شود.
نکته
بعضی توزیعها پکیجهای xfsprogs را بهصورت پیشفرض ندارند — برای استفاده از ابزارهای XFS آنها را نصب کنید.
سوپربلاکها و پشتیبانها¶
سوپربلاک شامل متادیتای اصلی فایلسیستم است و معمولاً در چند مکان پشتیبانگیری میشود. لیست مکانهای سوپربلاک را میتوان با mke2fs -n /dev/sdX مشاهده کرد.
چکلیست عملی¶
- با
lsblkوblkidدستگاه و UUIDها را شناسایی کنید. - اگر باید فایلسیستمی را بررسی کنید، ابتدا آن را unmount کنید (یا در محیط live بوت کنید).
- با
fsck -Nجراحی مورد انتظار را پیشنمایش کنید، سپسfsckیاe2fsckرا اجرا کنید. - برای XFS از
xfs_repair(فایلسیستم باید unmounted باشد) و برای defragment ازxfs_fsrاستفاده کنید. - پس از تعمیر، با
tune2fs -lوmountوضعیت را بررسی کنید؛ تغییرات را در/etc/fstabبا UUID ثبت کنید.
تمرینها¶
- با
df -iبررسی کنید که آیا فایلسیستم ریشه inodeاش پر نشده است یا خیر. - یک پارتیشن ext تست بسازید (با فایل loop یا دیسک مجازی)، با
mke2fsبسازید، سپسtune2fs -lوe2fsck -nرا روی آن اجرا کنید.
خلاصه¶
در این درس یاد گرفتیم چگونه مصرف فضا و inodeها را بررسی کنیم، فایلسیستمها را با fsck/e2fsck بررسی و تعمیر کنیم، و ابزارهای مخصوص XFS و ext را بشناسیم. همیشه قبل از اقدام به تعمیر از خاموش بودن mount و داشتن پشتیبان اطمینان حاصل کنید.
نکات کلیدی برای آزمون
- تفاوت
duوdfو کاربرد پرکاربردdf -iبرای مشاهدهٔ inodeها fsckبه عنوان front-end وe2fsckبرای ext⅔/4؛ استفاده از-Aدر بوت/فایلfstabو-Nبرای پیشنمایش- هرگز
fsckرا روی فایلسیستم mounted اجرا نکنید؛ ازumountیا rescue/live استفاده کنید - روش استفاده از superblockهای پشتیبان (
e2fsck -b <block>) هنگام خراب شدن superblock - ابزارهای XFS:
xfs_info,xfs_repair(unmounted),xfs_fsrبرای یکپارچهسازی tune2fs -lاطلاعات مهمی (mount count, last checked, check interval) را نمایش میدهد