Недавно я случайно удалил файл. /lib/x86_64-linux-gnu/libc.so.6.
Этот файл нужен большинству программ, поэтому мой компьютер фактически сломался, и я могу получить доступ к жесткому диску только через USB-накопитель.
Я использую 64-битную версию Crunchbang Waldorf на базе Debian.
Как мне заменить libc.so.6
? (/lib64/
не(Содержит копию.)
Выходlocate libc.so
(на живом USB-накопителе с подключенным сломанным жестким диском)
/lib/x86_64-linux-gnu/libc.so.6
/rofs/lib/x86_64-linux-gnu/libc.so.6
/rofs/usr/lib/x86_64-linux-gnu/libc.so.6
/usr/lib/x86_64-linux-gnu/libc.so.6
Содержимое /etc/apt/sources.list
deb http://mozilla.debian.net/ wheezy-backports iceweasel-release
## CRUNCHBANG
## Compatible with Debian Wheezy, but use at your own risk.
deb http://packages.crunchbang.org/waldorf waldorf main contrib
# deb-src http://packages.crunchbang.org/waldorf waldorf main
## DEBIAN
deb http://http.debian.net/debian wheezy main contrib non-free
# deb-src http://http.debian.org/debian wheezy main contrib non-free
## DEBIAN SECURITY
deb http://security.debian.org/ wheezy/updates main contrib
# deb-src http://security.debian.org/ wheezy/updates main
решение1
Я предполагаю, что на вашем USB-накопителе установлен тот же дистрибутив, который вы используете, или, по крайней мере, он основан на Debian.
С этими предположениями сначала загрузите вашу систему с вашего живого USB-накопителя. Затем запросите, какой пакет владеет файлом /lib/x86_64-linux-gnu/libc.so.6
с помощью команды dpkg -S /lib/x86_64-linux-gnu/libc.so.6
(файл окажется принадлежащим пакету с именем "libc6", но это в любом случае хорошее упражнение).
Если ваша система работает с USB-накопителя Live Distro, загрузите требуемый пакет или пакеты сСайт Crunchbang Waldorf.
Затем смонтируйте ваш жесткий диск в какой-нибудь каталог. Для примера я снова предположу, что вы будете монтировать корневой раздел вашего жесткого диска в /mnt
.
Затем все, что остается сделать, это переустановить требуемый пакет или пакеты с помощью --root /mnt
директивы for dpkg
. Таким образом, пакеты не попадут в файловую систему вашего Live USB-накопителя, а вместо этого в систему, которая у вас уже есть на жестком диске.
решение2
Файл libc.so.6
присутствует в libc6
пакете.
Вам необходимо выяснить, из какого репозитория libc6
был установлен пакет на вашем компьютере. (Проверьте /etc/apt/sources.list
и т. д.).
Затем вручную загрузите его (например, если это машина Debian, использующая репозитории по умолчанию, вы можете загрузить его отсюда)здесь), а затем установите его, следуя инструкциям, предоставленным @SamiLaine.
решение3
Попробуйте это в оболочке root:
ln -s /lib/x86_64-linux-gnu/libc-2.13.so /lib64/libc.so.6
Если libc-2.13.so
версия не подходит для вашей системы, используйте автодополнение клавишей Tab в bash, чтобы найти нужную версию.
Если это не сработает, вы можете воспользоваться статически связанной версиейldconfigв корневой оболочке:
/sbin/ldconfig
Если целевая библиотека для ссылок libc была удалена, загрузите пакет Debian с сайтаПакет: libc6страницу, распакуйте ее с помощью dpkg-deb -X
(страница руководства) и скопируйте libc-2.13.so
в /lib/x86_64-linux-gnu
. Затем запустите ldconfig, чтобы убедиться, что все ссылки верны.
решение4
Откройте терминал ( Ctrl+ Alt+ T) и выполните следующие команды:
Для 64-битной Ubuntu:
sudo ln -s /lib64/x86_64-linux-gnu/libc.so.6 /lib64/libc.so.6
Для 32-битной Ubuntu:
sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6