1

Я использую Debian Wheezy более года без проблем, пока неделю назад. По непонятной причине система внезапно решила, что ядро Linux настроено только наполовину, и ни одно из исправлений, которые я нашел в сети, не сработало. В результате apt пытается исправить это каждый раз, когда выполняются обновления, и терпит неудачу.

подробности

симптом

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

Любые действия по обновлению apt заканчиваются следующим:

Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
E: /usr/sbin/update-initramfs.orig.initramfs-tools - command not found
E: On Debian based systems, update-initramfs from initramfs-tools
E: can be installed with:
E:   apt-get install initramfs-tools
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-4-amd64.postinst line 696.
dpkg: error processing linux-image-3.2.0-4-amd64 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 linux-image-3.2.0-4-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ядро

Практически та же проблема была описана в вопросе Ask Ubuntu. Принятый ответ указал на проблему с файлом статуса dpkg . Запись о состоянии для linux-image-3.2.0-4-amd64 говорит, что она настроена наполовину.

В качестве первого шага я попробовал это:

administrator@Kwheezy:~$ sudo dpkg-reconfigure linux-image-3.2.0-4-amd64
/usr/sbin/dpkg-reconfigure: linux-image-3.2.0-4-amd64 is broken or not fully installed

Переустановка не помогла, так что указывает на поломку.

Решение Ask Ubuntu состояло в том, чтобы удалить запись из файла состояния dpkg а затем переустановить. В моем случае это тоже не сработало. Когда процесс был завершен, файл состояния dpkg заменил запись другим, который все еще сказал, что он наполовину настроен, и поведение системы было таким же.

Способный Выход

Сосредоточение внимания на сообщениях об ошибках в выводе apt . Ошибки всегда начинаются с:

/usr/sbin/update-initramfs.orig.initramfs-tools - command not found

Конечно же, этот файл не существует. Полезное сообщение сообщает, что его можно установить, установив initramfs-tools. Это уже было установлено, но я переустановил его. Оказывается, apt уже делал это самостоятельно. Все сообщения об ошибках, следуя инструкциям по установке initramfs-tools , генерируются этой попыткой установки, которая никогда не приводит к установке /usr/sbin/update-initramfs.orig.initramfs-tools.

Резюме

  • У меня есть последнее доступное ядро Linux из репозитория Wheezy. Это хорошая копия, все зависимости соблюдаются, и нет никаких сообщений о проблемах других пользователей.
  • Система сообщает, что она не полностью настроена. Я не нашел способа ни настроить его, ни заставить систему перестать думать, что это не так.

1 ответ1

2

разрешение

sudo apt-get remove live-tools
sudo apt-get install --reinstall initramfs-tools
sudo apt-get install -f

объяснение

Получив лучшее представление о системе fixer1234 в чате, я определил, что установленный пакет live-tools конфликтует с initramfs-tools .

Когда live-tools установлен, он переопределяет /usr/sbin/update-initramfs своим собственным сценарием и помещает оригинал в /usr/sbin/update-initramfs.orig.initramfs-tools .

live-tools есть некоторые проверки работоспособности, которые обнаруживают, работает ли она на работающей системе. Если он не находится в действующей системе и находится в установленной системе, он пытается запустить /usr/sbin/update-initramfs.orig.initramfs-tools , который является правильным сценарием для обновления initramfs.

В системе fixer1234 был удален файл /usr/sbin/update-initramfs.orig.initramfs-tools .

Поскольку система является установленной системой, вероятно, в live-tools необходимости, поэтому я рекомендовал ее удалить.

Вот как работает каждый шаг, предложенный в разделе "Решение" выше:

sudo apt-get remove live-tools

Удаление live-tools попытается восстановить /usr/sbin/update-initramfs.orig.initramfs-tools обратно в /usr/sbin/update-initramfs , но так как /usr/sbin/update-initramfs.orig.initramfs-tools не делает не существует, будет ошибка.

live-tools все равно будут удалены, и это главное.

Мы все еще не /usr/sbin/update-initramfs .

sudo apt-get install --reinstall initramfs-tools

Чтобы восстановить /usr/sbin/update-initramfs , мы переустанавливаем пакет, который предоставляет этот файл. А именно, initramfs-tools .

sudo apt-get install -f

Ваша установка ядра была неполной из-за ошибки в live-tools и initramfs-tools , поэтому для завершения установки и решения всех проблем с пакетом необходим последний шаг.

Теперь у вас должна быть полностью работающая система Debian.

(Кстати, эти шаги теоретически работают на Debian 8, Ubuntu 12.04, Ubuntu 14.04, Ubuntu 15.10, Ubuntu 16.04 и Ubuntu 16.10.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .