2

Недавно я случайно удалил файл /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

4 ответа4

4

Я предполагаю, что ваша живая USB-флешка имеет тот же дистрибутив, что и у вас, либо, по крайней мере, дистрибутив на основе Debian.

Исходя из этих предположений, сначала загрузите вашу систему с USB-флешки. Затем запросите пакет, которому принадлежит файл /lib/x86_64-linux-gnu/libc.so.6 с помощью команды dpkg -S /lib/x86_64-linux-gnu/libc.so.6 (файл окажется владельцем пакет называется "libc6", но в любом случае это хорошее упражнение).

Когда ваша система работает с USB-флешки, скачайте необходимый пакет или пакеты с сайта Crunchbang Waldorf.

Затем подключите жесткий диск к некоторому каталогу. В качестве примера я снова предположу, что вы будете монтировать корневой раздел с жесткого диска в /mnt .

Затем все, что осталось сделать, это переустановить требуемый пакет или пакеты, используя директиву --root /mnt для dpkg . Таким образом, пакеты не попадут в вашу файловую систему USB-флешки, а в систему, которая уже есть на вашем жестком диске.

1

Файл libc.so.6 присутствует в пакете libc6 .

Вы должны выяснить, из какого репозитория пакет libc6 был установлен на вашем компьютере. (Проверьте /etc/apt/sources.list и т.д.).

Затем загрузите его вручную (например, если это был компьютер Debian, использующий репозитории по умолчанию, вы можете загрузить его отсюда), а затем установить его, следуя инструкциям @SamiLaine.

0

Откройте терминал (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

0

Попробуйте это в корневой оболочке:

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 со страницы Package: libc6 , распакуйте его с помощью dpkg-deb -X (man-страница) и скопируйте libc-2.13.so в /lib/x86_64-linux-gnu , Затем запустите ldconfig, чтобы убедиться, что все ссылки верны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .