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 apt
pró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 apt
koń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 dpkg
plikiem statusu. Wpis statusu dla linux-image-3.2.0-4-amd64
powiedział, ż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 dpkg
pliku statusu, a następnie ponownej instalacji. W moim przypadku to też nie działało. Po zakończeniu procesu dpkg
plik 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 apt
wyjś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 apt
robił to już sam. Wszystkie komunikaty o błędach zgodne z instrukcjami instalacji initramfs-tools
są generowane przez tę próbę instalacji, która nigdy nie skutkuje /usr/sbin/update-initramfs.orig.initramfs-tools
instalacją.
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.
/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-initramfs
istnieje, spróbujsudo ln -s /usr/sbin/update-initramfs{,.orig.initramfs-tools}
ponownie uruchomić aktualizację.