核心是先挂载根分区使原系统可访问,再chroot进入并重装内核:先用fdisk -l识别分区,挂载根、/boot及efi分区,绑定/dev/proc/sys后chroot,检查uname -r与/boot内核文件一致性,缺失则从安装介质rpm重装或dracut重建,最后grub2-install和grub2-mkconfig更新引导。

在救援模式下挂载根分区并修复损坏的内核,核心是先让原系统可访问,再重建缺失或错误的内核文件。整个过程不依赖原系统启动,而是通过外部环境(如安装U盘)完成挂载、切换和重装。
确认并挂载根分区
救援环境启动后,系统通常会尝试自动挂载原Linux分区到 /mnt/sysimage(RHEL/CentOS)或 /mnt(Ubuntu/Debian Live)。如果自动挂载失败或不可写,需手动操作:
- 用 fdisk -l 或 lsblk 查看磁盘布局,识别根分区(如 /dev/sda2)、/boot 分区(如 /dev/sda1),以及是否使用 LVM 或加密卷
- 若为 LVM:运行 vgchange -ay 激活卷组,再用 lvscan 确认逻辑卷路径(如 /dev/VolGroup00/LogVol00)
- 创建挂载点并挂载:
mkdir /mnt/rescue
mount /dev/sda2 /mnt/rescue(根分区)
mount /dev/sda1 /mnt/rescue/boot(如有独立 /boot)
mount /dev/sdaX /mnt/rescue/boot/efi(UEFI 系统需挂载 EFI 分区)
切换到原系统环境(chroot)
挂载完成后,需绑定关键虚拟文件系统,才能安全进入原系统上下文:
- mount --bind /dev /mnt/rescue/dev
- mount --bind /proc /mnt/rescue/proc
- mount --bind /sys /mnt/rescue/sys
- 执行 chroot /mnt/rescue,此时命令运行在原系统的根目录下,uname -r 可查当前内核版本
检查并恢复内核文件
内核损坏通常表现为 vmlinuz-xxx 或 initramfs-xxx.img 缺失、版本不匹配或内容损坏:
- 检查 /boot 目录是否存在对应文件:
ls /boot/vmlinuz-$(uname -r) /boot/initramfs-$(uname -r).img - 若文件缺失,需从安装介质还原:
挂载光盘或ISO:mount /dev/cdrom /mnt/cdrom
安装内核包(RHEL/CentOS):rpm -ivh /mnt/cdrom/Packages/kernel-*.rpm --force --root=/
或重建 initramfs:dracut -f -v(自动匹配当前内核) - 若内核版本混乱(如 uname -r 与 rpm -q kernel 不一致),建议重装当前运行版本的 kernel 包,避免依赖冲突
更新引导配置并退出
内核恢复后,必须同步更新 GRUB 配置和引导记录,否则仍无法启动:
- BIOS 系统:运行 grub2-install /dev/sda(注意是磁盘设备,非分区)
- UEFI 系统:确保 /boot/efi 已挂载,再执行 grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=centos
- 生成最新 grub.cfg:
RHEL/CentOS:grub2-mkconfig -o /boot/grub2/grub.cfg
Ubuntu/Debian:update-grub - 退出 chroot:exit,然后 umount -R /mnt/rescue,重启系统











