救援模式进不去主因是启动介质与目标系统内核不兼容,需匹配iso版本、用dd或rufus的dd模式写盘、选对uefi/bios启动项;挂载失败则手动找根分区并挂载;chroot前须bind挂载proc/sys/dev;改密码后需touch /.autorelabel重打selinux标签;xfs_repair慎用-l,优先-v回放日志。

救援模式进不去?先确认是不是启动介质没对上
救援模式不是万能钥匙,它依赖一个前提:你手里的启动盘必须和目标系统内核兼容。比如用 RHEL 9 的 ISO 去救一台 CentOS 7 系统,dracut 可能加载不了旧版 xfs 模块,挂载失败后直接卡在“Waiting for /mnt/sysimage”,连 Continue 都按不下去。
- 检查 ISO 版本:CentOS 7 用 CentOS-7-x86_64-Minimal.iso;RHEL 8 用 rhel-8-x86_64-dvd.iso;别混用 Stream 和正式版
- U 盘写入必须用
dd或 Rufus 的「DD 模式」,不能用「ISO 模式」——后者会破坏 initramfs 结构 - BIOS/UEFI 启动项里确认选中的是 U 盘的「UEFI: XXX」条目(如果原系统是 UEFI 安装),否则可能进到 BIOS 兼容层,找不到硬盘
挂载后 chroot 失败?/mnt/sysimage 是空的或只读
选了 Continue 后提示 “Your system is mounted under /mnt/sysimage”,但执行 ls /mnt/sysimage 是空的,或者 chroot /mnt/sysimage 报错 chroot: cannot change root directory to /mnt/sysimage: No such file or directory,大概率是自动挂载逻辑没识别出根分区。
- 先手动找分区:
lsblk -f看哪个ext4或xfs分区标着ROOT或容量最大;常见根分区是/dev/sda2、/dev/nvme0n1p2 - 手动挂载:
mkdir /mnt/sysimage && mount /dev/sda2 /mnt/sysimage;若为 LVM,先vgscan && vgchange -ay && lvdisplay,再mount /dev/mapper/centos-root /mnt/sysimage - 别跳过
chroot /mnt/sysimage前的mount -o bind /proc /mnt/sysimage/proc等操作,否则systemctl会报Failed to get D-Bus connection
改完 root 密码却登不上?漏了 SELinux 重打标
在救援 shell 里执行 chroot /mnt/sysimage && passwd root 很顺利,但重启后仍无法登录,甚至卡在 PAM 认证阶段——这是 SELinux 上下文没更新导致的。CentOS/RHEL 默认启用 SELinux,密码文件修改后必须重打安全标签,否则 /etc/shadow 的 shadow_t 上下文会失效。
- 在 chroot 环境中运行:
touch /.autorelabel(注意是根目录下的点文件) - 退出前不要删它,系统下次启动时会自动触发
restorecon扫描全盘 - 如果不放心,可临时禁用 SELinux 验证:
sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /mnt/sysimage/etc/selinux/config,修好后再改回来
fsck 修复失败?xfs_repair 要加 -L 参数需极度谨慎
看到 journalctl -xb 提示 XFS (sda2): Metadata corruption detected,想用 xfs_repair /dev/sda2,结果报错 ERROR: The filesystem has valuable metadata changes in a log which needs to be replayed。这时候有人会抄起 -L(force log zeroing)硬清日志,但这是高危操作——它会丢弃未写入磁盘的事务,可能导致文件系统不一致甚至数据丢失。
- 优先尝试带日志回放:
xfs_repair -v /dev/sda2(-v 显示过程,便于判断卡点) - 若提示 “log contains uncommitted transactions”,先试
xfs_repair -L /dev/sda2,但仅限你确认无重要未保存数据(如数据库正在写入) - 修复后务必检查关键目录:
ls -l /mnt/sysimage/etc/fstab /mnt/sysimage/boot/grub2/grub.cfg,防止修复过程中误删配置
真正麻烦的从来不是命令敲不对,而是挂载点识别错、SELinux 标签没重打、或者以为 -L 是万能开关——这些地方一踩坑,重启就进不了系统,得重新插 U 盘。







