Linux引導流程解析
1、系統引導流程
韌體firmware (CMOS/BIOS) POST加電自檢
自舉程式BootLoader (GRUB) 載入核心
載入核心Kernel 驅動硬體
啟動進程init
讀取執行設定檔/etc/inittab
常用的韌體設定
安全設定
可引導介質列表
可引導介質搜尋順序
電源管理
啟動細節顯示
Linux中如果一個進程的父進程結束,而該進程由於某種原因沒有結束,則被系統發現後自動將該進程指向init進程。所以理論上init進程是所有進程的父進程。
如果子進程結束,而父進程不知。則該子進程編程殭屍進程。
id:run-levels:action:process
grep -v 表示排除檔案中包含何種字元
例如grep -v "^#" /etc/inittab | more
分頁顯示,inittab中行首有#的不顯示
id:標識符,一般為兩位字母或數字 可理解為行為的編號
run-levels:指定運行層級,可指定多個 可理解為方式
action:指定運行狀態 可理解為在哪裡
process:指定要啟動並執行指令碼/命令 可理解為行為
前面三項都是為process做設定
指令碼/etc/rc.d/rc.sysinit
環境變數的載入,組建記錄檔資訊等都是通過這個指令碼來進行
如果希望某個命令每次開機都執行,可以把它加到/etc/rc.d/rc/sysinit檔案的末尾,每個運行層級都會執行
指令碼/etc/rc.d/rc
對應每個運行層級需要啟動的服務。完成後續的啟動。
由initdefault決定
目錄/erc/rc.d/rcn.d
[root@lovelock frost]# ls -l /etc/rc.d/rc3.d
total 0
lrwxrwxrwx. 1 root root 16 Aug 2 22:17 K01smartd -> ../init.d/smartd
lrwxrwxrwx. 1 root root 17 Aug 2 22:12 K02oddjobd -> ../init.d/oddjobd
lrwxrwxrwx. 1 root root 17 Aug 2 22:19 K05wdaemon -> ../init.d/wdaemon
lrwxrwxrwx. 1 root root 16 Aug 2 23:04 K10psacct -> ../init.d/psacct
lrwxrwxrwx. 1 root root 19 Aug 2 22:13 K10saslauthd -> ../init.d/saslauthd
lrwxrwxrwx. 1 root root 15 Aug 2 22:12 K15httpd -> ../init.d/httpd
lrwxrwxrwx. 1 root root 24 Aug 2 22:17 K30spice-vdagentd -> ../init.d/spice-vdagentd
例如:K15httpd
S-start 啟動項
K-kill 非啟動項
數字代表優先順序,小的先啟動
指令碼名稱httpd
複習:
firmware物理硬體加電自檢
|
Bootloader——grub
|
載入核心kernel
|
init
|
/etc/inittab
|
initdefault 判斷系統預設的運行層級
|
/etc/rc.d/rc.sysinit
|
/etc/rc.d/rc
|
/etc/rc.d/rcN.d N=0~6
|
username
|
password
兩個action,一個wait表示這個命令啟動完之後才繼續開啟其他命令
如果一個命令是開機自啟的,那麼它的action就是wait
powerfail:當出現電源錯誤時執行process指定的命令,不等待其結束
powerokwait:當店員恢複時執行process指定的命令
respawn:一旦process指定的命令終止,便重新運行該命令
本地終端tty在運行層級2345都可以用到,可以用來切換
設定自啟動程式:
ln -s
chkconfig
ntsysv 只能更改系統預設安裝的命令
dmesg查看硬體有沒有被核心識別
grep sshd /var/log/messages
menu.lst
default=0 雙系統啟動時預設進入的系統
timeout=5 進入系統前等待時間,5s,沒有太大意義
splashimage=(hd0,0)/grub/splash.xpm.gz (hd0,0)代表第一個硬碟,是grub的特殊的表示方法,解析度是640*480,色深14
title可以隨便改
root定義所有的開機檔案所在目錄,即/boot
kernel後面是核心所在位置 ro表示核心載入時是唯讀
initrd 載入鏡像檔案,系統引導過程中必要的鏡像檔案設定
案例:root密碼忘記
進入單一使用者模式重新設定root密碼,開機進入grub介面,按e進入編輯模式,選中kernel行,再次按e鍵,在新的介面的最後一行輸入1或s即可進入單一使用者模式
e:編輯當前的啟動項菜單 edit
c:進入grub的命令列方式 command
b:啟動當前的功能表項目 boot
d:刪除當前行 delete
任何的作業系統如果能讓人坐在電腦前都是不安全的,都可以破解。所以伺服器是放在機房的。
grub引導流程其實很簡單,如果能很系統的學習一下網上的那些問題就都不會存在。
grub設定密碼,加密
#grub-md5-crypt
或者grub
grub>md5crypt
如果重要的系統檔案丟失就可以用光碟片進入修複模式