天天看點

Linux 的啟動流程詳解

第一階段: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>

繼續閱讀