Нарушено большинство функций компьютера Linux из-за плохой символической ссылки

Нарушено большинство функций компьютера Linux из-за плохой символической ссылки

Я использую 64-битную версию Crunchbang на базе Debian.

Я пытался исправить определенную проблему с libc6 и наивно последовал совету из ответа askUbuntu (связь), что заставило меня выполнить следующую команду:

sudo ln -sf /lib32/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6

Теперь я не могу запустить ни одну команду терминала или программу GUI. На терминале я получаю множество ошибок. Вот ls, например:

ls: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32

sed: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32

/usr/bin/env: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32

дата: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32

sed: ошибка при загрузке разделяемых библиотек: libs.so.6: неправильный класс ELF: ELFCLASS32

Программы с графическим интерфейсом просто не запускаются или выдают странные сообщения об ошибках.

Короче говоря, у меня нет возможности удалить симлинк, который вызвал эту катастрофу. Что я могу сделать, чтобы мой компьютер снова заработал?

решение1

Папка /lib32 может содержать только 32-битные библиотеки. Вы создали ссылку libc.so.6 в /lib32, которая указывает на 64-битную версию того же файла. Получите 32-битную версию libc.so.6 и поместите ее в папку /lib32.

решение2

Поскольку вы испортили свою libc, а от нее, как правило, зависит работа всех полезных утилит, то единственный удобный вариант — загрузиться с Live CD/USB и исправить ошибку, или вставить свой жесткий диск в чужой компьютер (не загружайтесь с него) и исправить ошибку оттуда.

Чтобы исправить это, отмените то, что вы сделали.

Однако ваш неудачный выбор опции -fи lnпредполагаемая неспособность создать резервную копию любого исходного файла означает, что если он /lib/x86_64-linux-gnu/libc.so.6действительно существовал до того, как вы выполнили эту команду, он был перезаписан. В этом случае лучшим вариантом будет получить копию из другого места, желательно совместимой версии, а затем принудительно переустановить libc, как только вы снова заставите свою машину работать, просто чтобы убедиться, что все нужные версии нужных файлов находятся в нужных местах.

Если у вас изначально не было этого файла, то не беспокойтесь.

После того, как вы все это исправите, рассмотрите возможность использования менее рискованных решений, например, размаскировки и установки правильных пакетов для вашей платформы и т. д., вместо того, чтобы возиться с символическими ссылками на критические библиотеки.

Связанный контент