Linux 引導過程 - 詳細描述的 6 個步驟
操作系統 (OS) 是管理資源、控制外圍設備并為其他軟件提供基本服務的低級軟件。在 Linux 中,典型的引導過程有 6 個不同的階段。
1. BIOS
BIOS 代表基本輸入/輸出系統。簡單來說,BIOS 加載并執行主引導記錄 (MBR) 引導加載程序。
首次打開計算機時,BIOS 首先對 HDD 或 SSD 執行一些完整性檢查。
然后,BIOS 搜索、加載并執行引導加載程序,該引導加載程序可以在主引導記錄 (MBR) 中找到。MBR 有時位于 USB 記憶棒或 CD-ROM 上,例如實時安裝的 Linux。
一旦檢測到引導加載程序,它就會被加載到內存中,BIOS 會將系統控制權交給它。
2.MBR
MBR 代表 Master Boot Record,負責加載和執行 GRUB 引導加載程序。
MBR 位于可引導磁盤的第一個扇區,通常為/dev/hda
或/dev/sda
,具體取決于您的硬件。MBR 還包含有關 GRUB 或非常舊系統中的 LILO 的信息。
3. 蠐螬
有時稱為 GNU GRUB,它是 GNU GRand Unified Bootloader 的縮寫,是大多數現代 Linux 系統的典型引導加載程序。
GRUB 啟動畫面通常是您在啟動計算機時看到的第一件事。它有一個簡單的菜單,您可以在其中選擇一些選項。如果您安裝了多個內核映像,則可以使用鍵盤選擇您希望系統啟動的那個。默認情況下,選擇最新的內核映像。
初始屏幕將等待幾秒鐘供您選擇和選項。如果不這樣做,它將加載默認內核映像。
/boot/grub/grub.conf
在許多系統中,您可以在或找到 GRUB 配置文件/etc/grub.conf
。這是一個簡單grub.conf
文件的示例:
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/
initrd /boot/initrd-2.6.18-194.el5PAE.img
4.內核
內核通常被稱為任何操作系統的核心,包括 Linux。它可以完全控制您系統中的所有內容。
在引導過程的這個階段,GRUB 選擇的內核首先掛載文件中指定的根文件系統grub.conf
。然后它執行/sbin/init
程序,該程序始終是第一個要執行的程序。您可以通過它的進程 ID (PID) 來確認這一點,它應該始終為 1。
然后內核使用初始 RAM 磁盤 (initrd) 建立一個臨時根文件系統,直到真正的文件系統被掛載。
5. 初始化
此時,您的系統執行運行級程序。有一次它會尋找一個 init 文件,該文件通常/etc/inittab
用于決定 Linux 運行級別。
現代 Linux 系統使用 systemd 來選擇運行級別。根據TecMint,這些是可用的運行級別:
運行級別 0與poweroff.target匹配(并且runlevel0.target是poweroff.target的符號鏈接)。
運行級別 1與rescue.target匹配(并且runlevel1.target是到rescue.target的符號鏈接)。
運行級別3 由multi-user.target模擬(并且runlevel3.target是指向multi-user.target的符號鏈接)。
運行級別 5由 graphics.target 模擬(并且runlevel5.target是到graphics.target的符號鏈接)。
運行級別 6由reboot.target模擬(并且runlevel6.target是reboot.target的符號鏈接)。
緊急情況與緊急情況匹配。目標。
systemd 然后將開始執行運行級程序。
6. 運行級程序
根據您安裝的 Linux 發行版,您可能會看到不同的服務正在啟動。例如,您可能會捕獲starting sendmail …. OK
.
這些被稱為運行級別程序,根據您的運行級別從不同的目錄執行。上述 6 個運行級別中的每一個都有自己的目錄:
- 運行級別 0 –
/etc/rc0.d/
- 運行級別 1 –
/etc/rc1.d/
- 運行級別 2 –
/etc/rc2.d/
- 運行級別 3 –
/etc/rc3.d/
- 運行級別 4 –
/etc/rc4.d/
- 運行級別 5 –
/etc/rc5.d/
- 運行級別 6 –
/etc/rc6.d/
請注意,這些目錄的確切位置因分布而異。
如果您查看不同的運行級別目錄,您會發現以“S”或“K”開頭的程序分別表示啟動和終止。啟動程序在系統啟動時執行,在關機時殺死程序。
這就是您需要了解的有關 Linux 引導過程的所有信息。現在走出去,讓Tux感到自豪。