意外重命名 libc.so.6 并且无法在救援模式下进​​行 chroot

Accidently renamed libc.so.6 and cannot chroot within rescue mode

我们不小心将共享库 /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

现在系统宕机了,我只有 ssh 失败一次 "libc.so.6" 重命名和救援模式。我怎样才能进入系统,以便我可以将 "libc.so_6" 重命名回 "libc.so.6"?是否有绕过检查 "libc.so_6" 的解决方法?

为了清楚起见,将post答案放在这里(以防其他人遇到类似的麻烦)。

处于救援模式时:

mount /dev/md2 /mnt
mv /mnt/lib64/libc.so_6 /mnt/lib64/libc.so.6

或者:

  • 从备份恢复系统
  • 尝试从一些实时 USB 启动(正如 Topper Harley 在评论中提出的那样)