Linux常見系統故障排除
作為一名運維工程師經常會遇到各式各樣的系統故障,如何根據故障特徵鎖定問題根源,需要的不僅僅是技巧,還有遇到故障時的思路,和對系統內部的理解,本文列出了一些常見的系統故障和處理方法,在那之前首先需要對系統啟動流程有一個比較完整意義上的瞭解,以便問題出現後判斷其屬於哪個環節。
Linux系統啟動流程的基本知識
1、加電自檢(PowerOnSelfTest)
開機自動對映rom中程式到cpu可以定址的空間中,cpu執行指令檢查基本硬體是否正常
2、BIOS(Boot Sequence)
如果正常則按照CMOS中儲存的BootSequnece依次尋找對應裝置上的MBR
3、MBR(BootLoader)
讀取第一個MBR存在的裝置中的BootLoader,並交與其控制權。
Linux下的常見BootLoader有兩種:
LILO: LInux LOader(不能引導1024柱面以後的分割槽核心(嵌入式))
GRUB: GRand Unified Bootloader
MBR空間有限,無法展示其特性,所以將GRUB分為2階段程式,如下:
Stage1(被裝載MBR當中) 主要目的是為了引導第二階段
Stage1.5(/boot/grub/Stage1_5) 識別常見不同型別的檔案系統
Stage2(/boot/grub/Stage2) 引導作業系統(突破了446位元組的限制) 並藉助配置件/boot/grub/grub.conf
4、Kernel
裝置探測
驅動初始化(可能會從initrd(RHEL6 initramfs)檔案中裝載驅動模組)
為核心提供訪問根檔案系統的基本驅動能力
以只讀掛載根檔案系統
裝載第一個程序init
5、init(etc/inittab)
/sbin/init 其配置檔案(etc/inittab)
/etc/inittab 主要任務如下:
1、設定偶人執行級別
2、執行系統初始化指令碼
3、執行制定執行級別目錄下的指令碼
4、設定Ctrl+Alt+Del組合鍵的操作
5、定義UPS電源在電源故障/恢復時執行的操作
6、啟動6個虛擬終端(2345級別)
7、啟動圖形終端(5級別)
常見系統錯誤
1、忘記密碼
啟動進入單使用者模式
使用passwd修改root密碼
2、bootloader損壞
載入安裝光碟進入緊急救援模式
進入grub模式
重複成功
3、bash丟失系統無法啟動
進入救援模式後
4、加密grub和核心
5、因某服務異常導致系統無法啟動
總結七個點:
1、確定問題的故障特徵
2、重現故障
3、使用工具收集進一步資訊,確定問題根源
4、排除不可能的原因
5、定位故障
6、備份原始檔
7、儘可能藉助於工具