Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/03/2015, à 14:03

Geronimo12

aide suppression ancien noyaux [RESOLU]

Bonjour,

afin de ne pas faire d'erreur, en gardant les deux derniers apparemment, mais comme je les vois en double, je préfère demander

pourriez vous me dire lesquels je dois absolument garder svp parmis cette liste :

~$ dpkg -l | grep -Ei "linux-headers|linux-image"
ii  linux-headers-3.13.0-36                          3.13.0-36.63                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-36-generic                  3.13.0-36.63                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-37                          3.13.0-37.64                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-37-generic                  3.13.0-37.64                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-38                          3.13.0-38.65                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-38-generic                  3.13.0-38.65                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-39                          3.13.0-39.66                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-39-generic                  3.13.0-39.66                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-40                          3.13.0-40.69                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-40-generic                  3.13.0-40.69                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-41                          3.13.0-41.70                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-41-generic                  3.13.0-41.70                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-43                          3.13.0-43.72                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-43-generic                  3.13.0-43.72                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-44                          3.13.0-44.73                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-44-generic                  3.13.0-44.73                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-45                          3.13.0-45.74                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-45-generic                  3.13.0-45.74                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-3.13.0-46                          3.13.0-46.76                                        all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-46-generic                  3.13.0-46.76                                        amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-generic                            3.13.0.46.53                                        amd64        Generic Linux kernel headers
ii  linux-image-3.13.0-36-generic                    3.13.0-36.63                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-37-generic                    3.13.0-37.64                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-38-generic                    3.13.0-38.65                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-39-generic                    3.13.0-39.66                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-40-generic                    3.13.0-40.69                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-41-generic                    3.13.0-41.70                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-43-generic                    3.13.0-43.72                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
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
ii  linux-image-3.13.0-45-generic                    3.13.0-45.74                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-46-generic                    3.13.0-46.76                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-68-generic                     3.2.0-68.102                                        amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-36-generic              3.13.0-36.63                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-37-generic              3.13.0-37.64                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-38-generic              3.13.0-38.65                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-39-generic              3.13.0-39.66                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-40-generic              3.13.0-40.69                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-41-generic              3.13.0-41.70                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-43-generic              3.13.0-43.72                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-44-generic              3.13.0-44.73                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-45-generic              3.13.0-45.74                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-46-generic              3.13.0-46.76                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-generic                              3.13.0.46.53                                        amd64        Generic Linux kernel image

Dernière modification par Geronimo12 (Le 04/03/2015, à 10:00)


MSI GP60 leopard, Ubuntu 22.04.3 LTS Gnome 42.9 processeur Intel Core i5-4210H CPU @2.90Ghz x 4, mémoire vive 7,7 Go, carte graphique intel corporation 4th Gen Core processor integrated graphics controller, Nvidia GTX950M,  avec ssd msata 120 Go

Hors ligne

#2 Le 02/03/2015, à 14:07

Geronimo12

Re : aide suppression ancien noyaux [RESOLU]

est-ce que ubuntu tweak est viable ?

merci ;-)


MSI GP60 leopard, Ubuntu 22.04.3 LTS Gnome 42.9 processeur Intel Core i5-4210H CPU @2.90Ghz x 4, mémoire vive 7,7 Go, carte graphique intel corporation 4th Gen Core processor integrated graphics controller, Nvidia GTX950M,  avec ssd msata 120 Go

Hors ligne

#3 Le 02/03/2015, à 14:42

nany

Re : aide suppression ancien noyaux [RESOLU]

Bonjour,

je ne connais pas ubuntu tweak mais je crois qu’il est capable de nettoyer les noyaux. Autrement, voici une commande qui permet de visualiser les paquets à supprimer (correspondant à tous les noyau sauf celui utilisé et le dernier de la liste) :

echo $(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1) $(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1)

Si la liste est correcte, pour les supprimer, il suffit de remplacer echo par sudo apt-get purge, ce qui donne ceci :

