Linux 系统启动与 GRUB2 核心操作指南
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 配置文件,是避免引导失败的关键习惯