Linux作業系統啟動流程與Grub的配置方法

2021-05-09 20:10:19 字數 2659 閱讀 5888

一、linux的啟動流程

1. 從bios到kernel

bios自檢->mbr(grub)->kernel->kernel自解壓->核心初始化->核心啟動

2. 核心啟動:建立1#程序並執行,由它建立若干核心執行緒(kernel thread),然後裝入並執行程式/sbin/init(變成乙個使用者程序)。此後,init根據/etc/inittab配置檔案來執行相應的指令碼進行系統初始化,如設定鍵盤、字型,裝載模組,設定網路等。

對於redhat來說,執行的順序為:

/etc/rc.d/rc.sysinit # 由init執行的第一指令碼

/etc/rc.d/rc $runlevel # init執行指定執行級別($runlevel為預設的執行模式)的各指令碼;

/etc/rc.d/rc.local #執行模式2、3、5時會執行的指令碼

/sbin/mingetty(或getty) # 等待使用者登入

/etc/inittab中指定了系統的執行級別(runlevel),init根據執行級別啟動相關的服務(一些後台程序),實現不同的功能。

runlevel值為:0-6

0:halt, 1:單使用者,2:多使用者,3:多使用者並啟動nfs服務

4:保留,5:執行xdm(x window)以圖形介面方式登入

6:reboot

3./etc/inittab檔案

/etc/inittab的檔案內容如下:

# 設定系統開機預設的runlevel:

id:3:initdefault:

# 開始進行runlevel的服務啟動前,使用來偵測與初始化系統環境的設定檔案:

si::sysinit:/etc/rc.d/rc.sysinit

# 7 個不同 run level 的,需要啟動的服務的 scripts 放置路徑:

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

# 是否允許按下 [ctrl]+[alt]+[del] 就重新開機的設定專案:

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# 本機端終端機啟動的個數:

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

# 在 x window (runlevel 5) 環境下的啟動 script 設定專案:

x:5:once:/etc/x11/prefdm -nodaemon

這個檔案的語法是這樣的:

識別符號:級別:init 的動作行為:指令專案

1. 識別符號:

最多四個字元,代表 init 的主要工作專案,只是乙個簡單的代表說明。

2. 級別:

該專案在哪些 run level 底下進行的意思。如果是 35 則代表 runlevel 3 與 5 都會執行。

3. init 的動作行為:

主要可以進行的動作專案意義有:

initdefault :代表預設的 run level 設定值;

sysinit :代表系統初始化的動作專案;

ctrlaltdel :代表 [ctrl]+[alt]+[del] 三個按鍵是否可以重新開機的設定;

wait :代表後面接的指令專案必須要執行完畢才能繼續後面的動作;

respawn :代表後面接的, init 仍會主動的『重新』啟動。

4. 指令專案:

亦即應該可以進行的指令,通常是一些 script 囉。

說明:如根據上面的檔案,init程式執行時根據/etc/inittab檔案的內容,完成以下功能

(1)獲取runlevel(檔案中的這一行 id:3:initdefault:)為3

(2)執行rc.sysinit(檔案中的這一行 si::sysinit:/etc/rc.d/rc.sysinit)

(3)執行/etc/rc.d/rc3.d目錄中的指令碼(檔案中的這一行 l3:3:wait:/etc/rc.d/rc 3,且因為本例runlevel為3)

(4)然後設定是否允許按下 [ctrl]+[alt]+[del] 就重新開機(檔案中的這一行 ca::ctrlaltdel:/sbin/shutdown -t3 -r now,當然如果不允許,可把此行注釋掉)

(5)啟動六個終端介面tty1-tty6

(6)最後如果我們使用的是 run level 5 ,那麼除了這六個終端機之外, init 還會執行/etc/x11/prefdm -nodaemon 其主要的功能就是在啟動 x window !

Linux作業系統啟動流程

1.載入biso 計算機電源加電質檢,首先載入基本輸入輸出系統 basic input output system,bios bios中包含硬體cpu 記憶體 硬碟等相關資訊,包含裝置自動順序資訊 硬碟資訊 記憶體資訊 時鐘資訊 即插即用特性等。載入完bios資訊,計算機將根據順序啟動 2.讀取mb...

Linux作業系統啟動流程

理解linux作業系統啟動流程,能有助於後期在企業中更好的維護linux伺服器,能快速定位系統問題,進而解決問題。上圖為linux作業系統啟動流程 載入bios 計算機電源加電質檢,首先載入基本輸入輸出系統 basic input output system,bios bios中包含硬體cpu 記憶...

Linux作業系統啟動的流程

1 系統啟 解 2 驅動步驟詳解 1 post加電質檢 接通電源後,系統進行的乙個自我檢查的例行程式。這個過程通常稱為post 上電自檢 power on self test 對系統的幾乎所有的硬體進行檢測。2 載入bios 計算機加電質檢,首先載入的是bios。blos包含了硬體cpu 記憶體 硬...