web-dev-qa-db-fra.com

Pourquoi Ubuntu ne supprime-t-il pas automatiquement les anciens noyaux?

Je me demande pourquoi Ubuntu ne supprimera pas automatiquement les anciens noyaux.

Il est certain que rien n’est parfait et que les choses peuvent mal tourner, alors au cas où une mise à jour ne fonctionnerait pas, disposer d’un noyau de sauvegarde serait peut-être génial. Mais il suffirait aussi de ne garder que le dernier noyau et celui d'avant le dernier et de supprimer tous les anciens.

Y a-t-il une raison pour laquelle Ubuntu ne le fera pas automatiquement?.

94
Registered User

Y a-t-il une raison pour laquelle Ubuntu ne le fera pas automatiquement?

Je ne vois qu'une seule raison: cela ne fonctionne pas parfaitement; il n’existe actuellement aucun moyen propre de décider de la définition de "vieux noyaux". "ancien" ne signifie pas "non utilisé" ni "non désiré". Et toute erreur dans ceci tuera la machine d'un utilisateur.

Jusqu'à présent, la méthode manuelle est privilégiée, car elle confère aux utilisateurs le pouvoir de supprimer.


Ressources pour cette conclusion:

Ubuntu WIKI: Proposition de suppression des anciens noyaux

Last-good-boot est entièrement implémenté dans Intrepid/8.10 final, mais il a été désactivé car il n'a pas été jugé suffisamment stable. Le paramètre est une seule ligne dans le fichier/etc/default/kernel-helper-rc.


Tableau de bord: aptitude doit-il fournir un moyen de supprimer les anciennes versions du noyau?

apt-get possède une fonctionnalité de suppression automatique qui désinstalle tous les packages qui ne sont pas nécessaires en tant que dépendances et qui n'ont pas été installés manuellement. Depuis Ubuntu 14.04, tous les noyaux et en-têtes obsolètes doivent automatiquement être signalés comme inutiles et peuvent donc être purgés à l'aide de la commande apt-get autoremove. (Selon certains rapports, cela ne fonctionne pas encore complètement) . Je ne suis pas au courant d'une fonctionnalité d'aptitude similaire à celle qui est autoremove d'apt-get.


Ubuntu-devel: mécanisme fourni par le Distro pour nettoyer les anciens noyaux

Tout en convenant qu'il serait très utile et semble approprié de procéder au nettoyage automatique, il existe un léger piège (ou deux). Il existe différentes variétés de noyaux et les gens peuvent délibérément installer ceux-ci en parallèle. De plus, diverses versions comportaient parfois un ensemble variable de paquets dépendants. Pendant un moment, il ne devrait s'agir que de linux-backports-modules (il y avait eu linux-ubuntu-modules et linux-restricted-modules). Bien que ce ne soit pas vraiment un problème. Du point de vue de la concordance des motifs, les noyaux génériques en pae sont un peu pénibles, car ils ont tendance à gâcher le "utiliser la dernière partie d'une division en" - "pour la saveur". Quoi qu'il en soit, je pense que le principal problème concerne les différentes saveurs. Un nettoyage automatique devrait donc conserver les trois derniers de chaque, même si cela a tendance à laisser plus de noyaux.

45
Rinzwind

Il y a deux choses qui se passent ici:

  1. Les nouveaux noyaux sont des packages complètement nouveaux, et non des packages mis à jour avec un numéro de version plus récent. L'installation d'une nouvelle image du noyau ne remplace donc pas les anciennes. Ils coexistent.

  2. Ubuntu utilise un tas d'apt magique pour protéger les deux dernières versions du noyau de 'apt-get autoremove' (la dernière et la dernière initialisée). Voir /etc/apt/apt.conf.d/01autoremove-kernels pour plus de détails.

Ce que tout cela signifie, c'est qu'une fois que vous avez redémarré le dernier noyau, 'apt-get autoremove' devrait supprimer tous les packages du noyau, à l'exception du dernier et du dernier.

Les anciens noyaux s'accumulent toujours dans/boot car le retrait automatique n'est pas activé dans Ubuntu par défaut - vous devez soit l'exécuter manuellement que de temps en temps, ou vous devez l'activer.

