CentOS開機流程:
POST--Boot sequence--Boot loader---Kernel(Ramdisk)---rootfs---switch-------/sbin/init
POST:加電
計算機加電後,CPU到ROM上尋找代碼,並且這個過程掃描計算機的硬件。如果一切正常,進入下一步
Boot sequence:選擇分區引導
ROM上存放著BIOS(Boot Input/Output System),根據對BIOS的設置,引導第一各有引導程序的設備啟動它。
Boot loader:引導加載器
存在磁盤的第一個扇區上存放著MBR(Master Boot Record字節)占據著512字節,其中前面446字節存放著Boot loader.在Linux下Boot loader常用的是Grub,
Grub采用的工作模式是:
1 stage:bootload,加載到2stage .
1.5 stage :位於mbr之後的扇區,提供了文件系統驅動 2nd:位於/boot/grub下,加載內核。
2 stage:位於/boot/grub
Kernel:內核加載
Kernel是單核設計,把所有功能集成於一個程序。
Kernel被加載到內存後展開,在ramdisk的幫助下訪問文件系統
內核展開後進行自身初始化:
1.檢測所有可以識別得到的硬件設備(有可能借助於ramdisk)
2.加載硬件的驅動
3.以只讀的方式掛載文件系統
4.運行/sbin/init
/sbin/init:啟動init完成最後工作
1.init調用其配置文件/etc/inittable
[root@localhost rc3.d]# tail -10 /etc/inittab
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
0:關機shutdown
1:單用戶模式 single user root用戶,無需認證,維護模式;
2.多用戶模式(multi user),會啟動網絡功能,但不會啟動NFS維護模式
3.多用戶模式,完全功能模式,文本界面
4:預留模式:目前無特別使用目的,但習慣以同3級別功能使用
5.多用戶模式,完全功能模式,圖形界面
6.重啟,reboot
模式進行切換: init # (0-6)
2.進行系統初始化 /etc/rc.d/rc.sysinit
(1) 設置主機名;
(2) 設置歡迎信息;
(3) 激活udev和selinux;
(4) 掛載/etc/fstab文件中定義的所有文件系統;
(5) 檢測根文件系統,並以讀寫方式重新掛載根文件系統;之前是只讀
(6) 設置系統時鐘; 通過讀取硬件時鐘實現
(7) 根據/etc/sysctl.conf文件來設置內核參數;
(8) 激活lvm及軟raid設備;
(9) 激活swap設備;
(10) 加載額外設備的驅動程序;有些沒有加載
(11) 清理操作; 清除臨時文件等
3.停止,關閉對應級別服務
接受一個運行級別數字(0-6)。啟動或關閉/etc/rc.d/ 目錄下的服務腳本所控制服務;
K* 表示要停止的服務,數字越小需要越先關閉
S* 表示要開啟的服務,數字越小越快啟動。
4.開啟字符串終端
http://xxxxxx/Linuxjc/1134186.html TechArticle