你能帮我解决这个问题吗?
我“意外地” rpm -e glibc.x86_64 库并使我的 VPS 无法使用,因为所有命令都会引发以下错误之一:
[root@panel lib64]# yum
bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
[root@panel lib64]# ls
bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
如果以下任何一项可以提供帮助:
1)我仍然连接到外壳
2) 我无法启动恢复,因为它是远程 VPS
3) 仍然安装了 i686 glibc
4) 我的主目录中有 x86_64 版本的 .rpm 文件。
5) 有/lib/ld-linux.so.2,我能以某种方式指向系统使用那个吗?
6) 我有一个 /opt/glibc-2.14/lib/ld-linux-x86-64.so.2 ,我可以执行带有前缀的命令,但关键的命令,如 rpm2cpio 或 wget 会引发共享对象错误。
我可以使用静态命令或将其他一些库放在路径中或任何其他方式来解决这个问题吗?
谢谢大家。
我认为您可以使用现有的 i686(32 位)工具链构建 glibc.x86_64 的源代码。下载源代码并解压,然后按照安装说明进行操作。当您运行配置时,它将仅检测 32 位,并应从那里恢复您。
我还发现在centOS上你可以执行
(来自https://geeksterminal.com/how-to-install-glib-glibc/1392/)
SSF
我建议通过 wget 下载glibc x86_64.rpm包,然后使用rpm命令安装它。
删除链接器后,无法执行其他程序。您真正拥有的只是正在运行的 bash shell。没有wget,没有cp。
这可以有两种方式。此实例所做的常规备份还原和重建,现在开始此过程。或者在从中提取数据并重新启用 glibc 方面非常有创意的英雄事迹。
需要复制至少与 EL6 的 glibc 版本 2.12 一样新的二进制文件。只使用 bash。理论上,只使用内置函数是可能的。在其他一些主机上,使用 rpm2cpio 解压,使用 /dev/tcp/ 将它们下载到损坏的主机。在实践中,这是丑陋的,难以发挥作用。需要使用未加密的协议,并手动输入请求。
相反,将 VM 磁盘映像附加(快照)到另一个工作的 EL6 VM 并在那里对其进行操作。将它安装在某个地方,例如 /mnt。使用 yum 恢复 glibc,但将其安装在损坏的根目录中:
在挂载时备份任何重要数据。再次将其切换到损坏的实例,然后启动。
现在进行尸检。
修复损坏的实例可以很好地恢复您的数据,但可能无法实现。备份仍然是必须始终有效的恢复。确保重建和恢复是可能的。
您必须使用
rpm -e --nodeps
才能进入这种情况。永远不要那样做。存在依赖关系是因为包需要彼此。glibc 的 rpm 包描述 (rpm -qi glibc
) 提到了它的重要性,尽管说了很多话之后是公平的:如果您无法使用 yum 解决 rpm 事务,请停止。质疑包数据库的完整性。质疑使某人认为
--nodeps
曾经是一个好主意的 yum repos 的理智。