Linux啓動過程

wKioL1Z-TQPDp4stAADQT1zRtHg742.png

1、檢測硬件

2、讀取硬盤MBR(Master Boot Record)

    MBR位於第0磁道第一個扇區,默認扇區大小爲512 bits,包含主引導程序、分區表、分區有效標誌

        1)、主引導程序(boot loader),佔446 bits,引導grub/lilo,一般常用grub。

        2)、分區表(Disk Partition table 簡寫DPT),大小爲64 bits,記錄分區及分區表大小。

        3)、分區有效標誌,佔用2bits,固定爲55AA。

3、引導grub(GRand Unified Bootloader簡稱“GRUB”),是一個來自GNU項目的多操作系統啓動程序

      按grub.conf配置文件,加載內核(kernel)

4、執行init進程,內核啓動後,執行的第一個進程init,開始初始化系統。

5、init 讀取/etc/inittab配置文件,獲取啓動級別run-level

     例如/etc/inittab默認啓動運行級別: id:5:initdefault:      

6、init 運行/etc/rc.d/rc.sysinit,啓動相關服務環境(如網絡、時區等)。

7、init 執行/etc/rc.d/rcX.d(X表示數字,run-level級別) 下各個服務並啓動 (script 方式);

    例如系統默認啓動級別爲5,系統就會運行/etc/rc.d/rc5.d目錄下的腳本。查看這些腳本文件:

    [root@lnmp01 ~]# ls /etc/rc.d/rc5.d
    K01smartd          S01sysstat           S25cups
    K05wdaemon         S02lvm2-monitor      S25netfs
    K10psacct          S03vmware-tools      S26acpid
    K10saslauthd       S08ip6tables         S10network
    文件名意義:K表示關閉;S表示啓動;數字:表示順序,數值越大,啓動順序越早;後面字母表示服務名稱。腳本有一項關於chconfig配置,以network這個服務爲例,查看S10network 這個腳本:

 

wKioL1Z-NKqCvWX7AAAvFE7ukD4366.png



8、init 執行/etc/rc.d/rc.local,啓動開機自動執行的腳本。

9、init 執行虛擬終端機控制程序 mingetty 來啓動 login 程序,最後就等待用戶登入


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章