Linux系统初始化流程
POST-->BIOS(Boot Sequence)-->MBR(bootloader)-->Kernel(initrd)-->/sbin/init(/etc/inittab)
當(dāng)我們按下開(kāi)機(jī)按鈕時(shí),會(huì)發(fā)生這些事:
1.自檢:依賴于CPU,ROM中的程序
2.加載BIOS,Boot Sequence確定啟動(dòng)順序
3.MBR:
硬盤0磁道0扇區(qū)的MBR文件,共512字節(jié)
446:BootLoader
64:分區(qū)表,每16字節(jié)一個(gè)分區(qū)
2:5A(一個(gè)特殊標(biāo)記)
4.kernel文件vmlinuz+initrd:只能放在基本磁盤分區(qū),BootLoader會(huì)把vmlinuz當(dāng)做根來(lái)使用,即/vmlinuz
將vmlinuz加載到內(nèi)存中使用。vmlinuz分為兩段,前半部分未壓縮段,是為了解壓第二段。
至此BootLoader任務(wù)完成,退場(chǎng)。
操作系統(tǒng)安裝時(shí)會(huì)執(zhí)行一個(gè)命令,安裝程序完成后自動(dòng)運(yùn)行腳本,收集操作系統(tǒng)運(yùn)行需要的腳本,將所需要的模塊打包成initrd,幫助內(nèi)核完成初始化
initrd: ram disk,內(nèi)核將之作為根來(lái)使用,將硬盤模擬成磁盤
5.initrd將所需文件復(fù)制到/下,內(nèi)核完成初始化后進(jìn)行根切換
6.啟動(dòng)/sbin/init,由內(nèi)核空間進(jìn)入用戶空間
/lib/modules
/sbin/init:
/etc/inittab
id:3:initdefault:
/etc/rc.d/rc.sysinit腳本
運(yùn)行級(jí)別:
0:關(guān)閉所有服務(wù),切斷電源。效果等同于關(guān)機(jī)
1:?jiǎn)斡脩裟J剑褐苯右詒oot身份登錄。破解管理員密碼?
2:多用戶模式:不支持NFS
3:多用戶模式:文本模式,不啟動(dòng)圖形界面
4:預(yù)留級(jí)別
5:多用戶模式:圖形模式
6:重啟
/sbin/init的配置文件
每行定義一種模式:
id:操作的ID
runlevels:在哪些級(jí)別下操作此操作
action:
initdefault:設(shè)置運(yùn)行級(jí)別,無(wú)需定義操作
sysinit:指定系統(tǒng)初始化運(yùn)行腳本
si::sysinit:/etc/rc.d/rc.sysinit
wait:等待系統(tǒng)切換至此級(jí)別時(shí)運(yùn)行一次
ctrlaltdel:定義組合鍵被按下時(shí)運(yùn)行的命令
respawn:當(dāng)操作系統(tǒng)進(jìn)程被關(guān)閉時(shí)立即再啟動(dòng)一次
process:
/etc/inittab中定義的操作:
設(shè)定默認(rèn)運(yùn)行級(jí)別
指定系統(tǒng)運(yùn)行的初始腳本
啟動(dòng)指定級(jí)別下要啟動(dòng)的服務(wù),并關(guān)閉需要停止的服務(wù)
定義CtrlAltDel組合鍵的動(dòng)作
啟動(dòng)圖形終端
init要完成的任務(wù):
設(shè)定默認(rèn)運(yùn)行級(jí)別
指定系統(tǒng)運(yùn)行的初始腳本
啟動(dòng)指定級(jí)別下要啟動(dòng)的服務(wù),并關(guān)閉需要停止的服務(wù)
/etc/init.d
/etc/rc.d/rcN.d (0-6)
S##
K##
定義CtrlAltDel組合鍵的動(dòng)作
初始化字符終端
終端:對(duì)應(yīng)的設(shè)備
/dev/tty#,/dev/ttyS#,/dev/console,/dev/pts#
login-->/etc/issue
啟動(dòng)圖形終端
X-Window,桌面管理器
系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit
設(shè)置主機(jī)名
激活SFELinux和Udev
激活swap
掛載/ etc/fstab定義的本地系統(tǒng)
檢測(cè)根文件系統(tǒng)并對(duì)其以讀寫方式重新掛載
設(shè)置系統(tǒng)時(shí)鐘
根據(jù)/etc/sysctl.conf設(shè)置內(nèi)核參數(shù)
激活RAID和LVM設(shè)備
清理操作
總結(jié)
以上是生活随笔為你收集整理的Linux系统初始化流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaSE08——常用类
- 下一篇: 真心话问什么问题大全全集100个