Comment puis-je supprimer le noyau compilé?

21

J'ai installé 14.10 sur mon ordinateur portable Lenovo E455.

Et compilé le noyau 3.19 avec l'ordre suivant

car il semblait que 14.10 ne voulait pas travailler avec le mien. (J'ai vu des mouvements lents)

Kernel actuel téléchargé depuis http://www.kernel.org/

make oldconfig
make
sudo make install

Enfin, impossible de démarrer avec le nouveau noyau.

Comment puis-je supprimer le noyau compilé de grub et être récupéré?

Oh ma fille
la source
Qu'avez-vous essayé jusqu'à présent de supprimer et où est-il allé mal? Où y a-t-il des messages d'avertissement ou d'erreur?
David Foerster
Merci à votre aide. J'ai récupéré et j'attends Ubuntu 15.XX.
Ohmygirl

Réponses:

33

La méthode simple:

S'il est compilé via la méthode debian, vous pouvez voir le noyau installé avec ce qui suit:

dpkg --list | grep kernel-image

Et puis désinstallez le package de noyau souhaité avec apt-get:

sudo apt-get remove kernel-image-your-kernel-image

La méthode difficile:

Si compilé et installé via make install, vous devrez supprimer manuellement les entrées suivantes:

/boot/vmlinuz*KERNEL-VERSION*
/boot/initrd*KERNEL-VERSION*
/boot/System-map*KERNEL-VERSION*
/boot/config-*KERNEL-VERSION*
/lib/modules/*KERNEL-VERSION*/
/var/lib/initramfs/*KERNEL-VERSION*/

Mettez ensuite à jour la configuration de grub:

sudo update-grub2
Mudit Kapil
la source
1
Je n'ai pas de répertoire / var / lib / initramfs /, mais est-ce parce que je n'ai pas de noyaux compilés dans mon système?
jarno
1
/var/lib/initramfs-tools/*KERNEL-VERSION*sur Debian
Csaba Toth
1
Envisagez une modification pour les noyaux plus récents (année 2018) contenant: /boot/abi*KERNEL-VERSION*et/boot/retpoline*KERNEL-VERSION*
WinEunuuchs2Unix
9

Grâce à la question de jarno ici, j'ai trouvé un moyen de mettre en œuvre la réponse de Mudit Kapil qui nécessite très peu de frappe et attrape les bits supplémentaires qui traînent

Puisque tout ce qui est nécessaire pour supprimer le noyau est de supprimer tous ses fichiers et répertoires, et tous ces fichiers et répertoires auront la chaîne de sortie du noyau dans leurs chemins, nous pouvons utiliser locatepour trouver tous les fichiers avec la chaîne de sortie du noyau et les supprimer pour supprimer le noyau.

(Vérifiez d'abord uname -rpour trouver le nom du noyau en cours d'exécution et assurez-vous de ne pas le supprimer)

Supposons que vous souhaitiez supprimer un noyau appelé 4.4.6-my-kernel. Vous pouvez trouver tous ses fichiers et répertoires existants (sans lister les fichiers dans tous les répertoires nommés) avec locate -b -e 4.4.6-my-kernel. Ajouter rm -rà cela avec xargsvous permet également de supprimer les fichiers. J'ajoute -ppour faire xargsdes cibles d'affichage et demande une confirmation avant d'exécuter

locate -b -e 4.4.6-my-kernel | xargs -p sudo rm -r

puis tapez ypour exécuter rm -rsur les cibles affichées. Il se plaindra que les fichiers qui ne sont pas des répertoires n'existent pas parce que vous essayez de les supprimer récursivement ( -r) mais c'est OK, ils seront toujours supprimés avec les répertoires et leur contenu. Une fois terminé, lancez

sudo update-grub

et voilà.

Zanna
la source
+1 car cela capture plus de fichiers que la réponse acceptée. Par exemple toutes les dkmschoses. Je l'exécuterais d'abord sans l' rmoption juste pour voir tout ce qui serait supprimé.
WinEunuuchs2Unix
Pourquoi ne devrais-je pas supprimer le noyau en cours d'exécution? Et si c'est le noyau que je veux supprimer? Est-il possible de supprimer le noyau en cours d'exécution sans redémarrer au préalable la machine avec un autre noyau?
Liran Funaro
1
@LiranFunaro c'est possible oui. Voir ma réponse Comment désinstaller le noyau en cours d'exécution uniquement par commande? ce qui explique aussi pourquoi ce n'est probablement pas une bonne idée
Zanna