天天看點

Linux啟動流程

對于Linux想必大家應該都有一定的認識,今天想和大家分享一下自己的學習筆記--關于Linux的啟動流程的問題.如果了解windows 的啟動過程,那麼我相信Linux這一方面也應該不難!

對于下面這兩個圖,具體是怎麼個情況??下面就允許我為大家一一介紹吧!!  

<a target="_blank" href="http://blog.51cto.com/attachment/201007/145427723.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201007/145537561.jpg"></a>

一、Linux啟動管理

Linux啟動的引導程式主要有兩種,lilo,Grub;現在lilo 已經被淘汰,而Grub可以引導多種作業系統!

首先我先簡單介紹一下啟動過程:剛開始的時候,計算機中的BIOS進行加電自檢(POST),檢測一些硬體是否能正常工作,然後BIOS讀取硬碟中的0柱面、0磁頭、1扇區來尋找MBR記錄,接下來BIOS

将控制權交給MBR 中的引導程式、引導程式讀取分區表來尋找引導扇區,引導扇區中的引導程式開始加載啟動的一些配置檔案grub.conf和windows 中的boot.ini 類似(在後面我會介紹),接着螢幕上會出現作業系統的選項,回車選擇Linux 系統後,引導程式開始加載Linux 核心,加載父程序,子程序,初始化記憶體……

Linux大緻的啟動過程就是這樣,現在就開始具體的詳細的過程吧

1、 GRUB的結構

第一部分:引導程式,駐留在MBR中,負責加載作業系統;

第二部分:配置檔案,存儲于檔案系統中,記載作業系統的分布

2、GRUB的配置檔案

存儲位置:/boot/grub/grub.conf

利用VI 編輯打開如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/145609908.jpg"></a>

全局配置:

Default=0 //預設進入第幾個作業系統

Timeout=5 //逾時等待時間(選擇進入操縱系統的時間)

Splashimage //開機的畫面

Hiddenmenu //隐藏系統選擇菜單

啟動配置:

Title // 菜單說明

Root (hd0,0) //定義作業系統的核心所在的磁盤分區 即:第一 塊磁盤的第一個分區

Kernel //加載核心 /vmlinuz-2.6.18-8.el5 核心存放位置 ro 以隻讀方式挂接 root=LABEL=/ 定義根的卷标

Rhgb //一圖形界面方式 啟動OS,

Quiet //安靜模式下,啟動作業系統(不會顯錯誤資訊)

二、啟動流程

Linux 核心啟動後,首先加載是init 程序(系統父程序),程序的配置檔案 inittab,存放路徑:/etc/inittab 用VI 編輯器打開,如圖:

<a target="_blank" href="http://blog.51cto.com/attachment/201007/145641133.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201007/145725217.jpg"></a>

<a target="_blank" href="http://blog.51cto.com/attachment/201007/145744521.jpg"></a>

檔案的結構:指令代碼:運作級:指令操作:指令

運作級我們可以了解為,作業系統運作不同的環境,Linux預設有7個運作級

如圖在注釋中:

0 –halt (Do NOT set initdedault to this) //關機模式

1 –single user mode // 單使用者模式 管理者維護模式 (以空密碼進入)

2—multeruser mode without NFS //多使用者模式 ,不支援NFS 檔案系統 (沒有網絡功能)

3—full multiuser mode //多使用者模式,文字界面

4—unused // 保留模式

5—X11 圖形界面的完整使用者模式

6—reboot (Do not set initdeault to this)

介紹完 運作級以後,我們來讨論 系統的啟動流程吧! 

Si::sysint:/etc/rc.d/rc.sysinit //标記 init 程序 首次讀取 /etc/inittab 檔案時應執行的操作 rc.sysinit 系統初始化腳本

系統初始化完成後,init 程序開始選擇進入哪一個運作級

Id:5:initdefault: // 啟動運作級,辨別系統啟動後進入哪一個運作級(LOOK:注意:該指令操作隻能有一個,若在此處沒有指明系統進入那一個運作級,開機時将詢問使用者)

系統選擇指定的運作級後,接下來時下面的操作:

L0:0:wait:/etc/rc.d/rc 0 //系統進入到特定的運作級後要執行的指令

Rc 0 運作級初始化腳本

運作級初始化完成後,我們可以看到歡迎的登入的界面!

Inittab 配置檔案中的其他幾個選項,我也簡單說一下!

Ca::ctrlaltdel:/sbin/shutdown –t3 r now //表示是否使用 熱鍵:ctrl+alt+del 來使機器重新開機!

Pf::powerfail:/sbin/shutdown –f –h +2 “Power Failure;System Shutting Down ” //表示 UPS 發出斷電信号後的操作,(系統将在兩秒後關閉)

Pr:12345:powerokwait:/sbin/shutdown –c “Power Restored;shutdown Cancelled” // 表示UPS 付出電源恢複信号 後的操作:(系統取消關機的操作)

X:5:respawn:/etc/x11/prefdm –nodaemon //表示程序中斷後立即重新開機!

好啦。Linux 的啟動過程我已經介紹完畢,有什麼錯誤的地方還請大家指出!

本文轉自 位鵬飛 51CTO部落格,原文連結:http://blog.51cto.com/weipengfei/342235,如需轉載請自行聯系原作者

繼續閱讀