Linux系統啟動流程

2021-06-18 01:13:32 字數 2125 閱讀 5558

這是看linuxcast的筆記

linux系統啟動(使用grub引導)順序是

bios通電自檢,並找到512位元組的mbr(是grub引導的第一階段),把控制權交給mbr

grub分兩個階段引導系統

第一階段mbr中的主引導引導程式加次引導載程式

第二階段次引導引導程式載入核心映像

核心映像建立進第乙個程序(init程序),初始化系統的服務

接下來我們詳細介紹各個過程

bios(basic input output system). 計算機啟動的時候第乙個執行的就是bios, bios負責檢查硬體並且查詢可啟動的裝置

常見啟動裝置在bios設定中進行定義,如usb,cdrom.. 在找到啟動裝置後,bios就把控制權交給啟動裝置的主引導程式。

grub分兩個階段來引導核心

第一階段主要由mbr中的主引導程式完成的,這裡我們先介紹一下mbr

mbr(master boot record)即主引導記錄, 又叫做主引導扇區. 它共有512位元組,主要功能是查詢並載入次引導引導程式(第二階段).

由三部分組成:

在第一階段後,mbr可以直接進入第2階段.但也可以在進行第2階段之前,載入乙個程式用來理解linux核心的特殊檔案系統.

載入對檔案系統的支援檔案,在centos下, /boot/*_stage1_5 就是各種檔案的支援,mbr根據配置來載入檔案系統支援

進入第2階段後,它後根據grub的配置檔案,呈現乙個介面區來讓使用者選擇啟動的作業系統

grub的配置檔案和位置系統的不同而不同.在centos中,grub的配置檔案是在 /boot/grub/grub.conf中,下面讓我們來仔細研究一下grub.conf

以下是centos的grub.conf(去掉前面的一些注釋)

default=0 # 採用預設的0配置

timeout=5 # 開機的時候等待幾秒讓你選擇

splashimage=(hd0,0)/boot/grub/splash.xpm.gz #引導介面的背景

hiddenmenu #預設隱藏選單欄

title centos (2.6.32-279.el6.x86_64) #啟動項的標題

root (hd0,0) #作業系統所在的分割槽

#以下是要啟動的核心的配置

kernel /boot/vmlinuz-2.6.32-279.el6.x86_64 ro root=uuid=887b0b9e-449b-414e-a11d-cd94093e3fe1 rd_no_luks keyboardtype=pc keytable=us lang=en_us.utf-8 console=tty0 console=ttys0,9600n8 rd_no_md sysfont=latarcyrheb-sun16 crashkernel=auto rd_no_lvm rd_no_dm rhgb quiet

#以下是核心模組

initrd /boot/initramfs-2.6.32-279.el6.x86_64.img

我們可以通過修改grub.conf來配置啟動項, 我們可以通過dmesg來檢視本次啟動的資訊

在kernel啟動後就建立了linux系統中執行的第乙個程序init

init是linux系統中執行的第乙個程序,是linux所有程序的程序,它的pid是1

init負責呼叫/etc/rc.d/rc.sysinit負責對系統進行初始化,持載檔案系統,並且根據執行級別來啟動相應的服務

執行級別

特點及功能0關機

1單使用者模式

2不帶網路的多使用者模式

3多使用者模式

4未使用

5x11圖形化模式6重啟

以下是init的一些知識點

可以通過在啟動進入grub的介面時,編輯grub來進行單使用者模式,具體步驟如下

開機時編輯grub,為核心傳遞引數"l"或者"single"

單使用者直接以root使用者登陸

用password修改root密碼

grub加密是為了,讓有許可權的人編輯grub,具體步驟如下

用grub-md5-crypt生成密文

通過在grub. conf上的啟動配置下加入如下引數即可以對grub進行加密

password --md5 你生成的密文

Linux系統啟動流程

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

linux系統啟動流程

核心空間啟動主要流程 1 init main.c start kernel 2 init main.c rest init 3 init main.c kernel init 4 init main.c init post 核心至使用者空間啟動主要流程 openwrt使用者空間啟動主要流程 1 et...

Linux系統啟動流程

從上至下為 bios mbr boot code 執行引導程式 grub 作業系統 載入核心 執行init run level 1.bios basic input output system 基本輸入輸出系統,一般儲存在主機板上的bios的晶元中,負責檢查硬體 查詢可啟動裝置 2.mbr bios...