帮到了又喜闻乐见人修系统的时间。
可以得知是“卡在了根开关”,描述开始更新是坏的。 ¯(ツ)/¯
虽然 CentOS 这系统不怎么样,但是至少也算在原版 ISO 就可以了 Rescue 的选项,可以自动根备用挂载。本来以为小事一桩,准备 chroot 的时候突然冒出一句“chroot: cannot run command `/bin/sh’: Exec format error” 就瞬间心里多余的部分#%#$^$#@#%#
一般情况,例如报告格式错误,错误执行格式中执行错误表示“x格式错误,错误执行格式”执行系统的第8664位在第3个版本,这样的架构,首先安装系统同样是和ISO的系统也是同样的系统架构磁盘也没有报错,为什么会出现这种问题?
更新的/bin/bash
也能导致报告的这种文件被破坏的程度不同,但不是像这样的。要能先进系统瞧到底,于是心一横,Live CD 的/usr
涂盘上的目录。
1
|
~> cp -r /usr /m nt /sysimage/
|
然后再应该是chroot,果然成功进入系统, yum
也可以用了这个更新过程中命令的完成,那未完成的先尝试更新。
1 2 3 4
|
~> yum-完成交易 加载的插件:fastestmirror、langpacks 从缓存的主机文件加载镜像速度 没有未完成的交易。
|
啊咧。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
~> 百胜更新 --> 完成依赖解析 错误:发现 Multilib版本问题。这通常意味着根 原因是别的,多库版本检查只是 指出有问题。例如。:
1.你有一个 libselinux的升级,但缺少一些 另一个包需要的依赖项。百胜正试图 通过安装旧版本的glibc来解决这个问题 不同的架构。如果排除不良架构 yum 会告诉你根本原因是什么(哪个包 需要什么)。您可以尝试重做升级 --exclude glibc.otherarch ...这应该会给你一个错误 显示问题根本原因的消息。
2.你安装了多个架构的glibc,但是 yum 只能看到其中一个架构的升级。 如果您不再想要/需要这两种架构,那么您 可以删除缺少更新的那个和所有内容 将工作。
3.您已经安装了重复版本的glibc。 您可以使用“yum check”来让yum 显示这些错误。
...您也可以使用--setopt=protected_multilib=false 删除 这种检查,但是这几乎从来都不是正确的事情 做其他事情很可能出错(通常导致 更多的问题)。
受保护的多库版本:glibc..... != glibc..... kbd ... x86_64 != kbd ... x86_64
|
……还真是。
3 位的,那是这个系统并没有安装 32 位的yum check
哪里来的情况呢?不轻,但是确定系统中没有32位包,那么可以继续莽到底了。
1 2 3 4 5 6 7
|
#完成所有未更新的包 ~> yum 更新 --setopt=protected_multilib= false # 为重装系统做准备 ~> mkdir /root/tmp ~> cd /root/tmp #重装所有包 ~> yum 重新安装 * --setopt=protected_multilib= false
|
一次操作如虎,第一次之后的时候还会报错ldconfig库是空包,第二次完整安装了一些失败的文件,结果就成功了,所有重装都可以看到登录。提示。
1 2 3 4 5 6 7 8
|
本地主机登录:root
登录错误
登录错误
登录错误
|
嗯嗯嗯???我输入密码呢?
至少可以启动系统登录了。进救援了。
系统里很多本来应该有的没有服务启动,比如systemd-logind。想看看这货的状态,结果报错:
1
|
无法激活服务“org.freedesktop.systemd1” :超时
|
咦?系统自己没有正常启动,看看日志:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
... localhost dbus-daemon[1166]:遇到错误'文件/etc/dbus-1/system中的错误。 d /org.freedesktop.hostname1。 conf ,第 1行,第 0 列:未找到元素 '同时解析 '/etc/dbus-1/system. d /org.freedesktop.hostname1。配置' localhost dbus-daemon[1166]:遇到错误'文件/etc/dbus-1/system中的错误。 d /org.freedesktop.import1。 conf ,第 1行,第 0 列:未找到元素 '同时解析 '/etc/dbus-1/system. d /org.freedesktop.import1。配置' localhost dbus-daemon[1166]:遇到错误'文件/etc/dbus-1/system中的错误。 d /org.freedesktop.locale1。 conf ,第 1行,第 0 列:未找到元素 '同时解析 '/etc/dbus-1/system. d /org.freedesktop.locale1。配置' localhost dbus-daemon[1166]:遇到错误'文件/etc/dbus-1/system中的错误。 d /org.freedesktop.login1。 conf ,第 1行,第 0 列:未找到元素 '同时解析 '/etc/dbus-1/system. d /org.freedesktop.login1。配置' localhost dbus-daemon[1166]:遇到错误'文件/etc/dbus-1/system中的错误。 d /org.freedesktop.machine1。 conf ,第 1行,第 0 列:未找到元素 '同时解析 '/etc/dbus-1/system. d /org.freedesktop.machine1。配置' localhost dbus-daemon[1166]:遇到错误'文件/etc/dbus-1/system中的错误。 d /org.freedesktop.systemd1。 conf ,第 1行,第 0 列:未找到元素 '同时解析 '/etc/dbus-1/system. d /org.freedesktop.systemd1。配置' localhost dbus-daemon[1166]:遇到错误'文件/etc/dbus-1/system中的错误。 d /org.freedesktop.timedate1。 conf ,第 1行,第 0 列:未找到元素 '同时解析 '/etc/dbus-1/system. d /org.freedesktop.timedate1。配置' ...
|
病的不轻。这些文件内容消失了,重装包并不会覆盖它们。只是好手动来覆盖了。
1 2 3 4 5 6 7
|
# 安装必备工具 ~> yum install yum-utils rpm2cpio # 获取并解包 rpm ~> cd /root/tmp ~> yumdownloader dbus systemd ~> rpm2cpio dbus- 1.10 。 24 - 15.el 7.x86_64.rpm | cpio -idmv ~> rpm2cpio systemd- 219 - 78.el 7_9。 5.x 86_64.rpm | cpio -idmv
|
手动将etc/dbus-1
目录下的所有文件覆盖到文件系统,然后执行kill 1
1 2 3 4 5 6 7
|
localhost systemd[1]:从PID 4332 (bash) 接收到 SIGTERM。 localhost systemd[1]:重新执行。 localhost systemd[1]:systemd 219在系统模式下运行。 (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ localhost systemd[1]:检测到的架构 x86-64。 localhost dbus[1166]: [system] 成功激活服务'org.freedesktop.systemd1' localhost systemd[1]:启动登录服务。 localhost systemd-logind[4723]:新座位seat0。
|
特别检查,各种服务都在正常启动了!
(๑•̀ㅂ•́)و✧
后记:别没什么事更新生产用系统。
后记2:西方国家的数据中心远程手没有一个可靠的。
原文: https://blog.phoenixlzx.com/2022/06/06/rescue-broken-centos-systemd-timeout/