系统起不来时的救援
场景
改完 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 里选旧内核先救急。