web-dev-qa-db-fra.com

Comment déclasser le noyau après une mauvaise mise à jour (16.04)

Les mises à niveau récentes du noyau Ubuntu 16.04 (4.4.0-89 et -91) ont mal échoué sur mon ordinateur portable. Heureusement, la version précédente, qui fonctionne toujours, est toujours installée (4.4.0-57). Pour l'instant, Grub est configuré pour afficher un menu et je sélectionne manuellement l'option -57 au démarrage, mais cela semble fragile et risque de se rompre avec un futur Sudo apt upgrade.

Je pense que je veux:

  • Supprimer -89 et -91, car ils ne me font aucun bien.
  • Faire de -57 la valeur par défaut pour Grub, de manière à ce que les mises à niveau persistent.
  • Pour que le -57 reste installé, même si j'installe une mise à niveau ultérieure du noyau
  • Pour pouvoir facilement essayer les mises à jour ultérieures du noyau, mais revenir à -57 en cas d'échec. Ma principale préoccupation est -57 étant automatiquement supprimé.
  • Si je trouve une mise à jour qui fonctionne ultérieurement, il vous sera facile de revenir à annuler tout cela et de revenir aux mises à jour suivantes du noyau.

Essayer de supprimer -91 avec Sudo apt remove linux-image-4.4.0-91-generic me oblige à supprimer linux-generic et linux-headers-generic. Cela semble mauvais, donc je ne l'ai pas essayé.

Je peux trouver une variété de questions sur le problème général, mais aucune ne semble répondre à tous mes objectifs, et la plupart sont assez âgées pour que je ne pense pas qu'elles s'appliquent davantage.

Quelle est la meilleure façon de faire cela?

Addendum : Ceci a été signalé comme un doublon de Comment empêcher la mise à jour d'un paquet spécifique? . Cette réponse pourrait répondre à une partie de ma question, mais ne traite pas de la situation dans son ensemble.

Globalement, le problème est que le noyau est traité de manière inhabituelle. Il est installé via linux-generic, qui n'est rien d'autre qu'une dépendance des en-têtes linux-image-generic et linux-image. Celles-ci ne sont que des dépendances de linux-linux-image-VERSION-generic et des en-têtes-VERSION-generic, des paquets à noter pour l'intégration du numéro de version dans le nom du paquet (sans doute pour faciliter l'installation multiple en parallèle).

Plus spécifiquement, ne sont pas abordés dans cette réponse:

  • Ne traite pas de la façon de supprimer -89 et -91.
  • N'indique pas comment faire de -57 la valeur par défaut pour Grub, même si j'installe des mises à jour ultérieures.
  • Ne traite pas de la manière de s'assurer que -57 reste installé, même si j'installe des mises à jour ultérieures. Même si la solution est de conserver un ou plusieurs packages, quels sont les packages à utiliser, quels sont les packages? S'il s'agit de conserver linux-generic, comment puis-je le rétrograder en premier?
14
Alan De Smet

Supprimez le dernier noyau en

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

Cela désinstallera les méta-packages linux-generic, linux-image-generic et linux-headers-generic. Les noyaux ne seront jamais améliorés.

Pour revenir en arrière, vous pouvez exécuter

Sudo apt install linux-generic

Cela installera le dernier noyau et les noyaux recevront des mises à jour.

linux-generic est un méta-paquet. Il est vide, mais dépend de deux autres méta-packages: linux-image-generic et linux-headers-generic.

Les deux derniers renvoient à la dernière image du noyau et aux en-têtes.

Si vous supprimez les méta-packages, rien ne sera supprimé de Linux, mais l'image du noyau et les en-têtes ne recevront pas de mises à jour. Vous pouvez toujours les installer plus tard. Ils vont extraire les "vrais" derniers paquets du noyau.

La solution consiste donc à supprimer manuellement les packages du noyau que vous ne souhaitez pas utiliser, ainsi que les méta-packages.

15
Pilot6

Bien que la solution Pilot6 soit peut-être la meilleure solution, vous pouvez prendre des mesures moins drastiques.

Personnellement, je supprimerais les noyaux que vous ne voulez pas du centre logiciel, puis je mettrais ces paquets en attente - voir Comment empêcher la mise à jour d'un paquet spécifique?

Il s’agit d’un changement anodin et vous pouvez facilement annuler ou annuler le changement.

3
Panther