Исправление сломанного менеджера пакетов dpkg и apt
Я работаю с виртуальной машиной, которой я не управлял в прошлом, и она в плохом состоянии (но мне нужно ее спасти). Я не эксперт по Linux, но за последние 5 лет я смог решить проблемы с помощью Google. Вчера, после целого дня, я не знаю, что еще делать, затем задавал глупые вопросы, просто излагая свою проблему.
- Система не будет выполнять обычную загрузку (однако я могу открыть спасательную корневую оболочку, в которой я могу смонтировать файловую систему и до некоторой степени включить сеть (я могу подключиться к внешним сетям, но не могу открыть порт 22 или запустить ssh deamon - Однако я могу запустить Apache и открыть порт 80)
- Я не могу установить или удалить программное обеспечение, поскольку dpkg всегда жалуется на старые образы заголовков Linux (я думаю, что бывший администратор вручную удалил заголовки Linux из загрузочного раздела, чтобы освободить место).
- Теперь каждый раз, когда я пытаюсь выполнить apt-get install или удалить или обновить или что-то еще, он жалуется, что там, где слишком много ошибок в dkpg и особенно там, где ошибки с некоторыми старыми образами linux (которых нет в моем загрузочном разделе), и он прерывается, Он также жалуется на отсутствие файлов (связанных со старыми заголовками Linux)
- Я нашел одну инструкцию, которая предложила переустановить grub2, которую я выполнил. Я думаю, что удаление работало, но установка сломалась так же, как не может быть установлено другое программное обеспечение. Я вполне уверен, что в следующий раз, когда я не буду перезагружать машину, я даже не смогу войти в систему спасения, потому что grub2, кажется, удален.
- Я не могу сделать что-то вроде
apt-get install linux-image-generic
Я понимаю, что в этом посте даже нет правильного вопроса, но я даже не знаю, как его сформулировать. Кажется, что так много всего сломано, что, очевидно, я как бы сбился с пути, с чего начать.
редактировать
вывод dpkg --get-selections
: http://pastebin.com/CRFaaJ7m
вывод apt-get install linux-generic
: http://pastebin.com/7t20Bavu
вывод dpgk --configure -a
: http://pastebin.com/Hpmch9dM
также я думаю, что вывод может быть интересным (особенно начиная со строки 484): http://pastebin.com/uUi86FtT
1 ответ
Мог видеть только одно старое ядро из dpkg
статус, но я не уверен, действительно ли это на диске.
Тем не мение:
Сделайте резервную копию файла состояния DPKG
cp /var/lib/dpkg/status /var/lib/dpkg/status.backup0
Очистить те ядра, которые были удалены вручную, из статуса DPKG
Проверьте, какая строка является записью пакета
grep -n linux-image-extra-3.13.0-93-generic /var/lib/dpkg/status
Открыть статус для редактирования (изменить
xxxxx
с номером строки)nano +xxxxx /var/lib/dpkg/status
Измените его статус на
deinstall
как этот примерPackage: linux-image-extra-3.13.0-93-generic Status: install ok installed
в
Package: linux-image-extra-3.13.0-93-generic Status: deinstall ok config-files
Ctrl+O для сохранения и Ctrl+X для выхода
Сделайте предыдущий шаг для следующих пакетов
linux-image-3.13.0-93-generic linux-image-extra-3.13.0-101-generic linux-image-3.13.0-101-generic
Модифицируйте скрипт DBus post -install, чтобы пропустить ошибки
nano /var/lib/dpkg/info/dbus.postinst
и комментарий
set -e
→#set -e
(вокруг строки № 5)Продолжить предыдущую установку
dpkg --configure -a
Исправить зависимости
apt -f install