警惕阿里云中的yum update操作不当导致:/sbin/init被清空导致Linux无法正常启动

由于使用阿里云进行部署测试,因而会对yum update进行操作,这两天更新了systemd-239-82.0.3.4.al8.2.x86_64,但存在报错,然后进行yum history undo和清空yum cache,但出现操作Linux命令行无效。具体来说,几个报错如下:

Running transaction test Transaction test succeeded. Running transaction Preparing :

1/1 Running scriptlet: systemd-239-82.0.3.4.al8.3.x86_64

1/1 Running scriptlet: systemd-239-82.0.3.4.al8.3.x86_64

1/2 Upgrading : systemd-239-82.0.3.4.al8.3.x86_64

1/2 Error unpacking rpm package systemd-239-82.0.3.4.al8.3.x86_64

Verifying : systemd-239-82.0.3.4.al8.3.x86_64 1/2

Verifying : systemd-239-82.0.3.4.al8.2.x86_64 2/2

Failed: systemd-239-82.0.3.4.al8.2.x86_64 systemd-239-82.0.3.4.al8.3.x86_64

Error: Transaction failed

经查初步判断为RPM包中systemd-239.82.0.34.al8.2.x86_64、systemd-239-82.0.3.4.al8.3.x86_64的三个文件RPM都有问题。

于是采取yum history undo回复操作,但由于此前更新涉及systemd的更新,版本不对后的回复涉及了部分sysvinit的缓存清空,在操作过程不慎造成/sbin/init中的指令文件完全被删除。

因此,在未重启服务器时,在操作界面进行reboot、login、logout等指令均报错:

reboot bash: reboot: command not found... Failed to search for file: Failed to download gpg key for repo 'docker-ce-stable': Curl error (35): SSL connect error for https://download.docker.com/linux/centos/gpg [OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to download.docker.com:443 ]

在阿里云平台工具进行服务器重启后,一直长时间等待后启动服务器,但仍没法进行SSH或远程链接,哪怕进行停机,也等待很久。

由于测试服务为主,本实例并没有安装快照(因为需要收费的),所以这次整个测试服务器估计都凉了,需要重新部署操作系统。系统健康诊断亦已经检测到严重的问题。

由此可见几点教训值得大家关注:

一、如果是正式或重要的部署快照的钱还是不能省的。

二、没事少做yum update或yum install或者清空sysvinit相关的操作,涉及所有跟systemd有关的更新,尽量少做,所谓的开源免费的东西,其实也很不靠谱。

三、警惕阿里云本身的yum update陷阱,他们对rpm的安装包都有自己的具体处理,鬼知道会否搞些小动作要你买他们这个那个服务(从阴谋论提出质疑)

四、对于在阿里云上的systemd-239-82.0.3.4这个版本的安装,一定要十分谨慎。

重点来了,如何可以在无法通过Workbench远程连接以及SSH连接的情况下,尽力修改/sbin/init的文件?

我们可以通过阿里云Alibaba Cloud Client的桌面工具。采用发送远程命令的方式,进行链接操作,其具体界面如下:

在远程命令的窗体,打上cd /sbin/init,看看目录中有否存在,果断有没存在这个目录文件

然后重新运行sudo yum install systemd -y,则可。

最后记得加上sudo reboot命令重启服务器。

对于以后预防措施

为了防止类似问题再次发生,建议采取以下措施:

  1. 定期备份关键系统文件 ,特别是/sbin/init等核心文件。

  2. 启用阿里云实例的自动快照功能,以便在出现故障时快速恢复(需要收钱)。

  3. 加强系统安全,防止未经授权的访问和恶意操作。

  4. 监控系统日志,及时发现和处理异常情况。

相关推荐
2401_8734794022 分钟前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
图码1 小时前
如何用多种方法判断字符串是否为回文?
开发语言·数据结构·c++·算法·阿里云·线性回归·数字雕刻
charlie1145141911 小时前
Linux 字符设备驱动:cdev、设备号与设备模型
linux·开发语言·驱动开发·c
handler011 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
zhouwy1131 小时前
Linux进程与线程编程详解
linux·c++
我星期八休息1 小时前
IT疑难杂症诊疗室:AI时代工程师Superpowers进化论
linux·开发语言·数据结构·人工智能·python·散列表
切糕师学AI2 小时前
深入解析 Zsh 与 Oh-My-Zsh:打造高效现代化终端
linux·终端·zsh
切糕师学AI3 小时前
Ubuntu 下 Git 完全使用指南
linux·git·ubuntu
草履虫君3 小时前
VMware 虚拟机网络性能优化指南:从 11 秒到 4 秒的完整调优实践
服务器·网络·经验分享·性能优化
日取其半万世不竭3 小时前
LVM 逻辑卷管理:不停机扩容磁盘的正确方式
运维·服务器