一:概述
關於linux的系統啟動流程我們可以從下面圖片中的流程一步一步展開,其實linux系統的啟動過程中,我們可以比喻為一個接力賽,計算機的不同模塊負責這個接力賽中接力棒的交接(為了更好的理解,暫且這樣比喻吧可能有點不是太恰當,呵呵650) this.width=650;">)
650) this.width=650;" border=0>
二:剖析啟動過程(整個過程將圍繞上面的圖片流程詳細展開)
這時如果BIOS找不到可以引導的設備及相關程序後,便會啟動失敗,如果順利 的找到了相關設備及程序,那麼BIOS將繼續交接給啟動設備中的 MBR(Master Boot Record)主引導記錄
3. MBR程序找到其前446個字節的Boot Loader
4. Boot Loader 找到gub程序
在這個過程的主要是靠Grub的引導開始,將貫穿到系統初始化開始前
- grub引導又分為兩個階段 stage1:主要是Boot loader
- stage 1.5:過渡
- stage2:主要是/boot/grub (這三個階段在內部實現接力)
650) this.width=650;" border=0>
從上面/boot目錄中可以發現linux的內核(VMlinuz),grub,inird程序都在該目錄下) 650) this.width=650;" border=0>
- 在/boot/grub/下面我們看到了熟悉的stage1,stage2及grub工具的配置文件 grub.conf,呵呵,
- 那麼grub.conf 是什麼東東呢?呵呵,下面我們看下一該配置文件
650) this.width=650;" border=0>
- 從grub的配置文件中我們看到了我們熟悉的開機圖片
- 在啟動菜單中
- root(hd0,0)告訴grub在什麼地方引導內核及initrd程序
- 然後說明kernel及initrd的位置
從上面的grub.conf 的引導配置文件中得知,下面grub該找內核及initrd程序了,從啟動菜單中得知相關位置信息後,開始步入引導kernel了,這就是kernel的初始化過程,MBR開始交接給kernel