Pourquoi est-il dangereux de supprimer les anciens noyaux?

36

L'espace disque sur mon disque de démarrage est saturé, j'ai donc décidé de supprimer les anciens noyaux. J'ai trouvé cette page qui décrit exactement ce que je devrais faire: Documentation Lubuntu: Supprimer les anciens noyaux .

J'ai supprimé manuellement le noyau le plus ancien et tout va bien maintenant, mais je ne comprends pas une chose: à la fin de l'article, il existe un code qui peut supprimer toutes les anciennes versions du noyau, mais il est marqué comme réservé aux utilisateurs avancés.

Je ne comprends pas vraiment quel est le danger ici. Cela semble idiot, mais ils semblent dire qu'il pourrait y avoir plus d'un noyau utilisé par une machine spécifique à la fois.

Est-il possible que différentes applications sur ma machine Ubuntu puissent utiliser plusieurs noyaux simultanément? Pourquoi la suppression de tous les anciens noyaux est-elle automatiquement considérée comme dangereuse?

Sergei
la source
8
En fait, l'article ne contient pas les mots "danger" et "dangereux". Comment en êtes-vous arrivé à une conclusion aussi grossièrement exagérée?
Mikewever
2
Quelques fois, j'ai mis à niveau le dernier noyau et supprimé mon ancien noyau avant de redémarrer, mais je me suis rendu compte que sur mon système, le noyau ne fonctionnait pas et que le système ne pouvait pas démarrer. Maintenant, je fais d’abord le redémarrage, puis je supprime l’ancien noyau si tout va bien.
Matthew Lu

Réponses:

50

Supprimer les anciens noyaux n'est pas intrinsèquement dangereux, mais si vous supprimez tous vos noyaux et que vous redémarrez, vous resterez sur un écran Grub en colère. Réparer cela prend un savoir-faire important (comme ça mais avec un apt-get install linux-genericfinal).

La première fois que vous faites cela est assez excitant, mais les personnes qui cherchent à nettoyer leur menu Grub ou à récupérer de l’espace disque ne recherchent pas de sensations fortes.

Le danger vient du fait que des utilisateurs copient-collent un bloc de code qui, à leur insu et sans prendre en compte les risques, ne s'applique pas. Il existe de nombreux exemples de détection de vieux noyaux et peu sont parfaits. Même mon dernier effort a encore ses pièges. Et nous parlons d'un problème qui peut être résolu; de nombreuses publications sur Ask Ubuntu pourraient entraîner une perte permanente de données si elles n'étaient pas utilisées correctement.

Nous essayons de nous protéger contre les dommages en signalant le risque pour sensibiliser les utilisateurs aux problèmes potentiels . Dans le meilleur des cas, l'utilisateur sera préparé et équipé pour traiter un problème et, dans le pire des cas, au moins, il ne pourra pas se plaindre de n'avoir pas été averti.

Oli
la source
11
Ne supprimez pas tous vos noyaux (évidemment), mais ne supprimez pas non plus le noyau en cours d'exécution si vous venez d'installer un noyau mis à jour et que vous n'avez pas encore redémarré. Pourquoi? Si quelque chose se brise dans le noyau mis à jour, vous pouvez toujours sélectionner votre noyau précédent dans Grub et reprendre le travail. Sinon, vous serez coincé avec un système qui ne peut pas démarrer et vous devrez jouer au "jeu LiveCD" (pas un jeu amusant, BTW).
Nathan Osman
1
C'est presque aussi amusant que dd if=/dev/zero of=/dev/sda bs=512 count=1. Je ne me souviens pas de ce que j'essayais de faire (quelque chose au sujet des gestionnaires de démarrage multiples rendant ma vie gênante). J'ai passé environ sept heures sur un LiveCD à essayer de réparer mes tables de partition.
phyrfox
1
C'est aussi simple que ça, gardez (au moins) un noyau qui est testé et fonctionne définitivement. Quelqu'un - @NathanOsman - a dû l'exprimer avec des mots, je suppose. Deuxième leçon importante apprise ici, ne faites pas des choses dont vous ignorez les conséquences.
Nicolai
1
Je n'utiliserais pas le mot "passionnant", mais le sentiment était intense lorsque je l'ai fait.
MDeBusk
Ayant résolu les problèmes de noyau dans le passé, je suis beaucoup plus heureux de laisser trois noyaux. Je vais généralement avec le noyau en cours d’exécution, le noyau le plus récent et celui juste avant le noyau actuel. Cela me donne la dernière en date du redémarrage, celle connue pour fonctionner et la précédente si elle échoue pour une raison quelconque. C'est probablement exagéré, mais est approuvé par l'ACY.
papillotement
4

Les anciens noyaux font partie de packages. Si vous retirez simplement, /boot/vmlinuz-3.13.0-44-genericvous laisserez des miettes de colis partout.

Commencez par trouver le noyau que vous utilisez. Ne rien supprimer avec cette valeur est son nom:

$ uname -r  
3.13.0-49-generic  

YMMV. Ensuite, demandez dpkgce qu'il sait:

$ dpkg -l linux-*

Certains de ces paquets peuvent être supprimés, mais qu'y a-t-il d'autre? En utilisant une ligne extraite (sur MY system) de la sortie du dpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

Maintenant, nous allons voir quels autres paquets ont -3.13.0-44dans leurs noms:

$ dpkg -l *-3.13.0-44*

Une fois que vous avez effectué une dernière vérification pour vous assurer que le noyau actuel ( uname -r) ne figure pas dans la liste des packages, vous pouvez commencer à les supprimer via le système de gestion des packages de votre choix.

Waltinator
la source
0

La dernière fois que j'ai retiré mes vieux noyaux, j'ai emprunté un ancien fragment de code. Eh bien, cet extrait de code m'avait demandé de redémarrer après l'installation du nouveau noyau, donc je suis resté sans noyau. Heureusement, je l'avais bien compris avant de redémarrer, mais comme d'autres l'ont dit, je suis peut-être resté avec "l'écran en colère".

En bref, c'est simplement quelque chose qui peut être facilement égaré, résultant en un système bâti qui peut être difficile à récupérer.

alfonsojon
la source
0

Ce n'est pas dangereux. Avec Linux, vous pouvez faire exactement ce que vous voulez si vous connaissez les bonnes commandes.

Dans le /bootrépertoire, vous pouvez ls -lafacilement avoir une longue liste et trouver tous les fichiers ou répertoires cachés (qui ne sont pas supposés être là s'il y en a !!).

À partir de ces informations, vous pouvez évaluer les fichiers de dates et les anciennes versions. Ne les supprimez pas tous, mais les fichiers les plus anciens qui correspondent à la même version.

À un moment donné, je pensais qu'il serait peut-être possible que, si vous avez compilé votre noyau à partir des sources, vous devrez en modifier un nouveau. Le .configdossier, que je ne pense pas être le cas selon votre explication, y restera.

Ainsi, s'il arrive qu'après la suppression des anciens fichiers correspondant à une version unique et après le redémarrage de votre ordinateur, il est possible que vous rencontriez une panique dans le noyau.

La solution simple consiste à démarrer la machine avec un Linux live USB ou CD / DVD. chrootet reconstruisez le noyau avec des outils tels que dracut.

Nitin J Mutkawoa
la source