Linux 與 Windows 一樣會遇到各類故障,新手常因恐懼而放棄。實則解決故障是「發現→定位→解決」的閉環,掌握系統性思路與紮實功底,無解之謎不存在。本文構建完整故障處理體系,涵蓋通用排錯邏輯、三大高頻系統故障(密碼遺失、無法啟動、網路故障)深度解析。
/var/log + 應用日誌,結合分析可穿透表象直達本質本質:解決故障 = 分析查找過程,一定因果,必有結果。
環境:RHEL/CentOS 系列,GRUB 引導器
e 進入編輯kernel 行 → 再按 e → 行尾加空格 + single → Enterb 啟動進入單用戶模式(sh-3.1# 提示符)passwd 重設 Root 密碼 → init 3 進入多用戶模式驗證單用戶模式 ≒ Windows 安全模式:僅啟動核心服務,網路與應用服務全停,適合系統級維護。
/etc/inittab、/etc/fstab硬體故障換件解決;軟體故障多數可用統一修復模式處理。
/etc/fstab 遺失導致無法啟動現象:卡在 starting system logger,分區無法掛載。單用戶模式下根分區唯讀,無法寫入修復。
解法:Linux Rescue 修復模式重構 fstab
linux rescue → 語言/鍵盤/網路選擇 → 選 Continue 進入讀寫模式fdisk -l 獲取分區表 → e2label /dev/sdX 逐一獲取 Labelmkdir /temp && mount /dev/sda3 /temp/temp/etc/fstab,參考其他系統格式,結合 Label 重建完整掛載表現象:啟動檢測失敗,拋出 UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY,進入維護 Shell。
解法:強制 fsck 修復
umount /dev/sdb5
fsck -t ext3 -y /dev/sdb5
鐵律:修復前必須卸載目標分區,否則加劇損壞。
grub-install統計顯示 60% Linux 故障源於網路。診斷順序:
lsmod/ifconfig 確認驅動載入 → IP/子網掩碼/閘道配置正確性 → 多網卡場景下路由表優先級/etc/resolv.conf、/etc/hosts、/etc/nsswitch.conf 解析順序與伺服器可達性telnet IP PORT 或 netstat -ntl 確認服務埠開放 → 檢查服務配置檔(如 sshd_config 的 PermitRootLogin)iptables 策略(預設 DROP 需放行埠)→ SELinux 布林值/模式干擾eth0 (10.10.1.0/24) 對外服務,eth1 (192.168.200.0/24) 內網互訪。route -n 發現預設閘道指向 eth1 內網閘道,導致外部回包走錯介面。修復:
route del default
route add default gw 10.10.1.254
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
暫時關閉 setenforce 0 或修改 /etc/selinux/config 設 SELINUX=permissive 重啟驗證。若故障消失,再精細調整策略而非永久關閉。
任何網路故障皆有跡可循。遵循「物理→介面→解析→服務→存取→互聯」六步分層排查,99% 問題可精準定位解決。功夫在平日:平時多記錄基線配置、多演練故障注入,關鍵時刻方能從容應對。