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 27/11/2014, à 15:51

RxB1

Problème de nettoyage d'anciens noyaux avec apt-get --purge

Bonjour,

sur un serveur avec une ubuntu v12.04 LTS, je suis confronté à un problème qui dépasse un peu les limites de mes compétences en administration système.

Je fais via un cron régulièrement des mise à jour automatiques du système, y compris du noyau.

La partition /boot est malheureusement limitée à 183mb et la dernière mise à jour du noyau n'a pu être complétée, les anciens noyaux prenant toute la place.
J'ai donc voulu effacer les anciens noyaux, avec une commande du type :

apt-get remove linux-headers-3.2.0-24 linux-headers-3.2.0-24-generic linux-image-3.2.0-24-generic linux-image-extra-3.2.0-24-generic --purge

toutefois, le lancement de cette commande m'affiche :

Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet linux-image-extra-3.2.0-24-generic
E: Impossible de trouver de paquet correspondant à l'expression rationnelle « linux-image-extra-3.2.0-24-generic »

et ça pour tous les noyaux que j'ai voulu supprimer. Mais les noyaux eux mêmes sont toujours présents dans /boot :

-rw-r--r--  1 root root   791075 mai   21  2012 abi-3.2.0-24-generic
-rw-r--r--  1 root root   792767 janv. 24  2013 abi-3.2.0-37-generic
-rw-r--r--  1 root root   795365 juin  18  2013 abi-3.2.0-49-generic
-rw-r--r--  1 root root   795751 nov.  12  2013 abi-3.2.0-57-generic
-rw-r--r--  1 root root   795743 févr. 19  2014 abi-3.2.0-60-generic
-rw-r--r--  1 root root   795743 mai    3  2014 abi-3.2.0-61-generic
-rw-r--r--  1 root root   795911 juin   5 00:30 abi-3.2.0-64-generic
-rw-r--r--  1 root root   795911 juin  11 22:52 abi-3.2.0-65-generic
-rw-r--r--  1 root root   140341 mai   21  2012 config-3.2.0-24-generic
-rw-r--r--  1 root root   140505 janv. 24  2013 config-3.2.0-37-generic
-rw-r--r--  1 root root   140622 juin  18  2013 config-3.2.0-49-generic
-rw-r--r--  1 root root   140629 nov.  12  2013 config-3.2.0-57-generic
-rw-r--r--  1 root root   140612 févr. 19  2014 config-3.2.0-60-generic
-rw-r--r--  1 root root   140612 mai    3  2014 config-3.2.0-61-generic
-rw-r--r--  1 root root   140640 juin   5 00:30 config-3.2.0-64-generic
-rw-r--r--  1 root root   140640 juin  11 22:52 config-3.2.0-65-generic
drwxr-xr-x  3 root root     8192 sept. 26 01:05 grub
-rw-r--r--  1 root root 14584995 févr.  8  2013 initrd.img-3.2.0-24-generic
-rw-r--r--  1 root root 14618698 juil.  9  2013 initrd.img-3.2.0-37-generic
-rw-r--r--  1 root root 14650098 déc.  19  2013 initrd.img-3.2.0-49-generic
-rw-r--r--  1 root root 14654813 mars  25  2014 initrd.img-3.2.0-57-generic
-rw-r--r--  1 root root 14655088 avril  1  2014 initrd.img-3.2.0-60-generic
-rw-r--r--  1 root root 14656165 mai   22 16:36 initrd.img-3.2.0-61-generic
-rw-r--r--  1 root root 14655480 juin   9 14:48 initrd.img-3.2.0-64-generic
drwx------  2 root root    12288 févr.  7  2013 lost+found
-rw-r--r--  1 root root   176764 nov.  27  2011 memtest86+.bin
-rw-r--r--  1 root root   178944 nov.  27  2011 memtest86+_multiboot.bin
-rw-------  1 root root  2884673 mai   21  2012 System.map-3.2.0-24-generic
-rw-------  1 root root  2886103 janv. 24  2013 System.map-3.2.0-37-generic
-rw-------  1 root root  2893287 juin  18  2013 System.map-3.2.0-49-generic
-rw-------  1 root root  2895166 nov.  12  2013 System.map-3.2.0-57-generic
-rw-------  1 root root  2895229 févr. 19  2014 System.map-3.2.0-60-generic
-rw-------  1 root root  2895229 mai    3  2014 System.map-3.2.0-61-generic
-rw-------  1 root root  2896724 juin   5 00:30 System.map-3.2.0-64-generic
-rw-------  1 root root  2896866 juin  11 22:52 System.map-3.2.0-65-generic
-rw-------  1 root root  4965968 mai   21  2012 vmlinuz-3.2.0-24-generic
-rw-------  1 root root  4969072 janv. 24  2013 vmlinuz-3.2.0-37-generic
-rw-------  1 root root  4978416 juin  18  2013 vmlinuz-3.2.0-49-generic
-rw-------  1 root root  4981040 nov.  12  2013 vmlinuz-3.2.0-57-generic
-rw-------  1 root root  4981616 févr. 19  2014 vmlinuz-3.2.0-60-generic
-rw-------  1 root root  4982576 mai    3  2014 vmlinuz-3.2.0-61-generic
-rw-------  1 root root  4986832 juin   5 00:30 vmlinuz-3.2.0-64-generic
-rw-------  1 root root  4986992 juin  11 22:52 vmlinuz-3.2.0-65-generic

