Oamc

系统起不来时的救援

本页目录

场景

改完 fstab、升级内核、误删文件后,机器卡在 emergency mode 或者 grub 菜单进不去系统。

前置条件

  • 有控制台 / 带外(iDRAC、iLO、VM 控制台)
  • 知道 root 密码(重置时不需要)
  • 有安装 ISO 或救援盘

配置

情况一:fstab 写错 → emergency mode

登录后:

mount -o remount,rw /
cat /etc/fstab
# 找到写错的那一行,注释掉
vi /etc/fstab
mount -a
reboot

情况二:忘记 root 密码

在 grub 菜单按 e 编辑启动项,在 linux 那行末尾加:

rd.break

按 Ctrl+X 启动,进入后:

mount -o remount,rw /sysroot
chroot /sysroot
passwd root
touch /.autorelabel        # SELinux 开启时必须
exit
reboot

情况三:grub 损坏 / 进不了系统

用安装 ISO 启动 → 选「救援模式」:

chroot /mnt/sysimage
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
exit
reboot

情况四:文件系统损坏

fsck -y /dev/mapper/vg-root

XFS 不能用 fsck,用 xfs_repair:

xfs_repair /dev/mapper/vg-root

验证

正常启动,systemctl --failed 没有失败单元,df -h 挂载都在。

回滚

救援操作本身是在修,没有回滚。动手前尽量先备份关键配置:

cp /etc/fstab /etc/fstab.bak

坑

  • fstab 改完不 mount -a 验证,重启就进 emergency mode。
  • SELinux 开启时 rd.break 重置密码要 touch /.autorelabel,否则登录不了。
  • XFS 用 fsck 修不了,得用 xfs_repair。
  • 用 ISO 救援时 chroot 前要先 mount 根分区,否则改的是救援系统。
  • 强行断电导致的损坏,先备份数据再做修复。
  • 内核升级后起不来,可以在 grub 里选旧内核先救急。