Linux 系统启动与 GRUB2 核心操作指南

发布于:2025-07-30 ⋅ 阅读:(12) ⋅ 点赞:(0)

Linux 系统启动与 GRUB2 核心操作指南

Linux 系统的启动过程是一个环环相扣的链条,从硬件自检到用户登录,每一步都依赖关键组件的协作。其中,GRUB2 引导器systemd 进程是核心枢纽,而运行级别则决定了系统的启动状态。以下是系统启动流程、关键配置及故障处理的详细解析

一、Linux 系统启动全流程

系统启动从硬件通电到登录界面出现,可分为 8 个关键步骤,层层递进:

  1. 开机自检(POST)
    计算机通电后,BIOS/UEFI 会对 CPU、内存、硬盘等硬件进行检测,确保硬件正常工作。检测通过后,定位启动设备(如硬盘)
  2. MBR 引导
    从启动设备的MBR(主引导记录) 中读取引导程序 GRUB2(MBR 位于硬盘第一个扇区,仅 512 字节)。
  3. GRUB2 菜单加载
    GRUB2 读取配置文件/boot/grub2/grub.cfg,解析内容并显示引导菜单(如多系统选择、内核版本选择)
  4. 加载 Linux 内核
    用户选择内核后,GRUB2 将内核文件(如/boot/vmlinuz-xxx)和初始化内存盘(/boot/initramfs-xxx.img)载入内存
  5. 内核初始化
    内核接管系统控制权,完成内存分配、进程调度、驱动加载等基础环境搭建,为后续进程运行铺路
  6. 启动 systemd 进程
    内核初始化完成后,启动系统第一个进程systemd(进程号为 1),它是所有后续进程的父进程
  7. 设置运行级别
    systemd 读取/etc/systemd/system/default.target文件,确定系统默认运行级别,并启动对应级别的服务(如网络、图形界面)
  8. 进入登录界面
    所有服务启动完成后,系统弹出登录界面,等待用户输入账号密码
二、运行级别:系统状态的 “开关”

运行级别定义了系统启动后的状态,通过对应的 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 是系统启动的关键引导程序,负责加载内核。以下是其核心配置与维护操作:

  1. 生成 GRUB2 配置文件
    当内核更新或引导菜单需要修改时,需重新生成grub.cfg

    grub2-mkconfig -o /boot/grub2/grub.cfg  # 推荐方式,直接写入配置文件
    # 或 grub2-mkconfig > /boot/grub2/grub.cfg
    
  2. 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

系统故障时,需掌握关键修复技巧:

  1. 破解 root 密码(忘记密码时):

    1. 重启系统,在 GRUB2 菜单按e进入编辑模式;

    2. 找到内核行(以linux16linux开头),末尾添加rd.break,按Ctrl+X启动;

    3. 进入伪系统,重新挂载根目录为读写模式:

      mount -o remount,rw /sysroot
      
    4. 切换到真实系统环境:chroot /sysroot

    5. 修改 root 密码:

      passwd root  # 手动输入新密码
      # 或 echo "新密码" | passwd --stdin root  # 非交互式设置
      
    6. 修复 SELinux 标签(避免权限问题):touch /.autorelabel

    7. 退出并重启:exit(两次,第一次退出 chroot,第二次重启系统)

  2. 修复 GRUB2 引导器(误删 GRUB2 目录时):

    1. 重新安装 GRUB2 到硬盘(以/dev/sda为例):

      grub2-install /dev/sda
      
    2. 生成配置文件恢复菜单:

      grub2-mkconfig -o /boot/grub2/grub.cfg
      
  3. 修复 /boot 目录(内核文件丢失时):

    1. 进入救援模式(从安装盘启动,选择 “Rescue a Linux system”);

    2. 挂载系统根目录到/mnt/sysroot,并切换到该环境:chroot /mnt/sysroot

    3. 挂载安装光盘(提供内核包):mount /dev/cdrom /mnt

    4. 重新安装内核(需替换为实际内核版本):

      rpm -ivh /mnt/Packages/kernel-3.10.0-xxx.rpm --force
      
    5. 恢复 GRUB2(同上述 “修复 GRUB2” 步骤);

    6. 退出并重启:exit(两次)

总结:启动流程与核心操作要点

Linux 启动的核心逻辑是 “硬件自检→引导程序→内核→初始化进程→服务启动”,其中GRUB2systemd是两大关键组件。掌握运行级别的切换、GRUB2 的配置与加密、以及应急修复(如破解密码、恢复引导器),能有效应对系统启动故障。记住:配置修改后及时生成 GRUB2 配置文件,是避免引导失败的关键习惯


网站公告

今日签到

点亮在社区的每一天
去签到