Linux系統啓動的流程

1.BOIS 自檢
BIOS會根據用戶設置的啓動順序來由那個設備來啓動電腦的操作系統,這個設備一般是硬盤。
2.MBR引導
也就是進入到硬盤的MBR區域,這個區域中的有512個字節的大小,其中前446個字節中保存的程序是選擇啓動分區,也就是電腦由那個硬盤分區來載入開機的程序。那麼在這個446個字節的空間中保存的就是啓動程序!
3.grub引導菜單
啓動程序加載MBR其它位置的引導程序,也就是grub程序。它的配置文件是 /etc/grub.conf。
[root@lnmp ~]# grep -v "^#" /etc/grub.conf
default=1 #0,是指第一組操作系統開機。如果有兩組操作系統的開機設定,而defaule=1,那麼預設使用第二組操作系統開機。
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz #splashimage表示開機使用的背景圖案,hd0,表示第一個硬盤;0指的是硬盤的第一個分區;/grub/splash.xpm.gz就是開機使用的背景圖案的文件名稱
hiddenmenu #hiddenmenu指令是隱藏開機的選單
password --md5 $1$bXHOi0gc$VzOlhBx8260Ab.B6Ww.nB.
title CentOS (2.6.18-308.8.2.el5xen) #title開機先單的標題名稱
root (hd0,0) #下面文件(內核文件)存放的路徑,(hd0,0)指的是/boot目錄
kernel /xen.gz-2.6.18-308.8.2.el5
module /vmlinuz-2.6.18-308.8.2.el5xen ro root=LABEL=/ rhgb quite #ro root=LABEL=/就是設根目錄的位置,ro表示read only,所以有這行的設定,才能讀取根目錄;rhgb圖形界面啓動,取代以前的文本界面。如果要使用文本界面的形式啓動,只要將rhgb刪除即可。quite:在開機過程中不要顯示錯誤的信息。如果要顯示錯誤信息,只要刪除quite即可。
module /initrd-2.6.18-308.8.2.el5xen.img
title CentOS (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=LABEL=/ selinux=0
initrd /initrd-2.6.18-194.el5.img #initrd:將initrd映像文件加載到內存。這個文件裏面存放的都是驅動程序

4.加載內核
內核主要作用是取得BIOS所檢測到的硬件設備的信息,然後將這些硬件設備自己來管理,這樣才能夠提供給Linux系統使用。接手了硬件設備後,然後就要加載這些設備的驅動程序。以便於控制電腦上的設備如何正確的工作。
加載完硬件的驅動程序後,接下來就加載開機所需要的庫文件!
5.init進程初始化
加載完成內核之後,Kernel會啓動init這個程序,也是Linux內核啓動後的第一個動作,這個程序的PID是永遠是1;啓動init服務的目的就是爲了用來初始化Linux的環境。
init程序其實是去讀取/etc/inittab配置文件的配置,根據配置來決定作什麼工作;
[root@lnmp ~]# grep -v -E "^#|^$" /etc/inittab
id:3:initdefault: #決定進入哪個運行級別(0-6)
si::sysinit:/etc/rc.d/rc.sysinit #執行初始操作系統的程序;
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3 #執行run level對應目錄中的程序。
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now #設置重啓熱鍵
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" #定義UPS不間斷電源系統
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" #當電源恢復工作時,執行shutdown -c 表示在關機前取消關機的操作,這個時候必須取消關機操作。
1:2345:respawn:/sbin/mingetty tty1 #最後進入虛擬控制終端
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm -nodaemon

附:初始化系統的腳本rc.sysinit都做了哪些操作?
1、設定電腦的名稱,hostname在/etc/sysconfig/network文件中
2、設定系統的時間
3、定義鍵盤
4、啓用swap分區
5、檢查根目錄(/)有沒有問題。並且掛載成可讀可寫的狀態。
6、設定系統的時間

7、加載一些其他的設備,如RAID和LVM


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