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.

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.