Le gros ennui est que le noyau actif est maintenant, à la suite de mise à jour auto, marqué comme étant le 3.2.0.65
mais que ce noyau a été corrompu à l'installation par manque de place et qu'un reboot de la machine me fait lamentablement planter le serveur et  m'oblige à passer par ILO (le serveur est chez online) pour choisir mon noyau de boot (le 3.2.0.64 en l'occurence)

je voudrais donc pouvoir :

  • supprimer manuellement les noyaux 3.2.024, 3.2.037, 3.2.0.49 et 3.2.0.60

  • les effacer de la config de grub

  • refaire un apt-get install du 3.2.0.65

Cela dit, je ne voudrais pas me planter en faisant ça :)

Pourriez vous m'indiquer la procédure à  suivre pour faire ça, manuellement puisque apt-get ne veux pas purger, et proprement (les fichiers à supprimer, ceux à conserver, le(s) fichier(s) de configuration de grub à modifier ? (ou bien me pointer vers la documentation appropriée, je n'ai rien contre RTFM, pourvu que je sache où trouver le FM et là je tourne en rond depuis un moment, ne trouvant que des infos apt-xxx :))

En cherchant sur les forums d'Ubuntu, je n'ai malheureusement pas trouvé de procédure manuelle, juste les commandes apt normalement appropriées, qui me laissent malheureusement le bec dans l'eau..

Hors ligne

#2 Le 27/11/2014, à 16:00

Rufus T. Firefly

Re : Problème de nettoyage d'anciens noyaux avec apt-get --purge

Salut,

Cette commande devrait suffire pour vider /boot
Quitte à affiner par la suite (headers etc.).

sudo apt-get purge linux-image-3.2.0-24-generic

