Ядро Linux "наполовину налаштовано"


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)

Ядро

Практично така ж проблема була описана в запитанні на запитання 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 вихід

Зосередження уваги на повідомленнях про помилки у 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. Це хороша копія, всі залежності задовольняються, і немає повідомлень інших користувачів, які мають з цим проблеми.
  • Система повідомляє, що вона не повністю налаштована. Я не знайшов способу ні налаштувати його, ні змусити систему перестати думати, що це не так.

Чи можете ви надати вміст /etc/kernel/postinst.d/initramfs-tools? Це слід намагатися завантажувати /usr/sbin/update-initramfs, а не /usr/sbin/update-initramfs.orig.initramfs-tools. Якщо файл /usr/sbin/update-initramfsіснує, спробуйте, sudo ln -s /usr/sbin/update-initramfs{,.orig.initramfs-tools}а потім знову запустіть оновлення.
Deltik

@Deltik, я не програміст, але це схоже на те, що завантажується це / usr / sbin / update-initramfs. Все ще хочете вмісту /etc/kernel/postinst.d/initramfs-tools? Я створив симпосилання і запустив оновлення. Він створив новий набір помилок (схоже, посилання може не відповідати тому, що очікується). Де гарне місце для завантаження файлів?
fixer1234

Це складніше, ніж я думав. Чи хотіли б ви обговорити це у чаті ?
Делтік

Відповіді:


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.)


1
Здогадайтесь, ми ніколи не дізнаємося, що це спричинило. Але я читаю пояснення, і це звучить правдоподібно, але я все ще думаю, що Deltik використовував якусь магію в рішенні. :-) Фантастична робота! Дякую.
fixer1234
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.