Cela pourrait changer dans 16.04 - a la correction de bogue dans le paquet Unattended-upgrades activera le retrait automatique des anciens noyaux par défaut.

21
andrewdevans

Ce script fera le travail. Il supprimera tous les noyaux qui ne sont pas utilisés.

Sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs Sudo apt-get -y purge

Sinon, ne pas enlever les noyaux doit être une chose assez nouvelle. J'ai l'un après l'autre un système Ubuntu 14 confronté à ce problème de partition de démarrage complète en raison d'anciennes erreurs du noyau.

Cela peut rendre la vie d'utilisateurs moins expérimentés extrêmement compliquée. C'est en fait un piège noob. Canonical devrait résoudre ce problème.

18
psnizek

La méthode simple pour supprimer les anciens noyaux consiste à utiliser Ubuntu-Tweak. Vous sélectionnez la balise Janitor et cochez la case Old Kernel. Cela vous donne une liste de noyaux dont il pense que vous n’avez plus besoin. Vous pouvez tous les sélectionner et cliquer sur Nettoyer et, au bout d'un moment, le travail est terminé. Étant nerveux, j’ai vérifié le noyau que j’utilisais avec uname -a, mais cela n’apparaissait pas dans la liste. Cela a fonctionné sur l'ordinateur portable de ma femme (qui a une partition de démarrage plutôt petite et montrait des avertissements) et le mien (qui fonctionnait bien). Est-ce que tout le monde est d'accord pour dire que c'est sécuritaire?

3
Chris_Dorking

Je recommande d'utiliser Ubuntu Tweak pour supprimer les anciens noyaux. regarde ici:

Comment puis-je supprimer les anciennes versions du noyau pour nettoyer le menu de démarrage?

2
skonsoft

Je ne pouvais pas installer le logiciel. Apt-get n'a pas pu installer linux-headers, signalant que le disque était plein .$ df -i a signalé que IUse% était à 100%: le disque disposait de suffisamment d'espace libre, mais ses inodes étaient épuisés. $ Sudo dpkg --configure -a a échoué, tout comme $ Sudo apt-get -f install et $ Sudo apt-get autoremove

Le problème a été résolu lorsque j'ai supprimé manuellement plusieurs des dossiers du noyau les plus anciens de/usr/src - il suffit d'utiliser $ rm ou de les supprimer par la touche Maj. Cela a libéré suffisamment d’espace inode pour permettre à $ apt-get -f install de se terminer.

Après cela, je n'avais que 10 noyaux Linux. J'ai couru $ Sudo apt-get autoremove qui a supprimé 1,4 Go de fichiers. Ce qui pose la question: vraiment ?? Vraiment?? Mais honnêtement, est-ce la bonne façon de gérer un système convivial?

2
Gareth

Ubuntu ne supprime automatiquement que les éléments dont vous n'avez plus besoin ou qui posent un risque pour la sécurité ... Je suppose donc que cela tient à des raisons de sécurité. Disons pour une raison étrange qu'un nouveau noyau ne soit plus sécurisé ... Ensuite, vous serez redirigé temporairement vers l'ancien noyau pendant la réparation du nouveau. De nouveaux noyaux peuvent également accompagner des modifications. Par conséquent, certains noyaux sont acceptés. Par exemple, si vous mettez à jour les versions 14.04.1 à 14.04.2, vous pouvez opter pour un nouveau noyau. Toutefois, en avril, lorsque la nouvelle version 15.04 de LTS sera disponible, vous noyaux mises à jour. Donc, je pense que c'est pour des raisons de sécurité.

mais si vous voulez l'enlever, essayez d'exécuter cette ligne de commande

Sudo apt-get autoremove

Cela devrait supprimer tous les logiciels inutiles tels que votre ancien noyau, sinon essayez

Sudo apt-get remove (kernels-name)
2
Tactux

Je pense que la dernière version d'Ubuntu 15.10 pourrait supprimer automatiquement les anciens noyaux, si vous modifiez le fichier /etc/apt/apt.conf.d/50unattended-upgrades: Change line

// Unattended-Upgrade :: Remove-Unused-Dependencies "false";

à

Unattended-Upgrade :: Remove-Unused-Dependencies "true";

Je n'ai pas testé cela, cependant.

2
jarno