В то время как я устанавливал MRTG, по ошибке я удалил /usr/lib/*.so.*
и /usr/lib/*.so
Я теперь неспособен к начальной загрузке своя система теперь, она застревает в экране-заставке и когда я нажимаю кнопку PAGEDOWN, я вижу, что существует несколько вещей, которым не удается загрузиться.
Однако DHCP и WebMin работают, и от Webmin I видят системные журналы, который говорит мне, что чашки не загружаются потому что libpipeline.so.1
Отсутствует и несколько других.
Мой компьютер работает 11.04
Так как Вы только удалили /usr/lib/*
и нет /lib/*
, можно, вероятно, восстановиться. Я думаю все программы, которые критически необходимо восстановить система только пользуются библиотеками от /usr/lib
.
Начальная загрузка к текстовому приглашению ко входу в систему. Если нормальная начальная загрузка не дает Вам a login:
подсказка в текстовом режиме, загрузитесь только с минимальными сервисами. Нажмите и держите Сдвиг, когда Ваши запуски компьютера для показа Личинки запросят; необходимо нажать клавишу после того, как BIOS инициализировал клавиатуру, но прежде чем Личинка загружается, который на некоторых машинах оставляет только маленькое окно времени и может потребовать нескольких attemps. При подсказке Личинки придавите для выделения однопользовательской записи загрузки режима и начальной загрузки это.
После того как Вы имеете командную строку, работаете 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
не может загрузить пакеты, сначала загрузить несколько ключевых пакетов с живого CD. zlib1g
и libssl0.9.8
два пакета, в которых Вы, очень вероятно, будете нуждаться вначале.
Можно провести неделю, находя все, что это пропускает, или можно провести час, просто делающий переустанавливание с CD и затем возвращающий все старые пакеты.
Я предложил бы, чтобы Вы загрузились в среду LiveCD сначала для получения, резервные копии вещей сначала (скопируйте их во внешнюю Карту памяти или другой раздел), и затем запустите снова.
/usr/lib
содержавший общие библиотеки, откровенно говоря, все кроме критического по отношению к запуску программного обеспечения (это - то, что входит /lib/
и материал Вы не устанавливали через диспетчер пакетов (обычно /usr/local/lib
).
Короткая версия, Вы просто полили из шланга свою систему.
Теперь, если Вы все еще имеете /var/cache/apt/archives
полный материала, с небольшим разумным magickery Вы смогли спасать ситуацию.
Проверьте, содержит ли это все еще архивы для следующих пакетов:
libxapian
libsigc++
apt
libcwidget
libsqlite
libboost-iostreams
Те пакеты содержат библиотеки в /usr/lib
это aptitude
требует, чтобы работать, Если можно найти пакеты в /var/cache/apt/archives
можно переустановить их вручную с dpkg -i <packagename
, и после того как они все установлены, способность должна смочь работать.
Затем путем выполнения команды aptitude reinstall ~i
Вы вызовете переустанавливание каждого пакета, который был уже установлен, который, надо надеяться, должен восстановить Вашу систему. Я не могу сделать абсолютные гарантии, потому что ущерб, который Вы нанесли, является действительно довольно захватывающим в этом случае...
Я испытал бы желание загрузиться с живого CD Ubuntu 11.04 и попытаться скопировать недостающие файлы назад.
Прежде, чем сделать что-либо, проверьте, что у Вас есть хорошие резервные копии любых сгенерированных пользователями файлов данных. В противном случае я загрузился бы, живой CD монтируют жесткий диск, только для чтения, и делают резервные копии как можно скорее.
Когда я сделал что-то подобное, мне повезло понять прежде, чем делать попытку перезагрузки. На данном этапе Ваша система будет все еще главным образом рабочей. Мой подход должен был создать virtualbox с той же версией ОС и скопировать недостающие файлы с этого. если Вы предоставляете ssh доступ в своего virtualbox гостя, можно использовать rsync от терминала в основной системе для впитывания только файлов и ссылок, которые отсутствуют. В моем случае были небольшое количество достаточно файлов, пропускающих это, было самым легким/самым безопасным скопировать вручную использование scp, таким образом, следующее не тестируется (!)
sudo rsync -avu user@guestVB:/usr/lib /usr/lib
- режим архивирования (рекурсивный, символьные ссылки копий и атрибуты включая метки времени, полномочия и т.д.)
- u пропускает, если целевая копия является более новой
- v является подробным