Linux開機流程
如下圖
- 00×01、BISO自檢
硬件檢查,檢查硬件完整性,之后從開機BIOS開機硬件列表選擇BOOT設備
2. 00×02、MBR引導
從bootloader446字節(只會讀取一個硬盤的MBR),讀取引導程序,讀取分區表4*16字節,從MBR后一部
分扇讀取數據,進入GRUBstage1.5,在這部分扇區尋找 文件系統驅動識別/boot分區
3. 00×03、GRUB
進入GRUBstage2階段,讀取GRUB配置文件grub.conf,確定root文件系統對應的磁盤分區,讀取/initrd
(ramfs).-version.img內核鏡像文件位置,加載內核模塊
4. 00×4、加載kernal
加載kernal,探測硬件設備,確定硬件設備類型,從initrd/ramfs中加載對應的驅動,以只讀readonly的方式
掛載rootfs,啟動第一個用戶空間進程/sbin/init(cet6為upstart名字依舊叫init)
5. 00×5、執行/sbin/init(用戶空間第一個進程)
A、 讀取/etc/inittab
inittab中定義了系統啟動級別:0關機1單用戶2無NFS的多用戶文本界面3多用戶文本界面4未啟用5圖形界面
6. 重啟
id:3:initdefault:
- 每一行定義一種action以及與之對應的process
id:runlevel:action:process action: wait: 切換至此級別運行一次 respawn:此process終止,就重新啟動之 initdefault:設定默認運行級別; process省略 sysinit:設定系統初始化方式,此處一般為指定 /etc/rc.d/rc.sysinit ca::ctrlaltdel:/sbin/shutdown -t3 -r now id:3:initdefault: si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1... l6:6:wait:/etc/rc.d/rc 6
B、/etc/rc.d/sysinit 系統初始化腳本
(1) 設置主機名
(2) 設置歡迎信息
(3) 激活udev和selinux
(4) 掛載/etc/fstab文件中定義的文件系統
(5) 檢測根文件系統,并以讀寫方式重新掛載根文件系統
(6) 設置系統時鐘
(7) 激活swap設備
(8) 根據/etc/sysctl.conf文件設置內核參數
(9) 激活lvm及software raid設備
(10) 加載額外設備的驅動程序
(11) 清理操作
C、根據啟動級別啟動/etc/rc.d/rc{0..6}.d/*服務腳本下指定的腳本
rc N –> 意味著讀取/etc/rc.d/rcN.d/
K*: K##*: ##運行次序;數字越小,越先運行;數字
越小的服務,通常為依賴到別的服務
S*: S##*: ##運行次序;數字越小,越先運行;數字
越小的服務,通常為被依賴到的服務
for srv in /etc/rc.d/rcN.d/K*; do $srv stop done for srv in /etc/rc.d/rcN.d/S*; do $srv start done
D、getty(mingetty) /bin/login shell
當我們看到mingetty的登錄界面時,我們就可以輸入用戶名和密碼來登錄系統了。
Linux的賬號驗證程序是login,login會接收mingetty傳來的用戶名作為用戶名參數。然后
login會對用戶名進行分析:如果用戶名不是root,且存在/etc/nologin文件,login將輸出
nologin文件的內容,然后退出。這通常用來系統維護時防止非root用戶登錄。只有/etc/securetty中登記了的終端才允許root用戶登錄,如果不存在這個文件,則root可以
在任何終端上登錄。
/etc/usertty文件用于對用戶作出附加訪問限制,如果不存在這個文件,
則沒有其他限制。
在分析完用戶名后,login將搜索/etc/passwd以及/etc/shadow來驗證密碼以及設置賬戶
的其它信息,比如:主目錄是什么、使用何種shell。如果沒有指定主目錄,將默認為根目
錄;如果沒有指定shell,將默認為/bin/bash。
login程序成功后,會向對應的終端在輸出最近一次登錄的信息(在/var/log/lastlog中有
記錄),并檢查用戶是否有新郵件(在/usr/spool/mail/的對應用戶名目錄下)。然后開始設置
各種環境變量:對于bash來說,系統首先尋找/etc/profile腳本文件,并執行它;然后如果用
戶的主目錄中存在.bash_profile文件,就執行它,在這些文件中又可能調用了其它配置文
件,所有的配置文件執行后后,各種環境變量也設好了,這時會出現大家熟悉的命令行提示
符,到此整個啟動過程就結束了。
原創文章,作者:Az2h1丶,如若轉載,請注明出處:http://www.www58058.com/79551