1.问题如下

配置java程序或是其他程序服务化自启动,服务加载启动不成功陷入循环,导致系统无法启动问题。

2.解决步骤

需要进入单用户模式修改配置文件。

2.1进入 grub 界面

  • 选中第一项引导内核按 E 键进行配置 grub 文件。 centos加载界面

2.2修改 BIOS Legacy 或 UEFI BIOS 模式启动的

  • 按 End 键可跳转到最后,找到有 linux16(number,我这里是16) 开头的字样

  • 注意自己的硬件的 BIOS 配置启动模式:(我这里是 BIOS Legacy 模式启动的系统,为 linux 16 (16 为数字);UEFI BIOS 模式启动的系统在 grub 配置文件中有 uefi 开头的字样)。 grub配置界面

  • 找到 ro(只读) 修改为 rw(读写)如果没有则添加一句 rw ,在这一段命令的后面添加 rw init=/sysroot/bin/bash 。按照提示按 Ctrl + X 自动启动进入 Shell 。 grub修改界面

rw init=/sysroot/bin/bash
  • 也可以是如下配置:
rw init=/sysroot/bin/sh
rw init=/bin/bash
rw init=/bin/sh

3.挂载系统根 & RW 读写权限

挂载系统

  • 执行 chroot /sysroot 设置为根,也就是切换系统 ( 注意使用 init=/sysroot/bin/bash 会把安装的操作系统会挂载到 sysroot 目录 ) 。
  • 执行 mount -o remount,rw / (重新挂载 / 根并且设置 rw 读写权限)。
  • 注意:如不是使用 init=/sysroot/bin/bash(sh) 则不需要执行此 chroot /sysroot 命令。

执行如下命令:

# 挂载根为 /sysroot
chroot /sysroot
# 重新挂载 / 根并且设置 rw 读写权限
mount -o remount,rw /

4. 删除 /etc/systemd/system文件夹下的服务配置文件

rm -rf emergency.service

5. 修改完成,重启系统!

  • 执行 exit 和 reboot 重启系统。执行 exit 的原因是要退出 /sysroot 安装的系统。