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