Linux系統啟動流程詳解

2021-08-20 16:37:57 字數 2253 閱讀 1233

以下是centos6的啟動流程

linux系統啟動的大體流程,可以概括為:

post –> bios –> grub –> kernel –> init

post(加電自檢)

linux系統在接通電源後,首先系統會啟動post加電自檢程式來對內部的各個配件進行自檢,

若在自檢的過程中發現錯誤,這可能會出現以下兩種情況:

1.若出現的嚴重錯誤,則系統會停機,無法開啟

2.如果是普通錯誤,則系統會發出警報提示或聲音提示,使用者可根據相關提示判斷錯誤型別

bios(基本輸入輸出系統)

加電自檢過後,系統會進入bios階段,此階段系統會啟動boot sequence 來查詢各引導裝置,

當查到第乙個有引導程式的裝置時,改裝置即為本次啟動要用到的裝置.

隨後bios會讀取改引導裝置的mbr來進行系統啟動的下一階段.

mbr通常為硬碟的第乙個扇區

大小為512位元組

前446個位元組為bootloader

接著64個位元組為分割槽表

剩下2個位元組為結束標識

grub(多重作業系統啟動管理器)

bios讀取mbr後,系統來到了grub啟動引導階段.

grub引導階段大致分為三個階段

1. 1st stage: 啟動boot loader來載入2nd stage的內容至記憶體中

2. 1.5 stage: 位於mbr的分割槽表中,能夠之別出2nd stage所在分割槽上的檔案系統

3. 2nd stage: 讀取配置檔案/etc/grub/grub.conf,該檔案為grub啟動提供了選單及載入的kernel位置,當kernel被成功載入到記憶體中時,系統進入到kernel啟動階段

kernel(核心)

當系統啟動過後來到kernel階段,kernel為linux系統的核心程式.

進入kernel階段後,系統會先探測可識別的所有硬體裝置

隨後系統會載入硬體驅動程式,並生成乙個臨時唯讀rootfs系統

在執行了臨時的rootfs系統後,系統將開始執行第乙個初始化程式

centos6 的初始化程式為: /sbin/init

centos7 的初始化程式為: systemd

tisp: rootfs系統是initrd檔案生成的,該檔案在grup階段的2nd stage時被複製進記憶體,該檔案包含了必要的驅動模組,當掛載了真正的rootfs檔案後,initrd才會從記憶體中被移除.

init(初始化)

到了這個階段,系統開始進行完成啟動前的初始化操作,其實際上是根據/etc/inittab的設定進行指令碼執行.

第乙個執行的指令碼為/ect/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. 清理過期的鎖和程序檔案

執行完成後,根據配置/etc/inittab檔案中定義啟動級別執行對應級別的目錄下的指令碼,

最後執行/etc/rc.d/rc.local指令碼檔案完成系統啟動

runlevel執行級別,不同的執行級別對應的執行級別的服務不一樣,init程式會根據相應的級別去執行相應目錄下的指令碼.

linux的啟動級別分別為:

以上對應目錄包含著各種以k和s開頭的指令碼

k*:要停止的服務;k##*,優先順序,數字越小,越是優先關閉;依賴的服務先關閉,而後關閉被依賴的;

s*:要啟動的服務;s##*,優先順序,數字越小,越是優先啟動;被依賴的服務先啟動,而依賴的服務後啟動;

linux系統啟動流程詳解

linux系統啟動流程詳解 對系統的流程先有乙個大概的了解 開電源 bios自檢 啟動裝置 磁碟 oru盤or光碟機 引導程式 lilo或grub 核心 init程式 rc.sysinit和 rc mingetty 終端登入 shell.現在分為四個階段來講述 第一階段 bios啟動引導階段實現硬體...

Linux系統啟動流程

這是看linuxcast的筆記 linux系統啟動 使用grub引導 順序是 bios通電自檢,並找到512位元組的mbr 是grub引導的第一階段 把控制權交給mbr grub分兩個階段引導系統 第一階段mbr中的主引導引導程式加次引導載程式 第二階段次引導引導程式載入核心映像 核心映像建立進第乙...

Linux系統啟動流程

載入 bios 的硬體資訊與進行自我測試,並依據配置取得第乙個可啟動的裝置 讀取並執行第乙個啟動裝置內 mbr 的 boot loader 亦即是 grub,spfdisk 等程式 依據 boot loader 的配置載入 kernel kernel 會開始偵測硬體與載入驅動程式 在硬體驅動成功後,...