Linux提供单用户模式、救援模式、systemd rescue.target和kdump紧急shell四种应急维护方式:分别适用于密码重置、系统无法引导、临时降级运行级别及内核崩溃诊断。

如果系统因密码遗忘、文件系统损坏或启动配置错误导致无法正常登录,Linux 提供了单用户模式与救援模式作为紧急维护入口。以下是进入这两种模式的具体操作步骤:
一、通过GRUB菜单进入单用户模式(适用于已安装系统的紧急修复)
该方法利用GRUB引导加载器临时修改内核启动参数,跳过完整初始化流程,直接以root权限启动bash shell,适用于重置root密码或编辑关键配置文件。
1、在系统启动时,于GRUB启动菜单界面按 Shift 键(BIOS模式)或 Esc 键(UEFI模式)调出GRUB菜单。
2、使用方向键高亮选中默认启动项,按 e 键进入编辑模式。
3、定位到以 linux 或 linux16 开头的行,在该行末尾空格后添加 rd.break(RHEL/CentOS 7+)或 init=/bin/bash(RHEL/CentOS 6及部分Debian系)。
4、按 Ctrl+X 或 F10 启动修改后的内核参数。
5、若使用 rd.break,系统将在initramfs阶段暂停,执行 mount -o remount,rw /sysroot,再执行 chroot /sysroot 切换根环境。
二、使用光盘/USB启动进入救援模式(适用于系统完全无法引导)
当GRUB损坏、内核丢失或/boot分区不可用时,需借助外部安装介质启动独立环境,挂载原系统进行离线修复,支持文件恢复、分区检查与引导重建。
1、插入对应版本的Linux安装镜像(如CentOS 8 ISO、Ubuntu Server ISO),从该设备启动。
2、在启动菜单选择 Troubleshooting → Rescue a CentOS system(RHEL系)或 Rescue mode(Ubuntu/Debian)。
3、等待加载救援环境后,选择 1 继续并挂载现有系统:系统将自动搜索硬盘上的Linux根分区,并提示是否挂载至 /mnt/sysimage。
4、确认挂载后,执行 chroot /mnt/sysimage 进入原系统根目录上下文。
5、此时可运行 passwd root、xfs_repair /dev/sda1(XFS)、e2fsck -f /dev/sda1(ext4)或 grub2-install /dev/sda 等命令。
三、通过systemd设置default.target切换至rescue.target(适用于可正常登录但需临时降级运行级别)
该方式不依赖重启,适用于已登录系统且需快速进入最小化维护环境的场景,保留网络和基础服务,但停止所有非必要用户空间服务。
1、以root身份执行 systemctl isolate rescue.target,系统将终止多用户服务并切换至救援shell。
2、验证当前目标状态:运行 systemctl get-default,输出应为 rescue.target。
3、如需持久生效(下次启动即进入),执行 systemctl set-default rescue.target。
4、退出救援模式并恢复图形或字符界面:执行 systemctl isolate graphical.target 或 systemctl isolate multi-user.target。
四、使用kdump机制触发内核崩溃后进入紧急shell(适用于内核级故障诊断)
当系统因内核panic卡死时,若已启用kdump,可在崩溃后自动生成vmcore并启动紧急shell,用于检查内存转储与内核状态。
1、确认kdump服务已启用:运行 systemctl is-active kdump,返回 active 表示正常运行。
2、手动触发内核panic测试(仅限测试环境):执行 echo c > /proc/sysrq-trigger。
3、系统重启后,若kdump捕获成功,将自动进入 dracut emergency shell,根路径为 /mnt/root。
4、挂载原始根分区:执行 mount /dev/sda2 /mnt/root(根据实际分区调整设备名)。
5、查看崩溃日志:运行 cat /mnt/root/var/crash/*/vmcore-dmesg.txt 分析panic原因。










