Jak obniżyć wersję jądra po złej aktualizacji (16.04)

20

Najnowsze aktualizacje jądra Ubuntu 16.04 (4.4.0-89 i -91) zawiodły na moim laptopie. Na szczęście mam poprzednią, działającą wersję, nadal zainstalowaną (4.4.0-57). Na razie mam skonfigurowanego Gruba, aby pokazywał mi menu, i ręcznie wybieram -57 przy starcie, ale wydaje się to kruche, prawdopodobnie zepsuje się w przyszłości sudo apt upgrade.

Myślę, że chcę:

  • Aby usunąć -89 i -91, ponieważ nie robią mi nic dobrego.
  • Aby ustawić -57 jako domyślny dla Grub, w sposób, który będzie trwał przez aktualizacje.
  • Aby upewnić się, że -57 pozostanie zainstalowany, nawet jeśli zainstaluję późniejszą aktualizację jądra
  • Aby móc łatwo wypróbować późniejsze aktualizacje jądra, ale w razie niepowodzenia powróć do -57. Moim głównym problemem jest automatyczne usunięcie -57.
  • Jeśli znajdę działającą późniejszą aktualizację, łatwą ścieżkę do powrotu do cofnięcia tego wszystkiego i powrotu do kolejnych aktualizacji jądra.

Próba usunięcia -91 za pomocą sudo apt remove linux-image-4.4.0-91-genericwymaga usunięcia linux-generic i linux-headers-generic. To wydaje się złe, więc nie próbowałem.

Mogę znaleźć wiele pytań na temat ogólnego problemu, ale wydaje się, że żadne nie odnosi się do wszystkich moich celów, a większość z nich jest na tyle duża, że ​​nie sądzę, aby miały one więcej zastosowania.

Jak najlepiej to zrobić?

Dodatek : Oznaczono go jako duplikat Jak zapobiec aktualizacji określonego pakietu? . Ta odpowiedź może dotyczyć części mojego pytania, ale nie odnosi się do większego obrazu.

Ogólnie rzecz biorąc, problemem jest to, że jądro jest obsługiwane w nietypowy sposób. Jest instalowany za pośrednictwem linux-generic, który jest niczym innym jak zależnością od linux-image-generic i linux-image-headers. Te z kolei są tylko zależnościami od pakietów linux-linux-image-VERSION-generic i headers-VERSION-generic, które są godne uwagi do wypalenia numeru wersji w nazwie pakietu (przypuszczalnie w celu ułatwienia instalacji wielu równolegle).

Konkretnie nie ujęte w tej odpowiedzi są:

  • Nie dotyczy sposobu usuwania -89 i -91.
  • Nie dotyczy tego, jak ustawić -57 jako domyślny dla Grub, nawet jeśli zainstaluję późniejsze aktualizacje.
  • Nie dotyczy sposobu zapewnienia, że ​​-57 pozostanie zainstalowany, nawet jeśli zainstaluję późniejsze aktualizacje. Nawet jeśli odpowiedzią jest posiadanie jednego lub więcej pakietów, biorąc pod uwagę kilka zaangażowanych pakietów, które z nich chciałbym zatrzymać? Jeśli chodzi o trzymanie linux-generic, jak mogę go najpierw obniżyć?
Alan De Smet
źródło
Jest bardzo mało prawdopodobne, aby jądra „zawiodły” na twoim laptopie. Prawdopodobnie zainstalowałeś niewłaściwy sterownik i „nie udało się” po aktualizacji jądra. Czy zainstalowałeś jakiś sterownik grafiki?
Pilot6
Jeśli usuniesz najnowsze jądro i Linux-generic z nagłówkami, osiągniesz swój cel. Ale jak powiedziałem, problem jest inny.
Pilot6
1
„nie powiodło się” nie było wifi i X był niezadowolony z mojej grafiki. Oba są zintegrowanymi i używanymi sterownikami Intel. Problem utrzymywał się przez wiele restartów, w tym pełne wyłączenie / włączenie zasilania. Więc moim celem było zatrzymanie się, dopóki nie mogłem poważnie zbadać sprawy. Oczywiście zaczynam zbierać informacje do poważnego dochodzenia i -91 zaczyna działać zgodnie z oczekiwaniami. westchnienie , na razie trzymam kciuki.
Alan De Smet,
1
To nie jest duplikat. Nie chodzi tylko o zamrożenie jakiejś paczki. Może jest to duplikat, ale nie z proponowanego pytania.
Pilot6

Odpowiedzi:

19

Usuń najnowsze jądro przez

sudo apt remove linux-image-4.4.0-91-generic linux-headers-4.4.0-91-generic

Że będzie odinstalować meta pakiety linux-generic, linux-image-generici linux-headers-generic. Jądra nigdy nie będą aktualizowane.

Aby to cofnąć, możesz uruchomić

sudo apt install linux-generic

To zainstaluje najnowsze jądro, a jądra otrzymają aktualizacje.

linux-genericto pakiet meta. Jest pusty, ale zależy od dwóch innych meta pakietów: linux-image-generici linux-headers-generic.

Dwa ostatnie wskazują na najnowszy obraz jądra i nagłówki.

Jeśli usuniesz pakiety meta, nic nie zostanie usunięte z Linuksa, ale obraz jądra i nagłówki nie otrzymają aktualizacji. Zawsze możesz je zainstalować później. Wyciągną najnowsze „prawdziwe” pakiety jądra.

Rozwiązaniem jest więc ręczne usunięcie niepotrzebnych pakietów jądra, a także pakietów meta.

Pilot 6
źródło
3

Chociaż rozwiązanie Pilot6 może być najlepszym rozwiązaniem, możesz zrobić mniej drastyczne środki.

Osobiście usunęłbym jądra, których nie chcesz, z centrum oprogramowania, a następnie zawiesiłem te pakiety - zobacz Jak zapobiec aktualizacji konkretnego pakietu?

Jest to trywialna zmiana i dość łatwo możesz ją zmienić lub cofnąć.

Pantera
źródło
Który pakiet sugerujesz trzymać?
Pilot6
Linux-generic jest prawdopodobnie wystarczający, nie jestem pewien. Może być konieczne dodanie innych i może być konieczne określenie dokładnego jądra, ale wątpię w to.
Panther
3
sudo apt-mark hold linux-image-generic linux-headers-genericzrobi
Panther
1
@ Pilot6 - Nie, możesz zatrzymać stare jądra i zaznaczyć grub, które jądro ma zostać uruchomione. askubuntu.com/questions/216398/…
Panther
1
Tak, możesz. Jest to jednak zbyt skomplikowane i nie ma praktycznego sensu.
Pilot6,