前言bash
運維人員常常會遇到各式各樣的系統故障,如何根據故障特徵鎖定問題根源,須要的不單單是技巧,還有遇到故障時的思路,和對系統內部的理解,本文列出了一些常見的系統故障和處理方法,在那以前首先須要對系統啓動流程有一個比較完整意義上的瞭解,以便問題出現後判斷其屬於哪一個環節。運維
Linux系統啓動流程的基本知識
ide
一、加電自檢(PowerOnSelfTest)工具
開機自動映射rom中程序到cpu能夠尋址的空間中,cpu執行指令檢查基本硬件是否正常加密
二、BIOS(Boot Sequence)
spa
若是正常則按照CMOS中保存的BootSequnece依次尋找對應設備上的MBR操作系統
三、MBR(BootLoader)blog
讀取第一個MBR存在的設備中的BootLoader,並交與其控制權。進程
Linux下的常見BootLoader有兩種:
get
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
四、Kernel
設備探測
驅動初始化(可能會從initrd(RHEL6 initramfs)文件中裝載驅動模塊)
爲內核提供訪問根文件系統的基本驅動能力
以只讀掛載根文件系統
裝載第一個進程init
五、init(etc/inittab)
/sbin/init 其配置文件(etc/inittab)
/etc/inittab 主要任務以下:
一、設定偶人運行級別
二、運行系統初始化腳本
三、運行制定運行級別目錄下的腳本
四、設定Ctrl+Alt+Del組合鍵的操做
五、定義UPS電源在電源故障/恢復時執行的操做
六、啓動6個虛擬終端(2345級別)
七、啓動圖形終端(5級別)
常見系統錯誤
一、忘記密碼
啓動進入單用戶模式
使用passwd修改root密碼
2、bootloader損壞
載入安裝光盤進入緊急救援模式
進入grub模式
重複成功
三、bash丟失系統沒法啓動
進入救援模式後
四、加密grub和內核
五、因某服務異常致使系統沒法啓動
總結七個點:
一、肯定問題的故障特徵
二、重現故障
三、使用工具收集進一步信息,肯定問題根源
四、排除不可能的緣由
五、定位故障
六、備份源文件
七、儘量藉助於工具