#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
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
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 !
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
Enfin, pour achever le travail :
sudo apt-get autoremove
voire mieux
sudo apt-get autoremove --purge
SOPI
Hors ligne