libc - 意外重命名 libc.so.6 并且无法在救援模式下 chroot
问题描述
我们不小心将共享库重命名/lib64/libc.so.6
为/lib64/libc.so_6
. 在上一条命令之后,系统(CentOS 6.9)立即抛出以下错误:
error while loading shared libraries: /lib64/libc.so.6: cannot open shared object file: No such file or directory
在救援模式下登录时,我遵循以下命令:
mount /dev/md2 /mnt
mount /dev/md1 /mnt/boot
mount -t dev -o bind /dev /mnt/dev
mount -t proc -o bind /proc /mnt/proc
mount -t sys -o bind /sys /mnt/sys
chroot /mnt
</Code>
然后我收到以下错误:
/bin/bash: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
我还尝试了以下命令:
chroot /mnt /bin/bash
chroot /mnt/root/tmp /bin/bash
chroot /mnt/root/tmp /mnt/bin/bash
然后得到另一个错误
chroot: failed to run command ‘/mnt/bin/bash’: No such file or directory
现在系统已关闭,我只有在重命名“libc.so.6”和救援模式后失败的 ssh。如何进入系统以便将“libc.so_6”重命名为“libc.so.6”?是否有绕过检查“libc.so_6”的解决方法?
解决方案
为了清楚起见,将在此处发布答案(以防其他人遇到类似问题)。
在救援模式下:
mount /dev/md2 /mnt
mv /mnt/lib64/libc.so_6 /mnt/lib64/libc.so.6
或者:
- 从备份恢复系统
- 尝试从一些实时 USB 启动(正如 Topper Harley 在评论中提出的那样)
推荐阅读
- php - 未找到但使用命名空间定义的类
- javascript - 将消息设置为在一段时间后或单击表单中的任何字段后消失
- firebase - 如何在 Dart 的流构建器中切换我正在收听的流?
- python - 如何结合 5 个训练模型的权重来更准确地预测测试数据集?
- ios - iOS 是否失去了使用动态框架的大部分优势?
- c# - C# 与嵌套使用共享相同的实体
- html - ul里面的li不是均匀分布的
- html - iPhone SE 未正确显示响应式表格标题,但可在 Android 上运行
- python - 使用少于 10000 个参数 CNN 的 MNIST 获得 99% 的验证准确率
- sql - 续集:PG::UndefinedColumn:错误:列“距离”不存在