#1 Le 06/08/2008, à 14:44
- Hoper
Nettoyage dans les noyaux (kernel)
Bonjour,
Comme pas mal de gens ici je commençai a en avoir marre de voir ma liste de kernel grossir au fur et à mesure des mises à jour. A peine on fait le ménage que deux nouvelles mises à jour se pointe. Et pour ceux qui comme moi avait passé pas mal de temps sans rien faire, on se retrouve avec une liste vraiment longue et pénible à traiter.
Bref, j'ai fait un petit script pour résoudre le problème. Ce script supprime tout simplement toutes les versions de noyau obsolètes, et ne conserve que la dernière version (paramétrable).
EDIT : Passage à la version 4.2
Modifications apportées :
-Lancement avec les droits root via pkexec (policy kit)
-Maintenant compatible avec ubuntu 18.04 et supérieur
-Supporte toutes les version de noyaux y compris 5 et plus
-Augmentation de la taille des fenêtres
-Toujours compatible avec les anciennes versions (je suis remonté jusqu'a ubuntu 14.04 pour mes tests)
Pour connaître votre version de kclean : kclean -v
Téléchargement :
Le paquet .deb (qui installera le script dans /usr/bin) est ici :
http://hoper.dnsalias.net/tdc/public/kclean.deb
Pour ceux qui préfère vérifier le script eux même avant de lancer
une installation avec les droits root, vous pouvez récupérer le script ici :
http://hoper.dnsalias.net/tdc/public/kclean
(Mais vous n'aurez alors pas le lanceur dans les menus de gnome)
Une fois le script installé via le .deb, son icône de lancement se trouve normalement dans Système/Administration, ou avec unity, recherchez kclean. Pour ceux qui n'ont pas de mode graphique ou qui préfèrent la ligne de commande, pas de soucis. (kclean --help).
NOTE :
Nesthib propose ici pas mal d'améliorations "techniques" à ce script. Ces propositions ne sont pas la pour ajouter des fonctionnalités à kclean mais pour rendre le code plus lisible et plus facilement maintenable. Pour ceux qui s'intéresse à la programmation, je vous conseil vivement de lire son post. Il termine par un exemple, en proposant un mini script de 3 lignes qui fait, en résumé, ce que le miens fait en 400 (mais sans mode graphique, vérifications ou interactions).
Dernière modification par Hoper (Le 03/05/2019, à 10:41)
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#2 Le 06/08/2008, à 17:00
- Hoper
Re : Nettoyage dans les noyaux (kernel)
Et bein ? 25 personnes qui lisent et pas une seule qui test ? je vous ai fait peur donc
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#3 Le 07/08/2008, à 17:44
- ArthurC
Re : Nettoyage dans les noyaux (kernel)
J'ai ressayé sur un autre pc - j'ai triché j'ai remplacé apt par aptitude - et c'est toujours reproductible.
je crois que apt-get autoremove fait le même boulot en laissant uniquement les 2 derniers kernels (après un peu de googlage).
Hors ligne
#4 Le 07/08/2008, à 18:12
- Naruto62
Re : Nettoyage dans les noyaux (kernel)
voilà voilà !!
J'ai testé ton script Hoper et rien n'a planté enfin ... pour l'instant
J'ai essayé de voir le résultat et j'ai lancé cette commande pour vérifier:
sudo update-grub
et les noyaux ont bien été supprimés!
Donc merci pour ton script car ca fait du bien de faire le ménage de temps en temps!
Dernière modification par Naruto62 (Le 07/08/2008, à 18:27)
Schedio: Logiciel de gestion modulable de scripts (dont Gestion/Lancement/Restriction planifiée de logiciels).
http://forum.ubuntu-fr.org/viewtopic.php?id=383356
Besoin de testeurs pour la version 2 !
Hors ligne
#5 Le 07/08/2008, à 18:15
- Hoper
Re : Nettoyage dans les noyaux (kernel)
Un grand merci aux testeurs !!
je crois que apt-get autoremove fait le même boulot en laissant uniquement les 2 derniers kernels
l'option autoremove permet de supprimer les paquets qui ont étés installés en tant que dépendance, mais dont le paquet "pere" à été supprimé. Donc a priori, rien à voir avec les noyaux.
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#6 Le 07/08/2008, à 19:45
- clahor
Re : Nettoyage dans les noyaux (kernel)
bjr en general on ne conseille pas de garder les 2 noyaux les + recents (?) ton script peut peut etre etre adapté en consequence.....
Hors ligne
#7 Le 08/08/2008, à 00:07
- Hoper
Re : Nettoyage dans les noyaux (kernel)
clahor : J'y ai pensé... mais la ca va vraiment demander du boulot... parce que si trouver le noyau actuellement utilisé est tres facile, trouver les deux "plus recents" est beaucoup plus compliqué
Cela dit... comme il affiche les noyaux qu'il va supprimer, rajouter une option pour indiquer des paquets qu'il ne faut pas supprimer doit etre dans le domaine du possible.... Mais ce sera à l'utilisateur de lui indiquer les kernel a conserver en plus de l'actuel.
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#8 Le 12/08/2008, à 17:50
- clahor
Re : Nettoyage dans les noyaux (kernel)
merci de repondre & d'y avoir pensé en tout cas ))
Hors ligne
#9 Le 30/08/2008, à 01:16
- edrost
Re : Nettoyage dans les noyaux (kernel)
Je confirme, ça marche!:)
Bien vu Hoper!
Hors ligne
#10 Le 30/08/2008, à 09:24
- dynamos
Re : Nettoyage dans les noyaux (kernel)
300 mo de gagné pour moi. sur un ibook qui a un DD de 6 go, c'est pas rien.
Je croise quand même les doigts pour le prochain redémarrage.
Ne vous demandez pas seulement ce que Gnu/linux peut faire pour vous, demandez-vous ce que vous pouvez faire pour lui.
Hors ligne
#11 Le 30/08/2008, à 09:31
- Hoper
Re : Nettoyage dans les noyaux (kernel)
Si le noyau qui a été conservé (celui sur lequel tu avais booté) ne posait pas de problèmes, il n'y a pas de raisons que ca se passe mal
Le vrai souci de script dans son état actuel, c'est effectivement qu'il ne laisse qu'un seul noyau.
Donc il faut le lancer quand on utiliser le noyau en question depuis suffisamment longtemps pour etre sur que tout marche pas avec, et qu'on peut vraiment supprimer tous les autres...
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#12 Le 30/08/2008, à 22:41
- Guizmo.7
Re : Nettoyage dans les noyaux (kernel)
Sympa ce script, je m'en vais le tester !
Un pas après l'autre, la petite créature verte avance !
Hors ligne
#13 Le 15/09/2008, à 12:51
- dynamos
Re : Nettoyage dans les noyaux (kernel)
Au fait je n'ai pas eu de soucis au redémarrage.
Merci pour le script
Ne vous demandez pas seulement ce que Gnu/linux peut faire pour vous, demandez-vous ce que vous pouvez faire pour lui.
Hors ligne
#14 Le 19/09/2008, à 11:46
- yamo
Re : Nettoyage dans les noyaux (kernel)
Salut,
J'ai essayé avec succès ce script (j'avais 100% d'occupation sur / ... sur un serveur sans interface graphique) et je me suis permet de donner le lien vers ce topic là : http://forum.ubuntu-fr.org/viewtopic.php?pid=2075006#p2075006
Stéphane
--
Debian 9 XFCE Xubuntu 16.04.2 - #ubuntu sur freenode
sudo / matrix
Hors ligne
#15 Le 19/09/2008, à 13:21
- n3o51
Re : Nettoyage dans les noyaux (kernel)
Super ce script je viens de le voir justement grace au lien de Yamo.
Par contre pourquoi ne pas demander a ce qu'il soit intégré au script maintenance système de jean-lux and co
Aussi pourquoi ne pas integré aussi un mode graphique mais aussi un sudo update-grub necessaire a la fin
Dernière modification par n3o51 (Le 19/09/2008, à 13:23)
Welcome to the real world
________________________________
Hors ligne
#16 Le 19/09/2008, à 13:25
- pipou24
Re : Nettoyage dans les noyaux (kernel)
bjr en general on ne conseille pas de garder les 2 noyaux les + recents (?) ton script peut peut etre etre adapté en consequence.....
Salut.
Je pense avoir une idée pour faire ca, mais pas les compétences pour le coder
en fait, on obtiens facilement la liste des noyaux installés avec :
cat /etc/boot/grub/menu.lst | grep title
(ou bien cat /etc/boot/grub/menu.lst | grep vmlinuz est-il plus fiable ?)
de là, on ne conserve que la première et 3ème ligne a grand coup de cut sed et de \(\w\+\)\.\(\w\+\) et le tour est joué. (enfin, moi, je ne m'en sens pas capable, mais ....)
Non geek et fier de l'être. ㋡
Hors ligne
#17 Le 19/09/2008, à 13:38
- pipou24
Re : Nettoyage dans les noyaux (kernel)
Nota : Je pense que le sudo update-grub est inutile, car il est normalement lancé par apt/aptitude grace au .postrm du paquet du noyau correspondant
Non geek et fier de l'être. ㋡
Hors ligne
#18 Le 19/09/2008, à 14:08
- pmd
Re : Nettoyage dans les noyaux (kernel)
J'ai testé le script sur ma Debian Testing, et j'aime !
Ç a marche nikel, merci beaucoup pour cette contribution
Hors ligne
#19 Le 19/09/2008, à 14:11
- Hoper
Re : Nettoyage dans les noyaux (kernel)
En effet le update-grub est inutile... car il est fait a chaque suppression de paquet, donc il est déja fais autant de fois qu'il y a de noyau a supprimer. (ce qui ralenti la procédure d'ailleurs mais bon...)
pipou : je suis évidement preneur de toute idée de ce genre ! Sauf que pour le coup celle la ne me semble pas exempte de défaut... ce fichier (menu.lst) est souvant bricolé par pas mal de gens (par exemple pour supprimer des lignes qu'on ne veut plus voir etc). Bref, le contenu de ce fichier est très variable d'un pc à l'autre, et il ne reflète pas forcement ce qui est réellement installé en matierre de noyaux. C'est pour ca que je préfère n'utiliser que des commandes renvoyant ce qui est réelement installé (dpkg).
Le souci c'est comment, en ayant la liste des noyaux installés, détérminer quels sont les deuc plus récents. Il faudrait que je vois ce que la commande sort est capable de faire exactement... a part ca (et le mode purement manuel de selection des noyaux qu'on veut garder donc..) je n'ai pas vraiment d'autres idée pour le moment.
Pour le fait de faire une interface graphique, je n'y avait pas vraiment pensé vu qu'il n'y a pour le moment aucun choix possible... l'interface graphique se limiterai à une boite de dialogue "voulez vous lancer le programme et supprimer tous les notayx non utilisés OUI/NON ?" donc bon... ca pourrait etre rigolo à faire comme simple exerice mais sinon... Enfin je garde l'idée sous le coude
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#20 Le 19/09/2008, à 14:29
- n3o51
Re : Nettoyage dans les noyaux (kernel)
Le fait de creer une interface graphique permettrai de renvoyer la liste des noyau installes dans un tableau qui peut facilement etre fait avec zenity et permettrai a l'utilisateur de simplement coches les noyaux qui souhaite gardé .Donc la questions de garder deux noyaux ne serait plus a faire ...
Welcome to the real world
________________________________
Hors ligne
#21 Le 19/09/2008, à 15:11
- Hoper
Re : Nettoyage dans les noyaux (kernel)
je croyais que zenity ne savait faire que des choses plus basique que ca... Mais si je peut l'utiliser pour faire une liste de choix alors en effet ce serait le plus judicieu... Je fais me renseigner de ce coté la...
EDIT : j'a regardé un peu la doc... ouai.. ca va me plaire de jouer avec le mode graphique
Dernière modification par Hoper (Le 19/09/2008, à 15:22)
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#22 Le 19/09/2008, à 16:47
- soupaloignon
Re : Nettoyage dans les noyaux (kernel)
Sympa ce script. Pas testé encore, mais au vu des retours...
Dès qu'il y a une fonction permettant de garder les 2 derniers noyaux... je prends
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#23 Le 20/09/2008, à 10:04
- n3o51
Re : Nettoyage dans les noyaux (kernel)
J'ai deja le debut avec la liste de choix mais je ne sais pas comment faire pour dire a chaque case coches de supprimes le kernel correspondant .
Welcome to the real world
________________________________
Hors ligne
#24 Le 20/09/2008, à 10:24
- pipou24
Re : Nettoyage dans les noyaux (kernel)
j'ai cet exemple pour un script de redimensionnement des images :
title="Choisissez la taille finale"
imgsize=`zenity --title "$title" --list --separator=" " --column="size" "220x176" "640x480" "1280x960" "1600x1200" | sed 's/ max//g' `
#if $? != 0, user click on cancel button, so exit
if [ "$?" != 0 ] ; then
exit
fi
if [ ! "$imgsize" ]; then
zenity --error --title="error" --text="select a target size"
exit
fi
par analogie, je pense que :
kernel=`zenity --title "$title" --list --separator=" " --column="size" "$kern1" "$kern2" "$kern3" "$kern4"`
devrait fonctionner
Non geek et fier de l'être. ㋡
Hors ligne
#25 Le 20/09/2008, à 10:24
- rahancrao
Re : Nettoyage dans les noyaux (kernel)
Punaise, je viens de lancer ce script et il m'a libéré 1,5 Go sous /
J'avais tous les noyaux depuis l'alpha 2 ou 3 de Hardy
J'ai un peu peur du prochain reboot ...
Ingé en préprod Unix : forcément sous GNU/Linux à la maison (Ubuntu 10.10 + ArchLinux tout neuf)
Hors ligne