(j'ai remplacé aussi remove --purge par purge tout simplement)

Et si ça ne fonctionne pas, tu peux effacer directement (en root) quelques fichiers dans /boot
Les séries 3.2.0-24 et 3.2.0-37 par exemple, histoire de faire assez de place pour que le dernier noyau puisse être installé correctement et que dpkg soit dans un état "normal". Ensuite, tu pourras les désinstaller proprement (les effacer ne les désinstalle pas, évidemment)

Dernière modification par Rufus T. Firefly (Le 27/11/2014, à 16:12)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#3 Le 27/11/2014, à 16:04

f.x0

Re : Problème de nettoyage d'anciens noyaux avec apt-get --purge

Bonjour RxB1,

Postes le retour de

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

puis de

uname -r

SOPI

Hors ligne

#4 Le 27/11/2014, à 16:31

RxB1

Re : Problème de nettoyage d'anciens noyaux avec apt-get --purge

Rufus T. Firefly a écrit :

Salut,

Cette commande devrait suffire pour vider /boot
Quitte à affiner par la suite (headers etc.).

sudo apt-get purge linux-image-3.2.0-24-generic

(j'ai remplacé aussi remove --purge par purge tout simplement)

Et si ça ne fonctionne pas, tu peux effacer directement (en root) quelques fichiers dans /boot
Les séries 3.2.0-24 et 3.2.0-37 par exemple, histoire de faire assez de place pour que le dernier noyau puisse être installé correctement et que dpkg soit dans un état "normal". Ensuite, tu pourras les désinstaller proprement (les effacer ne les désinstalle pas, évidemment)

Yes... ca m'a bien nettoyé le 3.2.0-24 smile

 apt-get purge linux-image-3.2.0-24-generic
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  linux-image-3.2.0-24-generic*
0 mis à jour, 0 nouvellement installés, 1 à enlever et 3 non mis à jour.
3 partiellement installés ou enlevés.
Après cette opération, 149 Mo d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? O
(Lecture de la base de données... 100709 fichiers et répertoires déjà installés.)
Suppression de linux-image-3.2.0-24-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-24-generic /boot/vmlinuz-3.2.0-24-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-24-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-24-generic /boot/vmlinuz-3.2.0-24-generic
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-65-generic
Found linux image: /boot/vmlinuz-3.2.0-64-generic
Found initrd image: /boot/initrd.img-3.2.0-64-generic
Found linux image: /boot/vmlinuz-3.2.0-61-generic
Found initrd image: /boot/initrd.img-3.2.0-61-generic
Found linux image: /boot/vmlinuz-3.2.0-60-generic
Found initrd image: /boot/initrd.img-3.2.0-60-generic
Found linux image: /boot/vmlinuz-3.2.0-57-generic
Found initrd image: /boot/initrd.img-3.2.0-57-generic
Found linux image: /boot/vmlinuz-3.2.0-49-generic
Found initrd image: /boot/initrd.img-3.2.0-49-generic
Found linux image: /boot/vmlinuz-3.2.0-37-generic
Found initrd image: /boot/initrd.img-3.2.0-37-generic
Found memtest86+ image: /memtest86+.bin
done
The link /initrd.img is a damaged link
Removing symbolic link initrd.img
 you may need to re-run your boot loader[grub]
The link /initrd.img.old is a damaged link
Removing symbolic link initrd.img.old
 you may need to re-run your boot loader[grub]
Purge des fichiers de configuration de linux-image-3.2.0-24-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-24-generic /boot/vmlinuz-3.2.0-24-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-24-generic /boot/vmlinuz-3.2.0-24-generic
Paramétrage de initramfs-tools (0.99ubuntu13.5) ...
update-initramfs: deferring update (trigger activated)
Paramétrage de linux-image-3.2.0-65-generic (3.2.0-65.98) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.2.0-65-generic /boot/vmlinuz-3.2.0-65-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-65-generic /boot/vmlinuz-3.2.0-65-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-65-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.2.0-65-generic /boot/vmlinuz-3.2.0-65-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.2.0-65-generic /boot/vmlinuz-3.2.0-65-generic
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-65-generic
Found initrd image: /boot/initrd.img-3.2.0-65-generic
Found linux image: /boot/vmlinuz-3.2.0-64-generic
Found initrd image: /boot/initrd.img-3.2.0-64-generic
Found linux image: /boot/vmlinuz-3.2.0-61-generic
Found initrd image: /boot/initrd.img-3.2.0-61-generic
Found linux image: /boot/vmlinuz-3.2.0-60-generic
Found initrd image: /boot/initrd.img-3.2.0-60-generic
Found linux image: /boot/vmlinuz-3.2.0-57-generic
Found initrd image: /boot/initrd.img-3.2.0-57-generic
Found linux image: /boot/vmlinuz-3.2.0-49-generic
Found initrd image: /boot/initrd.img-3.2.0-49-generic
Found linux image: /boot/vmlinuz-3.2.0-37-generic
Found initrd image: /boot/initrd.img-3.2.0-37-generic
Found memtest86+ image: /memtest86+.bin
done
Paramétrage de linux-image-server (3.2.0.65.77) ...
Traitement des actions différées (« triggers ») pour « initramfs-tools »...
update-initramfs: Generating /boot/initrd.img-3.2.0-65-generic
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

a vu de pif je dirais que c'est bon, mais
dois-je m'inquiéter de ça dans le retour  ?

The link /initrd.img is a damaged link
Removing symbolic link initrd.img
 you may need to re-run your boot loader[grub]

plus qu'a nettoyer les headers, extra, etc... Merci ! smile

Hors ligne

#5 Le 27/11/2014, à 16:58

Rufus T. Firefly

Re : Problème de nettoyage d'anciens noyaux avec apt-get --purge

Pas du tout. C'est un lien dans la racine ( /) vers le /boot/initrd.img actuellement en fonction (il y en a aussi un vers le /boot/vmlinuz). Je pense qu'il ne sert de toutes façons que dans le cas de certaines installations particulières de grub. De toutes façons, tu peux le remettre manuellement, si dpkg ne l'a pas recrée et si ça ne démarre plus (ça m'étonnerait)

En revanche, tu ferais bien de virer les autres noyaux qui ne te servent pas et de ne garder que le dernier (celui que tu vas utiliser, en principe le 65) et le 64, par précaution.
Et tu peux aussi virer les entêtes :

sudo apt-get purge linux-headers-3.2.0-24

Enfin, pour achever le travail :

sudo apt-get autoremove

(vérifie quand même ce qu'il te propose de virer)

sudo apt-get clean

Ça, ça peut aussi te faire gagner facilement quelques centaines de Mo (ça vide le cache d'apt, où sont stockés tous les paquets téléchargés, mises à jour ou autres, qui sont inutiles une fois installés)

Dernière modification par Rufus T. Firefly (Le 27/11/2014, à 17:03)


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#6 Le 27/11/2014, à 18:16

f.x0

Re : Problème de nettoyage d'anciens noyaux avec apt-get --purge

Rufus T. Firefly a écrit :

Enfin, pour achever le travail :

sudo apt-get autoremove

voire mieux

sudo apt-get autoremove --purge

SOPI

Hors ligne