我不小心删除了带有的符号链接/lib64/libc.so.6->/lib64/libc-2.12.so
$ sudo rm libc.so.6
然后我不能使用任何东西,包括ls
命令。对于任何我键入的命令,都会出现错误
ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
我试过
$ export LD_PRELOAD=/lib64/libc-2.12.so
之后我可以使用ls
和ln ...
,但仍然不能使用sudo ln ...
或sudo -E ln ...
。我总是收到这个错误
sudo: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
这是一个远程服务器,所以我不能使用活动CD。我现在有一个活动的ssh-bash会话,但不能建立新的会话。我有sudo权限,但没有root密码。
所以目前我的问题是,我需要运行sudo sln -s libc-2.12.so libc.so.6
来重新创建符号链接libc.so.6
,但如果没有libc.so.6
,我就无法运行sudo
。
我该怎么修?感谢~
我通过使用服务器/sbin中已经存在的静态链接版本"ln"解决了这个问题。
例如,这为我的配置恢复了它:/sbin/sln/lib64/libc-2.5so/lib64/libc.so.6
有点尴尬:)但这也发生在Ubuntu 12.04.3上(这不是CentOS 6.4,但我认为这可能仍然有帮助)。
因为我的Ubuntu无法启动,我用liveUSB启动,然后安装硬盘并创建符号链接(我确实有文件本身libc-2.15.so
),就这样完成了。
只是一些具体细节:
- 我请一个好朋友用他的电脑半个小时
- 我从这里下载了我的Ubuntu iso(12.04.3,如果你在上的话;y缺少符号链接,它可能是任何版本,以至于可以安装驱动器):链接
- 我确保他的Ubuntu有usb创建者gtk(
$ sudo apt-get install usb-gtk-creator
,我相信Windows有一个等效的usb引导创建者) - 使用usb创建者gtk创建liveUSB
- 用它启动了我的计算机(您可能需要更改BIOS设置,以允许首先启动外部USB)
- 一旦我从实时USB启动,我就通过运行Ubuntu分区工具(实时USB有一个)来确定我的硬盘分区在哪里——我的分区类型是
ext4
,在/dev/sdb1
中 - 我先安装
$ mkdir /home/ubuntu/mnt
,然后安装$ sudo mount-t ext4 /dev/sdb1 /home/ubuntu/mnt
- 然后我转到文件夹
$ cd /home/ubuntu/mnt
- 然后,我从那个位置通过
$ sudo ln -s lib/x86_64-linux-gnu/libc-2.15.so lib/x86_64-linux-gnu/libc.so.6
创建了符号链接
重启后我表现不错。
希望它能帮助你(或某人…)
我会在@wilfo answer中添加更多内容,因为我也发生了同样的事情[意外删除了lib.so.6,并且在启动时得到/sbin/init缺少libc.so.6]。在windows中创建liveUSB后(使用UNetbootin等[http://unetbootin.sourceforge.net/])或者像@wilfo建议的那样在ubuntu中。从liveUSB启动时,我选择了"体验ubuntu而不安装它",并很高兴在第6步之前应用wilfo的方法,然后我找不到ext3/4类型的硬盘分区。所有的都是nftf/脂肪/扩展的东西。
因此,我通过以下链接恢复了以前的ubuntu(缺少libc.So的那个…)https://help.ubuntu.com/community/Boot-Repair
确保遵循所有必要的步骤并备份您的ubuntu分区。您可以在/mnt/boot sav/wubi1/home中查看以前的ubuntu文件从这里备份到您的windows部件/mnt/boot sav/sda。。。按照这里的剩余步骤https://help.ubuntu.com/community/Boot-Repair