Случайно удален /usr/lib/*.so.*


9

Пока я устанавливал MRTG, я по ошибке удалил /usr/lib/*.so.*и/usr/lib/*.so

Теперь я не могу загрузить свою систему, она застревает на заставке, и когда я нажимаю кнопку PAGEDOWN, я вижу, что некоторые вещи не загружаются.

Тем не менее, DHCP и WebMin работают, и из Webmin я могу видеть системные журналы, которые говорят мне, что чашки не загружаются, потому что libpipeline.so.1отсутствует и некоторые другие.

Мой компьютер работает 11.04


1
Крест опубликован на Unix и Linux
Марко Сеппи

используйте Спросите Ubuntu для конкретных вопросов Ubuntu. и не пересекайте почту. Если вы не уверены, что это специфично для Ubuntu, сначала спросите здесь, и мы перенесемся, если это специфично для Ubuntu.

2
также совет на будущее ... если вы знали, что сделали что-то плохое до перезагрузки ... не перезагружайтесь. оставьте систему включенной и начните ремонт немедленно. Я выздоровел /binи /etcтак в прошлом

Ответы:


5

Поскольку вы только удалили, /usr/lib/*но нет /lib/*, вы, вероятно, можете восстановить. Я думаю, что все программы, которые вам необходимы для восстановления вашей системы, используют только библиотеки /usr/lib.

Загрузите текстовое приглашение для входа. Если обычная загрузка не дает login:подсказки в текстовом режиме, загрузитесь только с минимальным количеством служб. Нажмите и удерживайте, Shiftкогда ваш компьютер начнет показывать подсказку Grub; вам нужно нажать клавишу после того, как BIOS инициализирует клавиатуру, но до загрузки Grub, которая на некоторых машинах оставляет только небольшое временное окно и может потребовать нескольких попыток. В приглашении Grub нажмите, Downчтобы выделить загрузочную запись однопользовательского режима и загрузите ее.

Когда у вас есть командная строка, запустите, apt-get --reinstall install PACKAGE1 PACKAGE2 …чтобы переустановить пакеты, в которых есть файлы /usr/lib. Вы можете запустить этот фрагмент оболочки, чтобы получить список имен пакетов для переустановки:

egrep -l '/usr/lib/[^/]*\.so\.' /var/lib/dpkg/info/a*.list |
sed -e 's!^/var/lib/dpkg/info/!!' -e 's!\.list$!!'

Некоторые сценарии установки пакетов могут требовать наличия библиотек из других пакетов, поэтому вам может потребоваться запустить переустановки в определенном порядке. Если вы обнаружите, что установочные скрипты пакета пытаются использовать определенную программу, вы можете узнать, с какими библиотеками нужна эта программа ldd. Например, это означает, что в python отсутствуют три библиотеки, которые нужно переустановить:

$ ldd /usr/bin/python | grep 'not found'
    libssl.so.0.9.8 => not found
    libcrypto.so.0.9.8 => not found
    libz.so.1 => not found

dpkg -S /usr/lib/libz.so.1показывает, что этот файл zlib1gи так далее.

Если вы обнаружите, что apt-getне можете загрузить пакеты, сначала загрузите несколько пакетов ключей с live CD. zlib1gи libssl0.9.8два пакета, которые вам, скорее всего, понадобятся на ранней стадии.


10

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

Я бы посоветовал вам сначала загрузиться в среду LiveCD, чтобы сначала получить резервные копии (скопировать их на внешний USB-диск или в другой раздел), а затем начать снова.


2
Точно, если вы не переустановите все, вы можете ожидать, что через несколько месяцев появятся странные сбои, сбои и т . Д.
JanC

3

/usr/libоткровенно говоря, содержал общие библиотеки всего, кроме критически важного для запуска программного обеспечения (это то, что входит /lib/и вещи, которые вы не устанавливали через менеджер пакетов (обычно /usr/local/lib).

Короткая версия, вы только что подключили свою систему.

Теперь, если у вас все еще /var/cache/apt/archivesполно вещей, с небольшой рассудительной магией, вы можете спасти ситуацию.

Проверьте, содержит ли он архивы для следующих пакетов:

libxapian
libsigc++
apt
libcwidget
libsqlite
libboost-iostreams 

Эти пакеты содержат библиотеки, в /usr/libкоторых aptitudeтребуется работать. Если вы можете найти в них пакеты, /var/cache/apt/archivesвы можете переустановить их вручную dpkg -i <packagename, и после того, как все они будут установлены, aptitude сможет запускаться.

Затем, выполнив команду, aptitude reinstall ~iвы будете принудительно переустанавливать каждый пакет, который уже был установлен, что, как мы надеемся, должно восстановить вашу систему. Я не могу дать абсолютных гарантий, потому что нанесенный вами ущерб в данном случае действительно впечатляет ...


1

Я испытал бы желание загрузиться с live-CD Ubuntu 11.04 и попытаться скопировать недостающие файлы обратно.

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


0

Когда я делал что-то подобное, мне посчастливилось понять, прежде чем пытаться перезагрузить компьютер. На данный момент ваша система по-прежнему будет в основном работать. Мой подход состоял в том, чтобы создать виртуальную коробку с той же версией ОС и скопировать отсутствующие файлы из нее. если вы разрешите ssh доступ в гостевой виртуальной машине, вы можете использовать rsync из терминала в вашей основной системе, чтобы загружать только отсутствующие файлы и ссылки. В моем случае было недостаточно файлов, чтобы было проще / безопаснее копировать вручную с помощью scp, поэтому следующее не проверено (!)

sudo rsync -avu user@guestVB:/usr/lib /usr/lib

-a - режим архива (рекурсивный, копирует символические ссылки и атрибуты, включая метки времени, разрешения и т. д.)

-u пропускает, если конечная копия новее

-v многословен

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.