果洛皆料电子有限公司

Linux的啟動流程詳解

  • 發(fā)布于:2023-05-06
  • 245 人圍觀

第一階段:BIOS啟動引導階段

在該過程中實現(xiàn)硬件的初始化以及查找啟動介質(zhì)

從MBR中裝載啟動引導管理器(GRUB)并運行該啟動引導管理

 

第二階段:GRUB啟動引導階段

裝載stage1

裝載stage1.5

裝載stage2

讀取/boot/grub.conf文件并顯示啟動菜單

裝載所選的kernel和initrd文件到內(nèi)存中

 

第三階段:內(nèi)核階段

運行內(nèi)核啟動參數(shù)

解壓initrd文件并掛載initd文件系統(tǒng),裝載必須的驅動

掛載根文件系統(tǒng)

 

第四階段:Sys V init初始化階段

啟動/sbin/init程序

運行rc.sysinit腳本,設置系統(tǒng)環(huán)境,啟動swap分區(qū),檢查和掛載文件系統(tǒng)

讀取/etc/inittab文件,運行在/et/rc.d/rc<#>.d中定義的不同運行級別的服務初始

化腳本

打開字符終端1-6號控制臺/打開圖形顯示管理的7號控制臺

 

啟動流程和細節(jié)詳解

BIOS ==> bootloader ==> kernel & initrd.img ==> /sbin/init

 

1.bootloader (grub)

 /boot/grub/grub.conf  <-- grub的配置文件,決定使用哪個kernel和initrd.img

 在/boot/grub目錄中有兩個stage文件,其中:

      stage1  <--- 大小是512字節(jié),這個文件會被寫進MBR中

      stage2  <--- stage1被引導之后,會調(diào)用這個文件

 

如果grub出現(xiàn)問題可能會有兩種情況:

  a.無法進入grub,屏幕左上角只出現(xiàn)一個光標。出現(xiàn)這種情況基本上MBR已經(jīng)被破壞,需要進入rescue模式進行修復。

      --> chroot環(huán)境,執(zhí)行 "grub-install /boot所在分區(qū)" 進行修復

      --> 無grub相關命令時,安裝grub.rpm包進行恢復

      --> /boot目錄下無相關的vmlinuz和initrd.img文件時,安裝kernel.rpm包進行修復

      --> 無grub.conf時需要手工修復

  b.grub成功加載,屏幕出現(xiàn)“grub>”,表示配置文件grub.conf找不到。                                                       

      --> 手工修復

 

2.kernel & initrd.img

    在加載vmlinuz和initrd時出現(xiàn):kernel panic情況,基本是grub.conf設置參數(shù)出問題。

      --> 檢查grub.conf編寫是否出現(xiàn)問題

      --> 也有可能是分區(qū)設置或者硬盤損壞等問題,需要進入rescue模式檢查

 

3./sbin/init

/sbin/init的配置文件是/etc/inittab

按照這個配置文件,系統(tǒng)會依次執(zhí)行以下腳本:

 

---> /etc/rc.d/rc.sysinit                 

 定義hostname,重新掛載各分區(qū),加載各模塊

 

---> /etc/rc.d/rc[0-6].d/目錄下以S開頭的腳本   

啟動各runlevel的服務

 

---> mingetty /dev/tty[1-6]               

 啟用終端

萬企互聯(lián)
標簽: