ECS实例升级Systemd至systemd-219-71.el7版本后重启系统会进入救援模式

问题描述

单CPU规格且系统为CentOS 7或RedHat 7系列的ECS实例,在升级Systemd至systemd-219-71.el7版本后,重启实例会进入救援模式(maintenance mode),提示以下信息。

Give root password for maintenance
(or press Control-D to continue):

这样会导致系统网络服务和一般的应用软件服务异常。

问题原因

在CentOS 7或RedHat 7系列的系统中,Systemd程序包被升级至systemd-219-71.el7版本时会触发旧版程序包中存在的缺陷,导致ECS实例重启后进入救援模式。满足以下条件的ECS实例会存在此问题:

  • ECS实例系统版本是CentOS 7或RedHat 7系列。

  • 升级Systemd至systemd-219-71.el7版本,并重启。可能触发Systemd升级的场景如下:

    • 自主升级Systemd。例如通过yum update命令升级所有软件包或Systemd软件包。

    • 使用云安全中心修复漏洞。云安全中心修复漏洞时可能会升级Systemd软件包。

  • ECS实例为单CPU规格。单CPU的ECS实例规格如下:

    • ecs.s6-c1m1.small

    • ecs.s6-c1m2.small

    • ecs.s6-c1m4.small

    • ecs.xn4.small

    • ecs.n1.small

    • ecs.n4.small

    • ecs.e4.small

    • ecs.e3.small

    • ecs.mn4.small

    • ecs.n1.tiny

    • ecs.n2.small

    • ecs.t5-lc2m1.nano

    • ecs.t5-lc1m1.small

    • ecs.t5-lc1m2.small

更多有关此问题的信息,请参见Red Hat 官方文档

解决方案

如果您的ECS实例是CentOS 7或Red Hat 7系列的系统,同时ECS实例规格是单CPU,请您从以下两种场景中选择符合实际情况的一种进行处理:

  • 已经升级Systemd程序并且ECS实例处于救援模式,如果ECS实例已经进入救援模式,请参考以下步骤进行操作:

    1. 对ECS实例的系统盘进行快照备份,具体操作请参见创建快照

    2. 通过阿里云VNC工具以root用户身份登录ECS实例,具体操作请参见通过VNC远程连接Linux实例

    3. 执行以下命令,重新生成grub配置。

      dracut --force --regenerate-all
    4. 重启ECS实例。

  • ECS实例处于正常状态并且准备升级Systemd程序,在做任何可能会触发Systemd升级的操作或安装更新应用软件之前,请做好系统快照备份。

适用于

  • 云服务器ECS