centos6,7的啟動流程
CentOS 6 系統啟動流程:
POST --> BootSequence(BIOS) --> Bootloader --> kernel [-->ramfs] -->rootfs(ro) --> /sbin/init --> 設定默認運行級別 --> 系統初始化 --> 可以並行執行ctrl+alt+del熱鍵功能定義,系統服務的開啟和關閉,電源管理,dbus管理等 --> 登錄提示符
CentOS 7:
Init程序:systemd,與經典的Init程序完全不同;其配置文件:
/etc/systemd/system/*
/usr/lib/systemd/system/*:systemd的UNIT文件;
/etc/inittab:徹底被廢棄;
systemd完全兼容SysV風格的Init程序及其腳本;因此,service類的命令在CentOS7中依然可用;但是,建議使用CentOS7標配的systemctl命令來控制和管理系統服務;
systemctl命令:
systemctl - Control the systemd system and service manager
systemctl [OPTIONS...] COMMAND [NAME...]
使用systemctl管理服務的一般方式:
systemctl {start|stop|restart|status} name[.service]
設置CentOS 7的默認運行級別:
~]# systemctl set-default {multi-user.target | graphical.target}
查看CentOS 7的默認運行級別:
~]# systemctl get-default
系統初始化流程(內核級別)
POST --> BootSequence(BIOS) --> BootLoader(MBR) --> kernel(內核核心文件只能放置在基本分區上) [--> ramdisk] --> rootfs(read-only) --> /sbin/init
CentOS 5的SysV Init的工作過程:
CentOS 5 SysV Init:
運行級別(run level):為了系統的運行或維護等目的而設置的管理機制;
0-6 : 七個運行級別;
# 0 - 關機,halt,shutdown
# 1 - 單用戶模式(Single user mode),root,無需驗證;維護模式;
# 2 - 多用戶模式(Multiuser),會啟動網絡功能;但不會啟動NFS,維護模式;
# 3 - 多用戶模式(Full multiuser mode),完全的功能模式,僅使用CLI,不激活GUI;
# 4 - 預留級別,目前無特別使用的目的;但是習慣上認為與3運行級別相同;
# 5 - 多用戶模式(Full multiuser mode),完全的功能模式,默認激活GUI和CLI,默認使用的是GUI;
# 6 - 重啟,reboot
通常會使用3,5運行級別作為此次系統啟動的默認運行級別;
查看當前系統的運行級別:
who -r
runlevel
切換運行級別:
init [0-6]
Init的配置文件:/etc/inittab,此配置文件有如下功能:
1.在整個系統初始化的過程中要做哪些任務;
啟動或關閉哪些後臺服務;
如何進行系統初始化;
在驗證用戶的身份無誤之後,如何為用戶提供登錄提示符,還要區分是圖形界面還是文件界面;
當備用電源失效或重新生效時,如何指揮系統操作;
定義了按下"Ctrl + Alt + Delete"組合鍵時,系統將采取什麽行為;
2.所有規定的任務如何執行;
每一行定義一種操作,格式如下:
id:runlevels:action:process
id:一種操作的唯一標識符;
l#, id, pf, pr, #, x,
runlevel:指定任務執行所依賴的運行級別;
####, #, 留空
action:在何種條件下啟動此任務;
wait:等待切換至此任務所在的運行級別時,運行一次;
respawn:一旦此任務結束,就自動重新啟動此任務;
initdefault:用於設定默認的運行級別,通常後面的process省略
sysinit:設置系統初始化的方式,一般情況下此處運行/etc/rc.d/rc.sysinit腳本;
powerfail:
powerokwait:
ctrlaltdel:
/etc/rc.d/rc.sysinit:
1.設置主機名稱;
2.設置啟動的歡迎信息;
3.激活udev和SELinux
4.掛載/etc/fstab文件中定義的所有有效文件系統;
5.激活各個swap設備;
6.檢測rootfs,並且以讀寫的方式重新掛載rootfs;
7.設置系統時間;
8.根據/etc/sysctl.conf文件設置內核參數;
9.激活lvm和軟RAID等高級邏輯設備;
10.加載額外的設備的驅動程序;
11.完成清理工作;
/etc/rc.d/rc:
根據特定的運行級別,啟動或關閉/etc/rc.d/rc$runlevel.d/*
K*:要停止的服務;K字母後面的兩位數字表示優先級;數字越小優先級越高;依賴其他服務的服務應該優先關閉,被其他服務依賴的服務應該稍後關閉;
S*:要啟動的服務;S字母後面的兩位數字表示優先級;數字越小優先級越高;被其他服務依賴的服務應該優先啟動,依賴其他服務的服務應該稍後啟動;
rc腳本可以接受一個運行級別作為其參數運行內容的;
腳本框架:
for i in /etc/rc.d/rc#.d/K* ; do
$i stop
done
for i in /etc/rc.d/rc#.d/S* ; do
$i start
done
所有由rc腳本關閉或啟動的鏈接文件的源文件都存在於/etc/rc.d/init.d,系統為了方便使用,為此目錄創建了鏈接/etc/init.d
所有/etc/init.d(/etc/rc.d/init.d)目錄中的腳本執行方式:
# /etc/init.d/SRV_SCRIPT {start|stop|restart|status}
# service SRV_SCRIPT {start|stop|restart|status}
chkconfig命令:
chkconfig - updates and queries runlevel information for system services
查看系統服務相關運行級別下的運行狀態:
chkconfig --list [name]
本文出自 “12481507” 博客,請務必保留此出處http://12491507.blog.51cto.com/12481507/1950546
centos6,7的啟動流程