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 nicht funktionieren 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 dies ein einfacher Weg, um all dies rückgängig zu machen und zu den folgenden Kernel-Updates zurückzukehren.
Um -91 mit zu entfernen, sudo apt remove linux-image-4.4.0-91-generic
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?
Antworten:
Entfernen Sie den neuesten Kernel von
Das wird Meta - Pakete deinstallieren
linux-generic
,linux-image-generic
undlinux-headers-generic
. Kernel werden niemals aktualisiert.Um es zurückzusetzen, können Sie ausführen
Damit wird der neueste Kernel installiert und der Kernel wird aktualisiert.
linux-generic
ist ein Metapaket. Es ist leer, hängt aber von zwei anderen Metapaketen ab:linux-image-generic
undlinux-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.
quelle
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 ich die Aktualisierung eines bestimmten Pakets verhindern?
Dies ist eine triviale Änderung, und Sie können die Änderung relativ einfach rückgängig machen oder rückgängig machen.
quelle
sudo apt-mark hold linux-image-generic linux-headers-generic
wird es tun