عیبیابی و بازیابی سیستم در CentOS
در CentOS عیبیابی (Troubleshooting) و بازیابی سیستم (System Recovery) شامل مجموعهای از روشها، ابزارها و حالتهای ریکاوری است که به شما کمک میکند مشکلات سیستم را شناسایی، برطرف یا سیستم را به حالت سالم برگردانید.
1. عیبیابی عمومی سیستم
بررسی لاگها
- لاگ کلی سیستم
journalctl -xe
- لاگهای امنیتی
tail -f /var/log/secure
- لاگهای بوت آخر
journalctl -b
- لاگ یک سرویس خاص
journalctl -u servicename
بررسی سرویسها
systemctl status servicename
systemctl restart servicename
systemctl restart servicename
شناسایی مصرف منابع
top # یا htop
df -h # وضعیت فضای دیسک
free -h # وضعیت RAM
df -h # وضعیت فضای دیسک
free -h # وضعیت RAM
2. بازیابی پسورد root
- در Boot Loader (GRUB) کلید e را بزنید.
- در خط کرنل (linux16 یا linux) پارامتر زیر را اضافه کنید:
rd.break
- سیستم را با Ctrl+X بوت کنید.
- ریمانت کردن /sysroot:
mount -o remount,rw /sysroot
chroot /sysroot
chroot /sysroot
- تغییر پسورد:
passwd root
- خروج و ادامه بوت:
exit
reboot
reboot
3. حالت تککاربره (Single User Mode)
برای رفع مشکلات اساسی:
- در GRUB ویرایش خط کرنل (linux) و اضافهکردن:
systemd.unit=rescue.target
- بوت سیستم به حالت تککاربره
در این حالت میتوانید پکیجها را تعمیر، سرویسها را دیباگ یا فایلهای سیستمی را اصلاح کنید.
4. رفع مشکلات بوت با Rescue mode
- بوت از DVD/ISO نصب CentOS
- انتخاب گزینه Troubleshooting → Rescue a CentOS system
- پیدا کردن و Mount کردن پارتیشنها توسط ویزارد
- استفاده از chroot برای ورود به محیط سیستم و اجرای تعمیرات
5. رفع مشکلات دیسک و سیستمفایل
بررسی و تعمیر فایلسیستم
fsck /dev/sda1
باید روی یک پارتیشن Unmounted انجام شود.
بررسی دیسک
smartctl -a /dev/sda
6. مدیریت پکیجهای خراب
- جستجو و بازسازی Metadata:
dnf clean all
dnf makecache
dnf makecache
- حذف و نصب مجدد پکیجهای معیوب:
dnf remove packagename
dnf install packagename
dnf install packagename
7. کار با Snapshot یا بکاپ
با LVM Snapshot
lvcreate --size 1G --snapshot --name snap01 /dev/vg0/lv0
بازگردانی از Snapshot
lvconvert --merge /dev/vg0/snap01
بازگردانی از بکاپ rsync
rsync -av backup_dir/ /
8. ابزارهای تست و دیباگ
- strace → پیگیری فراخوانیهای سیستمی یک برنامه:
strace -p PID
- dmesg → مشاهده پیامهای کرنل:
dmesg | less
- rescue.target → حالت نجات systemd:
systemctl isolate rescue.target
9. نکات حیاتی
- همیشه قبل از تغییرات اساسی، از بکاپ کامل بگیرید.
- از SELinux خاموش به عنوان آخرین راهکار استفاده کنید، نه اولین.
- اگر سیستم بوت نمیشود، حالتهای RD.break، single user، و rescue ISO ابزارهای اصلی شما هستند.
