第一階段:bios啟動引導階段
在該過程中實作硬體的初始化以及查找啟動媒體
從mbr中裝載啟動引導管理器(grub)并運作該啟動引導管理
第二階段:grub啟動引導階段
裝載stage1
裝載stage1.5
裝載stage2
讀取/boot/grub.conf檔案并顯示啟動菜單
裝載所選的kernel和initrd檔案到記憶體中
第三階段:核心階段
運作核心啟動參數
解壓initrd檔案并挂載initd檔案系統,裝載必須的驅動
挂載根檔案系統
第四階段:sys v init初始化階段
啟動/sbin/init程式
運作rc.sysinit腳本,設定系統環境,啟動swap分區,檢查和挂載檔案系統
讀取/etc/inittab檔案,運作在/et/rc.d/rc<#>.d中定義的不同運作級别的服務初始化腳本
打開字元終端1-6号控制台/打開圖形顯示管理的7号控制台
啟動流程和細節詳解
bios ==> bootloader ==> kernel & initrd.img ==> /sbin/init
1.bootloader (grub)
/boot/grub/grub.conf 在/boot/grub目錄中有兩個stage檔案,其中:
stage1 stage2 如果grub出現問題可能會有兩種情況:
a.無法進入grub,螢幕左上角隻出現一個光标。出現這種情況基本上mbr已經被破壞,需要進入rescue模式進行修複。
--> chroot環境,執行 "grub-install /boot所在分區" 進行修複
--> 無grub相關指令時,安裝grub.rpm包進行恢複
--> /boot目錄下無相關的vmlinuz和initrd.img檔案時,安裝kernel.rpm包進行修複
--> 無grub.conf時需要手工修複
b.grub成功加載,螢幕出現“grub>”,表示配置檔案grub.conf找不到。
--> 手工修複
2.kernel & initrd.img
在加載vmlinuz和initrd時出現:kernel panic情況,基本是grub.conf設定參數出問題。
--> 檢查grub.conf編寫是否出現問題
--> 也有可能是分區設定或者硬碟損壞等問題,需要進入rescue模式檢查
3./sbin/init
/sbin/init的配置檔案是/etc/inittab
按照這個配置檔案,系統會依次執行以下腳本:
---> /etc/rc.d/rc.sysinit
定義hostname,重新挂載各分區,加載各子產品
---> /etc/rc.d/rc[0-6].d/目錄下以s開頭的腳本
啟動各runlevel的服務
---> mingetty /dev/tty[1-6]
啟用終端
<b>原文釋出時間為:2012-03-21</b>
<b>本文來自雲栖社群合作夥伴“linux中國”</b>