it-swarm.com.de

Wie man einen Kernel nach einem schlechten Update downgraden kann (16.04)

Die letzten Upgrades auf den Ubuntu 16.04-Kernel (4.4.0-89 und -91) sind auf meinem Laptop fehlgeschlagen. Zum Glück habe ich die vorherige, funktionierende Version noch installiert (4.4.0-57). Im Moment ist Grub so konfiguriert, dass mir ein Menü angezeigt wird, und ich wähle manuell -57 beim Booten aus, aber dies scheint fragil zu sein, was in Zukunft wahrscheinlich zu Problemen führen wird Sudo apt upgrade.

Ich glaube ich will:

  • -89 und -91 zu entfernen, da sie mir nicht gut tun.
  • -57 als Standardeinstellung für Grub festlegen, so dass es auch nach Upgrades erhalten bleibt.
  • Damit bleibt der -57 installiert, auch wenn ich später ein Kernel-Upgrade installiere
  • Damit Sie später problemlos Kernel-Updates durchführen können, kehren Sie bei einem Fehler zu -57 zurück. Mein Hauptanliegen ist, dass -57 automatisch entfernt wird.
  • Wenn ich später ein funktionierendes Update finde, ist es ein einfacher Weg, all dies rückgängig zu machen und zu den folgenden Kernel-Updates zurückzukehren.

Beim Versuch, -91 mit Sudo apt remove linux-image-4.4.0-91-generic zu entfernen, muss ich linux-generic und linux-headers-generic entfernen. Das scheint schlecht, also habe ich es nicht ausprobiert.

Ich kann eine Vielzahl von Fragen zum allgemeinen Problem finden, aber keine scheint alle meine Ziele zu erreichen, und die meisten sind alt genug, dass ich glaube, dass sie nicht mehr zutreffen.

Wie geht das am besten?

Nachtrag : Dies wurde als Duplikat von Wie kann die Aktualisierung eines bestimmten Pakets verhindert werden? . Diese Antwort könnte einen Teil meiner Frage beantworten, geht aber nicht auf das Gesamtbild ein.

Allgemein ist das Problem, dass der Kernel auf ungewöhnliche Weise gehandhabt wird. Es wird über linux-generic installiert, was nichts anderes ist als eine Abhängigkeit von linux-image-generic und linux-image-headers. Dies sind wiederum nur Abhängigkeiten von linux-linux-image-VERSION-generic und headers-VERSION-generic, also Paketen, bei denen die Versionsnummer in den Paketnamen eingebrannt werden muss (vermutlich, um die parallele Installation mehrerer Pakete zu vereinfachen).

Insbesondere werden in dieser Antwort nicht angesprochen:

  • Behandelt nicht, wie -89 und -91 entfernt werden.
  • Behandelt nicht, wie man -57 zum Standard für Grub macht, auch wenn ich spätere Updates installiere.
  • Es wird nicht erläutert, wie sichergestellt werden kann, dass -57 installiert bleibt, auch wenn ich spätere Updates installiere. Selbst wenn die Antwort darin besteht, ein oder mehrere Pakete zu halten, welche würde ich dann halten, wenn es sich um mehrere Pakete handelt? Wenn es darum geht, Linux-Generika zu behalten, wie kann ich es zuerst downgraden?
16
Alan De Smet

Entfernen Sie den neuesten Kernel von

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

Dadurch werden die Metapakete linux-generic, linux-image-generic und linux-headers-generic deinstalliert. Kernel werden niemals aktualisiert.

Um es zurückzusetzen, können Sie ausführen

Sudo apt install linux-generic

Damit wird der neueste Kernel installiert und der Kernel wird aktualisiert.

linux-generic ist ein Metapaket. Es ist leer, hängt jedoch von zwei anderen Metapaketen ab: linux-image-generic und linux-headers-generic.

Die letzten beiden zeigen auf das neueste Kernel-Image und die neuesten Header.

Wenn Sie Metapakete entfernen, wird nichts vom Linux entfernt, aber das Kernel-Image und die Header werden nicht aktualisiert. Sie können sie später jederzeit installieren. Sie werden die neuesten "echten" Kernelpakete ziehen.

Die Lösung besteht also darin, die nicht gewünschten Kernelpakete und auch die Metapakete manuell zu entfernen.

17
Pilot6

Obwohl die Lösung von Pilot6 die beste Lösung ist, können Sie weniger drastische Maßnahmen ergreifen.

Ich würde persönlich die nicht gewünschten Kernel aus dem Software-Center entfernen und diese Pakete dann zurückstellen - siehe Wie kann die Aktualisierung eines bestimmten Pakets verhindert werden?

Dies ist eine triviale Änderung, und Sie können die Änderung ziemlich leicht rückgängig machen oder rückgängig machen.

3
Panther