sudo apt-get purge $(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1) $(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1)

Il reste alors à relancer la commande

dpkg -l | grep -Ei "linux-headers|linux-image"

pour admirer le résultat.

Sinon, il y a aussi kclean qui fait très bien ce genre de boulot. wink

Hors ligne

#4 Le 02/03/2015, à 15:35

alca94

Re : aide suppression ancien noyaux [RESOLU]

@ nany
il y a une chose bizarre ; c'est dans la Doc également c'est cette phrase
Si la liste est correcte, pour les supprimer,
comment on peut le savoir surtout quand on vient demander de l'aide parce que l'on n'y connait rien ou presque

c'est même pire sur la doc ,je cite
Si la liste est cohérente, on supprime en utilisant le résultat en paramètre de la commande apt-get purge :

Dernière modification par alca94 (Le 02/03/2015, à 15:40)


POUR METTRE LES RETOURS DU "TERMINAL"  voir les explications sur ce post
https://forum.ubuntu-fr.org/viewtopic.p … #p17345641

Hors ligne

#5 Le 02/03/2015, à 15:57

nany

Re : aide suppression ancien noyaux [RESOLU]

Eh bien, en effet, ma phrase est peut-être un peu maladroite.

nany a écrit :

(correspondant à tous les noyau sauf celui utilisé et le dernier de la liste)

Donc, par « si la liste est correcte », j’entendais de vérifier par rapport à la première liste donnée par Geronimo12 avec la commande dpkg -l | grep -Ei "linux-headers|linux-image" que la version utilisée (a priori 3.13.0-46 dans ce cas) ainsi que la dernière version non utilisée (a priori 3.13.0-45 dans ce cas) ne soit pas affichées.
J’espère être ainsi un peu plus clair.

Quant à la doc, je ne suis pas responsable de ce qui y est mis et c’est d’ailleurs un peu dangereux de donner une commande qui ne conserve qu’un noyau. De plus, cette commande utilise awk qui suppose que gawk soit installé ce qui n’est pas forcément le cas. C’est pourquoi je propose une commande un peu plus longue à coup de cut, de sed, de grep et de head pour conserver deux version de noyau. Mais je me garderais bien de mettre ceci dans la doc sans explications.
J’ai par ailleurs précisé (en ayant bien conscience que ma commande pouvait faire peur) qu’ubuntu Tweak devrait faire l’affaire ainsi que kclean.

Ceci dit, si ma commande n’est pas assez compréhensible, je peux tenter de l’expliquer dans le détail. wink

Hors ligne

#6 Le 02/03/2015, à 16:14

alca94

Re : aide suppression ancien noyaux [RESOLU]

qu’ubuntu Tweak devrait faire l’affaire ainsi que kclean.

j'utilisais tweak -(mais faut pas oublier de décocher tous ce qui concerne les 2 derniers noyaux) avant de connaitre kclean et c'est impeccable par contre faut l'installer avant d'être bloqué ce qui est la plupart des demandes malheureusement ,ce devrait faire partie des pré-installés (quoique maintenant avec "autoremove")
Bref je voulais simplement dire que quand on connait pas une liste "Cohérente" ou "correcte" (par rapport a quoi)  c'est pas évident smile


POUR METTRE LES RETOURS DU "TERMINAL"  voir les explications sur ce post
https://forum.ubuntu-fr.org/viewtopic.p … #p17345641

Hors ligne

#7 Le 02/03/2015, à 16:25

Bougron

Re : aide suppression ancien noyaux [RESOLU]

