Jądro Linux „w połowie skonfigurowane”

1

Debian Wheezy prowadzę od ponad roku bez żadnych problemów, jeszcze tydzień temu. Bez wyraźnego powodu system nagle zdecydował, że jądro Linuksa jest tylko w połowie skonfigurowane i żadna z poprawek, które znalazłem w Internecie, nie zadziałała. W rezultacie aptpróbuje to naprawić za każdym razem, gdy wykonywane są aktualizacje, i kończy się niepowodzeniem.

Detale

Objaw

Za każdym razem, gdy zostaną uruchomione aktualizacje apt, w pewnym momencie spróbuje naprawić jądro, zawiedzie, a proces aktualizacji zakończy się z zaleceniem błędu, a następnie pojawi się komunikat, że system jest aktualny.

Wszelkie działania aktualizacyjne aptkończą się następująco:

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)

Jądro

Praktycznie ten sam problem został opisany w pytaniu na Ask Ubuntu . Przyjęta odpowiedź wskazywała na problem z dpkgplikiem statusu. Wpis statusu dla linux-image-3.2.0-4-amd64powiedział, że jest w połowie skonfigurowany.

Jako pierwszy krok spróbowałem:

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

Ponowna instalacja nie pomogła, więc wskazuje na uszkodzenie.

Rozwiązanie Ask Ubuntu polegało na usunięciu wpisu z dpkgpliku statusu, a następnie ponownej instalacji. W moim przypadku to też nie działało. Po zakończeniu procesu dpkgplik statusu zastąpił wpis innym, który wciąż mówi, że jest w połowie skonfigurowany, a zachowanie systemu było takie samo.

Wyjście Apt

Koncentrując się na komunikatach o błędach na aptwyjściu. Błędy zawsze zaczynają się od:

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

Rzeczywiście, ten plik nie istnieje. Pomocny komunikat informuje, że można go zainstalować, instalując initramfs-tools. To było już zainstalowane, ale zainstalowałem go ponownie. Okazuje się, że aptrobił to już sam. Wszystkie komunikaty o błędach zgodne z instrukcjami instalacji initramfs-toolssą generowane przez tę próbę instalacji, która nigdy nie skutkuje /usr/sbin/update-initramfs.orig.initramfs-toolsinstalacją.

Podsumowanie

  • Mam najnowsze dostępne jądro Linuksa z repozytorium Wheezy. Jest to dobry egzemplarz, wszystkie zależności są spełnione i nie ma raportów o innych użytkownikach mających z tym problemy.
  • System zgłasza, że ​​nie jest w pełni skonfigurowany. Nie znalazłem sposobu, aby go skonfigurować lub sprawić, że system przestanie myśleć, że tak nie jest.
fixer1234
źródło
Czy możesz podać zawartość /etc/kernel/postinst.d/initramfs-tools? Powinien próbować się załadować /usr/sbin/update-initramfs, a nie /usr/sbin/update-initramfs.orig.initramfs-tools. Jeśli plik /usr/sbin/update-initramfsistnieje, spróbuj sudo ln -s /usr/sbin/update-initramfs{,.orig.initramfs-tools}ponownie uruchomić aktualizację.
Deltik
@Deltik, nie jestem programistą, ale wygląda na to, że ładuje to / usr / sbin / update-initramfs. Nadal chcesz zawartość /etc/kernel/postinst.d/initramfs-tools? Wygenerowałem dowiązanie symboliczne i uruchomiłem aktualizację. Wywołał nowy zestaw błędów (wygląda na to, że link może nie odpowiadać oczekiwaniom). Gdzie jest dobre miejsce do przesyłania plików?
fixer1234
To jest bardziej skomplikowane niż myślałem. Czy chcesz omówić to na czacie ?
Deltik

Odpowiedzi:

2

Rozkład

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

Wyjaśnienie

Po uzyskaniu lepszego obrazu systemu fixer1234 na czacie , stwierdziłem, że zainstalowany pakiet live-toolsjest w konflikcie initramfs-tools.

Po live-toolszainstalowaniu zastępuje /usr/sbin/update-initramfswłasny skrypt i wstawia oryginał /usr/sbin/update-initramfs.orig.initramfs-tools.

live-toolsma pewne testy poprawności, które wykrywają, czy jest w systemie na żywo. Jeśli nie ma go w systemie na żywo i jest w systemie zainstalowanym, próbuje uruchomić /usr/sbin/update-initramfs.orig.initramfs-tools, co jest poprawnym skryptem do aktualizacji initramfs.

W systemie fixer1234 /usr/sbin/update-initramfs.orig.initramfs-toolszostały usunięte.

Ponieważ system jest zainstalowanym systemem, live-toolsprawdopodobnie nie jest potrzebny, dlatego zaleciłem jego usunięcie.

Oto jak działa każdy krok zaproponowany w powyższej sekcji „Rozwiązanie”:

sudo apt-get remove live-tools

Usunięcie live-toolsspróbuje przywrócić z /usr/sbin/update-initramfs.orig.initramfs-toolspowrotem /usr/sbin/update-initramfs, ale ponieważ /usr/sbin/update-initramfs.orig.initramfs-toolsnie istnieje, wystąpi błąd.

live-tools będą nadal usuwane i to jest najważniejsze.

Wciąż brakuje /usr/sbin/update-initramfs.

sudo apt-get install --reinstall initramfs-tools

Aby przywrócić /usr/sbin/update-initramfs, ponownie instalujemy pakiet, który zawiera ten plik. Mianowicie initramfs-tools.

sudo apt-get install -f

Instalacja jądra była niekompletna z powodu zdarzeń losowych z live-toolsa initramfs-tools, tak aby zakończyć instalację i rozwiązać wszystkie problemy pakiet potrzebny jest ten ostatni krok.

Teraz powinieneś mieć w pełni funkcjonujący system Debian.

(Nawiasem mówiąc, te kroki teoretycznie działają na Debian 8, Ubuntu 12.04, Ubuntu 14.04, Ubuntu 15.10, Ubuntu 16.04 i Ubuntu 16.10.)

Deltik
źródło
1
Chyba nigdy się nie dowiemy, co to spowodowało. Ale czytam wyjaśnienie i brzmi to realistycznie, ale nadal uważam, że Deltik użył magii w rozwiązaniu. :-) Fantastyczna praca! Dzięki.
fixer1234