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 這個腳本:
8、init 執行/etc/rc.d/rc.local,啓動開機自動執行的腳本。
9、init 執行虛擬終端機控制程序 mingetty 來啓動 login 程序,最後就等待用戶登入