2011年2月23日 星期三

開機流程與 Boot Loader
http://www.suse.url.tw/sles10/

1. Boot Loader 概要:BIOS 儲存在 CMOS RAM 中的 BIOS 設定
b. 開機自我測試 (Power On Self Test : POST)
c. BIOS 將依照 CMOS 中所設定的開機順序來依序尋找可開機裝置,如果這個裝置是硬碟的話,那就會先去讀取硬碟的第 0 個磁柱的第 0 個磁頭的第一個磁區 (最前面 512 bytes 的磁區),也就是 MBR (Master Boot Record)
2. MBR
a. MBR 內主要是存放著 Boot Partition Loader (BPL : 分割區引導程式) 及 partition table
b. partition table 是包含著四個分割區的紀錄 (以 hda 來說為 hda1 ~ hda4),比如起始、結束磁柱的資訊及哪個 partition 有設定啟動旗標 (Active) 等
c. MBR 上的小程式 (BPL) 就會根據 partition table 裡有設定 Active 旗標的那個 partition,而載入該 partition 的 boot sector,以完成後續的開機作業
3. Boot Loader
a. Win NT 系列也有它們自己的 Boot Manager 叫 ntldr,不過這個 ntldr 是放在 partition 裡而非 MBR
b. Linux 的 Boot Loader 為一兩階段程式,第一階段可以放在 MBR 或 /boot 分割區的 boot sector 裡
c. MBR 一次只能安置一個 Boot Manager,比如之前您是使用 SPFDISK 來做開機管理,現在在安裝 Linux 時又把 Linux Loader 放在 MBR,那當然 MBR 裡的 Boot Manager 就變成是 Linux Loader 了

假設從硬碟開機,且 Linux Loader 是安裝在 MBR。
  1. 按下主機電源後,BIOS 做硬體偵測,並根據 CMOS 中的紀錄來決定開機裝置。
  2. 接著 BIOS 會載入 MBR 磁區,並將 Linux Loader 載入記憶體,接著主控權就交由 Linux Loader 來接管。
  3. 再來會看到一個開機選單畫面,來讓您選擇要開啟哪套作業系統。
  4. 選擇 Linux OS 並按下 Enter 鍵以後,Linux Loader 就把 Linux kernel 及 initramfs (註一) 載入記憶體,準備來進行一些初始化的工作。
  5. 在成功掛載根目錄檔案系統 (rootfs) 後,於 rootfs 中所執行的第一支程式為 init,其 PID 為 1。
  6. init 會載入 /etc/inittab (initial table) 的內容,並執行檔案內相關的 scripts。
  7. 最後就是執行 login 程式,此時會等待您輸入帳號密碼,如果認證無誤的話,就會開啟一個 shell 來讓您使用囉 !



開機過程的簡易流程圖

沒有留言:

張貼留言