Исправление сломанного менеджера пакетов 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 статус, но я не уверен, действительно ли это на диске.

Тем не мение:

  1. Сделайте резервную копию файла состояния DPKG

    cp /var/lib/dpkg/status /var/lib/dpkg/status.backup0
    
  2. Очистить те ядра, которые были удалены вручную, из статуса 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 для выхода

  3. Сделайте предыдущий шаг для следующих пакетов

    linux-image-3.13.0-93-generic
    linux-image-extra-3.13.0-101-generic
    linux-image-3.13.0-101-generic
    
  4. Модифицируйте скрипт DBus post -install, чтобы пропустить ошибки

    nano /var/lib/dpkg/info/dbus.postinst
    

    и комментарий set -e#set -e (вокруг строки № 5)

  5. Продолжить предыдущую установку

    dpkg --configure -a
    
  6. Исправить зависимости

    apt -f install
    
Другие вопросы по тегам