Linux 系統啟動與 GRUB2 核心操作指南
Linux 系統的啟動過程是一個環環相扣的鏈條,從硬件自檢到用戶登錄,每一步都依賴關鍵組件的協作。其中,GRUB2 引導器和systemd 進程是核心樞紐,而運行級別則決定了系統的啟動狀態。以下是系統啟動流程、關鍵配置及故障處理的詳細解析
一、Linux 系統啟動全流程
系統啟動從硬件通電到登錄界面出現,可分為 8 個關鍵步驟,層層遞進:
- 開機自檢(POST)
計算機通電后,BIOS/UEFI 會對 CPU、內存、硬盤等硬件進行檢測,確保硬件正常工作。檢測通過后,定位啟動設備(如硬盤) - MBR 引導
從啟動設備的MBR(主引導記錄) 中讀取引導程序 GRUB2(MBR 位于硬盤第一個扇區,僅 512 字節)。 - GRUB2 菜單加載
GRUB2 讀取配置文件/boot/grub2/grub.cfg
,解析內容并顯示引導菜單(如多系統選擇、內核版本選擇) - 加載 Linux 內核
用戶選擇內核后,GRUB2 將內核文件(如/boot/vmlinuz-xxx
)和初始化內存盤(/boot/initramfs-xxx.img
)載入內存 - 內核初始化
內核接管系統控制權,完成內存分配、進程調度、驅動加載等基礎環境搭建,為后續進程運行鋪路 - 啟動 systemd 進程
內核初始化完成后,啟動系統第一個進程systemd(進程號為 1),它是所有后續進程的父進程 - 設置運行級別
systemd 讀取/etc/systemd/system/default.target
文件,確定系統默認運行級別,并啟動對應級別的服務(如網絡、圖形界面) - 進入登錄界面
所有服務啟動完成后,系統彈出登錄界面,等待用戶輸入賬號密碼
二、運行級別:系統狀態的 “開關”
運行級別定義了系統啟動后的狀態,通過對應的 target 文件控制。傳統的 0-6 級別與 systemd 的 target 對應關系如下:
運行級別 | 對應 target | 描述 |
---|---|---|
0 | poweroff.target | 關機 |
1 | rescue.target | 單用戶模式(無網絡,用于修復) |
2 | multi-user.target | 多用戶模式(無網絡,較少使用) |
3 | multi-user.target | 完全多用戶模式(命令行界面,有網絡) |
4 | (保留) | 未定義,可自定義(保留) |
5 | graphical.target | 圖形化界面(含命令行功能) |
6 | reboot.target | 重啟 |
常用操作命令:
- 查看當前默認運行級別:
systemctl get-default
- 設置默認運行級別(如命令行):
systemctl set-default multi-user.target
- 臨時切換到圖形界面(不改變默認):
systemctl isolate graphical.target
三、GRUB2 引導器:啟動的 “總開關”
GRUB2 是系統啟動的關鍵引導程序,負責加載內核。以下是其核心配置與維護操作:
-
生成 GRUB2 配置文件
當內核更新或引導菜單需要修改時,需重新生成grub.cfg
:grub2-mkconfig -o /boot/grub2/grub.cfg # 推薦方式,直接寫入配置文件 # 或 grub2-mkconfig > /boot/grub2/grub.cfg
-
GRUB2 加密:防止未授權修改
為避免他人通過 GRUB2 菜單篡改系統(如破解密碼),可對 GRUB2 加密:-
明文加密(簡單但密碼可見):
編輯/etc/grub.d/00_header
,添加:cat << EOF set superusers="zhangsan" # 定義管理員用戶 password zhangsan 123456 # 用戶名+密碼(明文) EOF
生成配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
-
密文加密(更安全):
先生成密文密碼:grub2-mkpasswd-pbkdf2 # 輸入密碼后,復制輸出的密文(不含空格)
編輯
/etc/grub.d/00_header
,添加:cat << EOF set superusers="tom" # 管理員用戶 password_pbkdf2 tom 復制的密文 # 密文密碼 EOF
生成配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
-
四、應急處理:破解 root 密碼與修復 GRUB2
系統故障時,需掌握關鍵修復技巧:
-
破解 root 密碼(忘記密碼時):
-
重啟系統,在 GRUB2 菜單按
e
進入編輯模式; -
找到內核行(以
linux16
或linux
開頭),末尾添加rd.break
,按Ctrl+X
啟動; -
進入偽系統,重新掛載根目錄為讀寫模式:
mount -o remount,rw /sysroot
-
切換到真實系統環境:
chroot /sysroot
; -
修改 root 密碼:
passwd root # 手動輸入新密碼 # 或 echo "新密碼" | passwd --stdin root # 非交互式設置
-
修復 SELinux 標簽(避免權限問題):
touch /.autorelabel
; -
退出并重啟:
exit
(兩次,第一次退出 chroot,第二次重啟系統)
-
-
修復 GRUB2 引導器(誤刪 GRUB2 目錄時):
-
重新安裝 GRUB2 到硬盤(以/dev/sda為例):
grub2-install /dev/sda
-
生成配置文件恢復菜單:
grub2-mkconfig -o /boot/grub2/grub.cfg
-
-
修復 /boot 目錄(內核文件丟失時):
-
進入救援模式(從安裝盤啟動,選擇 “Rescue a Linux system”);
-
掛載系統根目錄到
/mnt/sysroot
,并切換到該環境:chroot /mnt/sysroot
; -
掛載安裝光盤(提供內核包):
mount /dev/cdrom /mnt
; -
重新安裝內核(需替換為實際內核版本):
rpm -ivh /mnt/Packages/kernel-3.10.0-xxx.rpm --force
-
恢復 GRUB2(同上述 “修復 GRUB2” 步驟);
-
退出并重啟:
exit
(兩次)
-
總結:啟動流程與核心操作要點
Linux 啟動的核心邏輯是 “硬件自檢→引導程序→內核→初始化進程→服務啟動”,其中GRUB2和systemd是兩大關鍵組件。掌握運行級別的切換、GRUB2 的配置與加密、以及應急修復(如破解密碼、恢復引導器),能有效應對系統啟動故障。記住:配置修改后及時生成 GRUB2 配置文件,是避免引導失敗的關鍵習慣