Bonjour
Tweak est un produit bizarre
   Il va se contenter de lister tous les fichiers présents (comme tu  l'as fait)  puis il va mettre cela en forme.     Tu devra alors mettre une croix devant tous ceux que tu veux supprimer, il lancera alors les commandes de suppression.   A toi de ne pas te tromper dans tes choix.
http://forum.ubuntu-fr.org/viewtopic.ph … #p19311981

Il existe un produit quasi généralisé afin de ne frapper que 6 caractères si je comprend bien http://forum.ubuntu-fr.org/viewtopic.php?id=242358

Pour nany
je ne vois pas comment la modifier pour conserver les trois derniers noyaux au lieu des deux derniers.
De plus, il faut être assez habille pour la copier.

echo $(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1) $(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1)
Au rythme où les kernels sont livrés, je souhaite conserver 3 versions, Je ne suis pas assez doué pour modifier la commande.
Comment la modifier pour avoir un truc en plusieurs lignes du style?
#!/bin/bash
KEEP=3
KERNELS=($(dpkg -l | awk '/ii  linux-image-[0-9]\./{print gensub("-generic","",1,$2)}'))
KERNELS_TO_REMOVE=(${KERNELS[@]:0:${#KERNELS[@]}-$KEEP})
sudo apt-get purge ${KERNELS_TO_REMOVE[@]} ${KERNELS_TO_REMOVE[@]/image/headers}

Dernière modification par Bougron (Le 02/03/2015, à 16:41)

Hors ligne

#8 Le 02/03/2015, à 16:54

Bougron

Re : aide suppression ancien noyaux [RESOLU]

alca94 a écrit :

@ nany
il y a une chose bizarre ; c'est dans la Doc également c'est cette phrase
Si la liste est correcte, pour les supprimer,
comment on peut le savoir surtout quand on vient demander de l'aide parce que l'on n'y connait rien ou presque

c'est même pire sur la doc ,je cite
Si la liste est cohérente, on supprime en utilisant le résultat en paramètre de la commande apt-get purge :

J'ajoute.
Suite à un incident rencontré  (Réel?) dont actuellement je n'ai pas de retour,
On lance ubuntu avec l'option avancée,
On note bien  les deux premiers paquets qui sont proposés pour booter
Puis après avoir booté et fait cette commande listant ce qu'il y a à supprimer, on s'assure qu'ils ne sont pas dans la liste de suppression sinon plus de boot possible.

Dernière modification par Bougron (Le 02/03/2015, à 16:55)

Hors ligne

#9 Le 02/03/2015, à 17:38

pedro34new

Re : aide suppression ancien noyaux [RESOLU]

Bonjour à tous...
Geronimo je vous livre l'expérience d'un novice. Après pas mal de difficultés, grâce aux contibuteurs actifs alca94, Bougron, Elsimate...pardon pour ceux que j'oublie... j'ai pu utiliser ubuntu-tweak.
A condition d'être prudent et de supprimer les noyaux 1 par 1, voire 10 par 10 si comme dans mon cas personnel une quarantaine devaient être supprimés, j'ai réussi à ne conserver que les 'versions' 44,45 et 46.
Cordialement

Hors ligne

#10 Le 03/03/2015, à 18:29

Geronimo12

Re : aide suppression ancien noyaux [RESOLU]

merci à tous, j'ai utilisé ubuntu tweak et tout vas très bien...


MSI GP60 leopard, Ubuntu 22.04.3 LTS Gnome 42.9 processeur Intel Core i5-4210H CPU @2.90Ghz x 4, mémoire vive 7,7 Go, carte graphique intel corporation 4th Gen Core processor integrated graphics controller, Nvidia GTX950M,  avec ssd msata 120 Go

Hors ligne

#11 Le 03/03/2015, à 21:59

nany

Re : aide suppression ancien noyaux [RESOLU]

Bien, maintenant que Geronimo12 a fait son choix grâce aux retours d’expérience d’alca94 et de pedro34new, et comme ma ligne de commande intéresse au moins Bougron (et donc a priori d’autres lecteurs potentiels), je passe à l’explication de texte.
En préambule, je précise que chaque commande peut être étudiée en saisissant, dans un terminal,

man commande

Maintenant, les deux lignes que j’ai données ne diffèrent que par les commandes echo et sudo apt-get purge, la première servant à l’affichage et la seconde à la désinstallation avec suppression des fichiers de configuration.
Intéressons-nous maintenant à la suite. On peux se rendre compte qu’il y a deux blocs de commandes repérables avec le signe dollar suivi d’une parenthèse. La seule différence entre les deux est que l’une recherche les images et l’autre les headers. j’ai choisi de faire ces deux blocs pour faciliter le tri et ne pas alourdir le code à coups de rev sort rev (dont je ne suis en plus même pas sûr du résultat en cas de noyaux résiduels issus de mises à niveau). Je vais donc commenter seulement ce bloc :

$(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1)

Tout d’abord, ce symbole bizarre : « | ». C’est un « pipe » (tube en anglais, à prononcer païpe). Son principe est de récupérer la sortie de la commande qui le précède pour servir d’entrée à la commande qui le suit. Voilà, passons maintenant en détail chacune des commandes les unes après les autres (puisque la sortie de l’une sert d’entrée à l’autre). Encore une fois, je précise que je vais juste décrire sommairement la commande et que vous pouvez vous référer au man pour plus de détails.

  • dpkg -l sert à lister les paquets ;

  • egrep 'linux-image-[0-9]' sert à filtrer selon l’occurrence linux-image-suivie d’un numéro. Ceci pour éviter de sélectionner les méta-paquets (qui n’ont pas de numéro) responsables de l’installation des nouveaux noyaux ;

  • cut -d' ' -f3 sert à n’afficher que le nom du paquet ;

  • grep -v $(uname -r | cut -d- -f1,2) sert à éviter la sélection du noyau utilisé ;

  • sed 's/-generic//g' sert à supprimer le terme generic (les termes generic, extra, etc. seront inclus par la suite lors de la désinstallation comme dépendances du nom général du paquet (là je simplifie mais bref, passons)) ;

  • uniq sert à supprimer les doublons ;

  • head -n-1 sert à afficher la liste sauf la dernière ligne.

Voilà, j’espère avoir été suffisamment clair sans pour autant pousser dans les détails.


Bougron a écrit :

Pour nany
je ne vois pas comment la modifier pour conserver les trois derniers noyaux au lieu des deux derniers.

Maintenant que j’ai détaillé, je pense que tu peux te rendre compte qu’il faut agir sur la commande head. wink

De plus, il faut être assez habille pour la copier.

echo $(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1) $(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | sed 's/-generic//g' | uniq | head -n-1)

Tu as pourtant réussi à la copier pour la recoller ici. tongue

Au rythme où les kernels sont livrés, je souhaite conserver 3 versions, Je ne suis pas assez doué pour modifier la commande.
Comment la modifier pour avoir un truc en plusieurs lignes du style?
#!/bin/bash
KEEP=3
KERNELS=($(dpkg -l | awk '/ii  linux-image-[0-9]\./{print gensub("-generic","",1,$2)}'))
KERNELS_TO_REMOVE=(${KERNELS[@]:0:${#KERNELS[@]}-$KEEP})
sudo apt-get purge ${KERNELS_TO_REMOVE[@]} ${KERNELS_TO_REMOVE[@]/image/headers}

Je reconnais là le petit script de que nesthib à proposé sur le fil de hoper. C’est d’ailleurs ce script qui m’a inspiré pour créer ma ligne de commandes.
Ce script est très bien mais je lui fais tout de même deux petits reproches :

  • il utilise la commande awk, je n’ai rien contre cette commande (bien au contraire) mais son défaut est qu’elle n’est pas forcément installée sur le poste d’une personne qu’on chercherait à aider ;

  • il ne tiens pas compte du noyau en cours d’utilisation (qui pour une raison x ou y pourrait être le seul noyau fonctionnel).

Donc, pour reprendre ce que je propose en plusieurs lignes sur ce modèle, on peut faire par exemple comme ceci :

KEEP=3
USED=$(uname -r | cut -d- -f1,2)
IMAGES_TO_PURGE=$(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
HEADERS_TO_PURGE=$(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
sudo apt-get purge $IMAGES_TO_PURGE $HEADERS_TO_PURGE

Pour info, le shebang (#!/bin/bash) n’est utile que dans un script. Tu n’en as donc pas besoin si tu passes ces lignes directement dans un terminal. wink

Hors ligne

#12 Le 03/03/2015, à 22:49

Geronimo12

Re : aide suppression ancien noyaux [RESOLU]

amusant de voir le partage sur un sujet :-)

voulez vous que je le mette en résolu ? ou attendre ?


MSI GP60 leopard, Ubuntu 22.04.3 LTS Gnome 42.9 processeur Intel Core i5-4210H CPU @2.90Ghz x 4, mémoire vive 7,7 Go, carte graphique intel corporation 4th Gen Core processor integrated graphics controller, Nvidia GTX950M,  avec ssd msata 120 Go

Hors ligne

#13 Le 03/03/2015, à 23:32

Bougron

Re : aide suppression ancien noyaux [RESOLU]

nany a écrit :

Donc, pour reprendre ce que je propose en plusieurs lignes sur ce modèle, on peut faire par exemple comme ceci :

KEEP=3
USED=$(uname -r | cut -d- -f1,2)
IMAGES_TO_PURGE=$(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
HEADERS_TO_PURGE=$(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
sudo apt-get purge $IMAGES_TO_PURGE $HEADERS_TO_PURGE

Merci beaucoup nany, de l'avoir transformée. Afin qu'elle soit intégralement visible à l'écran.
La difficulté du copier est liée au fait qu'il faut déplacer le curseur pour tout sélectionner, La première fois, je n'avais pas pris toute la ligne!
Comme tu l'as dis fort justement, certaines installations n'ont pas la commande "awk".
Cela me permet de rebondir sur les installations   où la commande apt-get ne fonctionne pas. Peux-tu améliorer la solution "manuelle" de tiramiseb?
Il est vrai que cela devrait être inutile si l'automatisme est installé.
http://forum.ubuntu-fr.org/viewtopic.ph … #p19353941

Dernière modification par Bougron (Le 04/03/2015, à 00:05)

Hors ligne

#14 Le 03/03/2015, à 23:44

Bougron

Re : aide suppression ancien noyaux [RESOLU]

Pour  info... le noyau 3.13.0.43 a été supprimé
Il reste simplement à pouvoir lancer cette commande  en automatique avec le gestionnaire de mise à jour.

bougron@S70t-A:~$ KEEP=3
bougron@S70t-A:~$ USED=$(uname -r | cut -d- -f1,2)
bougron@S70t-A:~$ IMAGES_TO_PURGE=$(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
bougron@S70t-A:~$ HEADERS_TO_PURGE=$(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
bougron@S70t-A:~$ echo $IMAGES_TO_PURGE $HEADERS_TO_PURGE
linux-image-3.13.0-43 linux-headers-3.13.0-43
bougron@S70t-A:~$ 
bougron@S70t-A:~$ 
bougron@S70t-A:~$ 
bougron@S70t-A:~$ KEEP=3
bougron@S70t-A:~$ USED=$(uname -r | cut -d- -f1,2)
bougron@S70t-A:~$ IMAGES_TO_PURGE=$(dpkg -l | egrep 'linux-image-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
bougron@S70t-A:~$ HEADERS_TO_PURGE=$(dpkg -l | egrep 'linux-headers-[0-9]' | cut -d' ' -f3 | grep -v "$USED" | sed 's/-generic//g' | uniq | head -n-$((KEEP-1)))
bougron@S70t-A:~$ sudo apt-get purge $IMAGES_TO_PURGE $HEADERS_TO_PURGE
[sudo] password for bougron: 
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Note : sélection de linux-image-3.13.0-43-generic pour l'expression rationnelle « linux-image-3.13.0-43 »
Note : sélection de linux-image-3.13.0-43-lowlatency pour l'expression rationnelle « linux-image-3.13.0-43 »
Package 'linux-image-3.13.0-43-lowlatency' is not installed, so not removed
Les paquets suivants seront ENLEVÉS :
  linux-headers-3.13.0-43* linux-headers-3.13.0-43-generic*
  linux-image-3.13.0-43-generic* linux-image-extra-3.13.0-43-generic*
0 mis à jour, 0 nouvellement installés, 4 à enlever et 20 non mis à jour.
Après cette opération, 271 Mo d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] o
(Lecture de la base de données... 287147 fichiers et répertoires déjà installés.)
Suppression de linux-headers-3.13.0-43-generic (3.13.0-43.72) ...
Suppression de linux-headers-3.13.0-43 (3.13.0-43.72) ...
Suppression de linux-image-extra-3.13.0-43-generic (3.13.0-43.72) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-43-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
run-parts: executing /etc/kernel/postinst.d/zz-extlinux 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
P: Checking for EXTLINUX directory... found.
P: Writing config for /boot/vmlinuz-3.13.0-46-generic...
P: Writing config for /boot/vmlinuz-3.13.0-45-generic...
P: Writing config for /boot/vmlinuz-3.13.0-44-generic...
P: Writing config for /boot/vmlinuz-3.13.0-43-generic...
P: Installing debian theme... done.
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-3.13.0-46-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-46-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-45-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-45-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-44-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-44-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-43-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-43-generic
Ubuntu 14.04.2 LTS (14.04) trouvé sur /dev/sda11
Ubuntu 14.04.1 LTS (14.04) trouvé sur /dev/sda13
Ubuntu 14.10 (14.10) trouvé sur /dev/sda16
Windows Boot Manager trouvé sur /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
fait
Purging configuration files for linux-image-extra-3.13.0-43-generic (3.13.0-43.72) ...
Suppression de linux-image-3.13.0-43-generic (3.13.0-43.72) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
update-initramfs: Deleting /boot/initrd.img-3.13.0-43-generic
run-parts: executing /etc/kernel/postrm.d/zz-extlinux 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
P: Checking for EXTLINUX directory... found.
P: Writing config for /boot/vmlinuz-3.13.0-46-generic...
P: Writing config for /boot/vmlinuz-3.13.0-45-generic...
P: Writing config for /boot/vmlinuz-3.13.0-44-generic...
P: Updating /boot/extlinux/linux.cfg...
P: Installing debian theme... done.
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-3.13.0-46-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-46-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-45-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-45-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-44-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-44-generic
Ubuntu 14.04.2 LTS (14.04) trouvé sur /dev/sda11
Ubuntu 14.04.1 LTS (14.04) trouvé sur /dev/sda13
Ubuntu 14.10 (14.10) trouvé sur /dev/sda16
Windows Boot Manager trouvé sur /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
fait
Purging configuration files for linux-image-3.13.0-43-generic (3.13.0-43.72) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
run-parts: executing /etc/kernel/postrm.d/zz-extlinux 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
P: Checking for EXTLINUX directory... found.
P: Writing config for /boot/vmlinuz-3.13.0-46-generic...
P: Writing config for /boot/vmlinuz-3.13.0-45-generic...
P: Writing config for /boot/vmlinuz-3.13.0-44-generic...
P: Installing debian theme... done.
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-43-generic /boot/vmlinuz-3.13.0-43-generic
bougron@S70t-A:~$ 

Et tandis qu'on y est faire la mise à jour du dual-boot!

bougron@S70t-A:~$ sudo update-grub
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-3.13.0-46-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-46-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-45-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-45-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-44-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-44-generic
Ubuntu 14.04.2 LTS (14.04) trouvé sur /dev/sda11
Ubuntu 14.04.1 LTS (14.04) trouvé sur /dev/sda13
Ubuntu 14.10 (14.10) trouvé sur /dev/sda16
Windows Boot Manager trouvé sur /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
fait

PS: la version 14.04.1 indiquée correspond à la version EDUbuntu
      La version 14.10 va certainement bientôt être supprimée (doublon avec 14.04.2)

Dernière modification par Bougron (Le 03/03/2015, à 23:57)

Hors ligne

#15 Le 04/03/2015, à 00:33

nany

Re : aide suppression ancien noyaux [RESOLU]

Bougron a écrit :

Cela me permet de rebondir sur les installations   où la commande apt-get ne fonctionne pas. Peux-tu améliorer la solution "manuelle de tiramiseb?
http://forum.ubuntu-fr.org/viewtopic.ph … #p19353941

Je pense que tu veux parler de la suppression de quelques sources (quatre en l’occurrence pour avoir de la marge de manœuvre).
Eh bien, je proposerais alors ceci :

KEEP=2
TAIL=$((($KEEP-1)*2))
USED=$(uname -r | cut -d- -f1,2)
KERNELS=$(dpkg -l | egrep 'linux-(headers|image)-[0-9]' | tr -s ' ' |  cut -d' ' -f2)
UNUSED=$(echo "$KERNELS" | grep -v "$USED" | sort -t- -k3,4 )
KERNELS_TO_PURGE=$(echo "$UNUSED" | cut -d- -f-4| uniq | head -n-$TAIL)
H_UNUSED=$(echo "$UNUSED" | grep headers | head -n-$TAIL)
SRC_TO_REMOVE=$(echo "$H_UNUSED" | head -2 | sed 's/linux/\/usr\/src\/linux/g')
PERCENT_ROOT=$(df -i / | grep dev | tr -s ' ' | cut -d' ' -f5 | tr -d '%')
[[ $PERCENT_ROOT -ge 98 ]] && sudo rm -rf $SRC_TO_REMOVE  
sudo apt-get purge $KERNELS_TO_PURGE

EDIT : modification du code suite à ce message.


Geronimo12 a écrit :

amusant de voir le partage sur un sujet :-)

Le savoir ne vaut rien s’il n’est pas partagé. wink

voulez vous que je le mette en résolu ? ou attendre ?

Oui, le sujet peut être passé en résolu quand bien même on continuerait un peu à y discuter.


EDIT :

Bougron a écrit :

[…]

…
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-3.13.0-46-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-46-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-45-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-45-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-44-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-44-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-43-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-43-generic
Ubuntu 14.04.2 LTS (14.04) trouvé sur /dev/sda11
Ubuntu 14.04.1 LTS (14.04) trouvé sur /dev/sda13
Ubuntu 14.10 (14.10) trouvé sur /dev/sda16
Windows Boot Manager trouvé sur /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
fait
…
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-3.13.0-46-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-46-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-45-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-45-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-44-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-44-generic
Ubuntu 14.04.2 LTS (14.04) trouvé sur /dev/sda11
Ubuntu 14.04.1 LTS (14.04) trouvé sur /dev/sda13
Ubuntu 14.10 (14.10) trouvé sur /dev/sda16
Windows Boot Manager trouvé sur /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
fait
…

Et tandis qu'on y est faire la mise à jour du dual-boot!

bougron@S70t-A:~$ sudo update-grub
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-3.13.0-46-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-46-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-45-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-45-generic
Image Linux trouvée : /boot/vmlinuz-3.13.0-44-generic
Image mémoire initiale trouvée : /boot/initrd.img-3.13.0-44-generic
Ubuntu 14.04.2 LTS (14.04) trouvé sur /dev/sda11
Ubuntu 14.04.1 LTS (14.04) trouvé sur /dev/sda13
Ubuntu 14.10 (14.10) trouvé sur /dev/sda16
Windows Boot Manager trouvé sur /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
fait

[…]

Je pense que tu peux maintenant voir que ton update-grub était superflu. wink

Dernière modification par nany (Le 14/04/2015, à 12:44)

Hors ligne

#16 Le 04/03/2015, à 09:59

Bougron

Re : aide suppression ancien noyaux [RESOLU]

Bonjour.

Non  l'update-grub n'est pas superflu.    J'avais vérifié.
1) Lancement de la purge.
2) Constat que  le quatrième noyau est bien supprimé lors de l'exécution de la commande de purge.
3) Boot
4) Choix de l'option boot avancé.
5) Constat que le 4eme noyau est toujours proposé.
6) Choix de ce quatrième noyau
7) Mais plantage   (bien sûr) car il n'est plus présent.

Je sais c'est du pinaillage.

PS. Merci pour la suppression automatique de 4 noyaux. Je vais transmettre.

Hors ligne

#17 Le 04/03/2015, à 16:37

zeph22

Re : aide suppression ancien noyaux [RESOLU]

Bonjour, smile

Bougron a écrit :
[b]#!/bin/bash
KEEP=3
KERNELS=($(dpkg -l | awk '/ii  linux-image-[0-9]\./{print gensub("-generic","",1,$2)}'))
KERNELS_TO_REMOVE=(${KERNELS[@]:0:${#KERNELS[@]}-$KEEP})
sudo apt-get purge ${KERNELS_TO_REMOVE[@]} ${KERNELS_TO_REMOVE[@]/image/headers}[/b]

Retour d'expérience d'un (presque) novice :
j'ai utilisé la formule donnée par Bougron.
Simple nette claire et précise !

Les vieux noyaux sont purgés proprement.
Seule précaution, s'assurer que gawk soit présent dans /usr/bin/
Mais ça, c'est la première fois.
Après, on peut l'utiliser les yeux fermés.
A+


Ubuntero depuis le 6/11/2010. fibré le 17/11/2020  NRO 93073TRE   Freebox mini 4K  (wifi n)
ordinateur HP notebook 17" ca0000nf AMD A9-9425   SSD SATA 1To   ram 8Go  Table gpt   EFI
Dual boot Win10/Ubuntu 22.04.3.  FTTH / ethernet:  down 340Mb/s   up 330Mb/s   ping 6ms

Hors ligne

#18 Le 04/03/2015, à 17:05

Bougron

Re : aide suppression ancien noyaux [RESOLU]

Bonjour.
@zeph22
Merci de ton retour.
     Je suis convaincu que la commande avec awk va disparaître très vite au profil de la commande de nany car
                    1) On peut ne pas avoir AWK d'installé sur la machine alors de SED est dans le noyau.
                    2) Surtout cette commande supprime tous les noyaux installés sans regarder si le noyau qui fait mettre en route ubuntu est dans les trois derniers.
                          Normalement, il doit y être mais s'il n'y est pas, le grub ne sait plus lancer UBUNTU. C'est une expérience désagréable.
                          alors que la commande de nany conserve le noyau qui sert à booter quel que soit sa position. C'est une sacré sécurité.

Dernière modification par Bougron (Le 04/03/2015, à 17:06)

Hors ligne

#19 Le 04/03/2015, à 17:41

nany

Re : aide suppression ancien noyaux [RESOLU]

Bougron a écrit :

C'est une sacré sécurité.

Voui. C’est le seul gros point positif que j’attribue au code que je propose car awk simplifie sacrément les choses (dommage qu’il ne soit pas installé en natif).

P.S. : j’ai modifié mon message précédent suite à la remarque de tiramiseb.

P.P.S. : le comportement de ta machine me semble étrange, je n’ai jamais de problème de ce genre avec GRUB après une suppression de noyau.

P.P.P.S. : il me semble aussi nécessaire de préciser que les lignes de commandes que j’ai données au final dans ce fil peuvent être utilisés en cas d’ultime nécessité (impossibilité d’installer quoi que ce soit), kclean faisant parfaitement l’affaire dans la majorité des cas.

Dernière modification par nany (Le 04/03/2015, à 17:52)

Hors ligne