Comment libérer de l'espace sur RHEL6 / boot en toute sécurité?

17

J'essaie de faire yum updatesur la boîte RHEL 6 et je reçois ce message d'erreur

Transaction Check Error:
  installing package kernel-2.6.32-279.9.1.el6.x86_64 needs 10MB on the /boot filesystem
  installing package grub-1:0.97-77.el6.x86_64 needs 10MB on the /boot filesystem

Error Summary
-------------
Disk Requirements:
  At least 10MB more space needed on the /boot filesystem.

Mon / boot a les éléments suivants

# ls -lah /boot
total 74M
dr-xr-xr-x.  5 root root 2.0K Jun 10 08:05 .
drwxr-xr-x. 23 root root 4.0K Aug 27 03:08 ..
-rw-r--r--   1 root root  99K Apr 26 12:53 config-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  99K Feb 10  2012 config-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root  99K Nov  9  2011 config-2.6.32-220.el6.x86_64
drwxr-xr-x.  3 root root 1.0K Mar 29  2012 efi
drwxr-xr-x.  2 root root 1.0K Jun 10 07:53 grub
-rw-r--r--   1 root root  15M Jun 10 07:53 initramfs-2.6.32-220.17.1.el6.x86_64.img
-rw-r--r--   1 root root  15M Mar 29  2012 initramfs-2.6.32-220.7.1.el6.x86_64.img
-rw-r--r--.  1 root root  15M Mar 29  2012 initramfs-2.6.32-220.el6.x86_64.img
-rw-------   1 root root 3.4M Jun 10 08:06 initrd-2.6.32-220.17.1.el6.x86_64kdump.img
-rw-------   1 root root 3.5M Jun 10 07:53 initrd-2.6.32-220.7.1.el6.x86_64kdump.img
-rw-------   1 root root 3.4M Mar 29  2012 initrd-2.6.32-220.el6.x86_64kdump.img
drwx------.  2 root root  12K Mar 29  2012 lost+found
-rw-r--r--   1 root root 168K Apr 26 12:55 symvers-2.6.32-220.17.1.el6.x86_64.gz
-rw-r--r--   1 root root 168K Feb 10  2012 symvers-2.6.32-220.7.1.el6.x86_64.gz
-rw-r--r--.  1 root root 168K Nov  9  2011 symvers-2.6.32-220.el6.x86_64.gz
-rw-r--r--   1 root root 2.3M Apr 26 12:53 System.map-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root 2.3M Feb 10  2012 System.map-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root 2.3M Nov  9  2011 System.map-2.6.32-220.el6.x86_64
-rwxr-xr-x   1 root root 3.8M Apr 26 12:53 vmlinuz-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  171 Apr 26 12:53 .vmlinuz-2.6.32-220.17.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root 3.8M Feb 10  2012 vmlinuz-2.6.32-220.7.1.el6.x86_64
-rw-r--r--   1 root root  170 Feb 10  2012 .vmlinuz-2.6.32-220.7.1.el6.x86_64.hmac
-rwxr-xr-x.  1 root root 3.8M Nov  9  2011 vmlinuz-2.6.32-220.el6.x86_64
-rw-r--r--.  1 root root  166 Nov  9  2011 .vmlinuz-2.6.32-220.el6.x86_64.hmac

voici l'utilisation du disque au démarrage

# du -h
13K ./lost+found
282K    ./grub
247K    ./efi/EFI/redhat
249K    ./efi/EFI
251K    ./efi
75M .

Le problème est que lorsque j'ai obtenu ce séparateur chez mon FAI, j'ai utilisé leur image par défaut pour RHEL 6 qui n'alloue que 100 Mo pour / boot clairement ce n'est pas suffisant. Comment puis-je contourner ce problème, est-il sûr de supprimer l'un des fichiers ci-dessus, certains d'entre eux semblent être sur le disque plus d'une fois? Existe-t-il un moyen d'étendre / démarrer sans réimager la machine?

ams
la source

Réponses:

16

La commande suivante supprimera TOUTES les versions du noyau, à l' exception de celle que vous exécutez actuellement:

sudo yum remove `rpm -q kernel | grep -v 'uname -r'`

et pour aller de l'avant, par ⁠7,4. Configuration des référentiels Yum et Yum :

⁠Installonly_limit = valeur

… Où valeur est un entier représentant le nombre maximal de versions pouvant être installées simultanément pour tout package unique répertorié dans la directive installonlypkgs. Les valeurs par défaut de la directive installonlypkgs incluent plusieurs packages de noyau différents, alors sachez que la modification de la valeur de installonly_limit affectera également le nombre maximal de versions installées de tout package de noyau unique. La valeur par défaut répertoriée dans /etc/yum.conf est installonly_limit = 3, et il n'est pas recommandé de diminuer cette valeur, en particulier en dessous de 2.

alexus
la source
4
Peut-être laisser une version avant juste pour avoir une sauvegarde ...
EasyEcho
1
Pourriez-vous également faire ceci: rpm -qa | grep -v `uname -r` | grep kernel- pour obtenir la liste des noyaux qui ne sont pas utilisés?
Pred
Une meilleure solution que @Pred listée est d'utiliser le nettoyage de package. Voir cette réponse pour savoir comment: serverfault.com/a/562201/98791
un codeur
Cette commande ne supprime-t-elle pas également le noyau actuel (parce que l'uname -r est entouré de 'au lieu de')?
revoir
29

Selon la recommandation de MadHatter ici . Je posterai ma réponse ici en tant qu'additif aux réponses ici afin qu'elle puisse être utilisée conjointement avec les réponses suggérées ici.

Tiré du site Web suivant

## Install yum utils ##
yum install yum-utils

## Package-cleanup set count as how many old kernels you want left ##
package-cleanup --oldkernels --count=2

Cela supprimera tous les noyaux plus anciens et ne gardera que les deux noyaux les plus récents sur centos 6.4, ce qui est probablement ce que vous voulez car les noyaux récents contiennent des corrections de bogues et vous pouvez toujours basculer vers les noyaux plus anciens si les nouveaux ne parviennent pas à démarrer. La commande ci-dessus signifie que vous n'avez pas à aller dire rpm -e xyz où xyz est votre noyau spécifique car il conserve automatiquement les plus récents.

Notez que la commande ci-dessus nettoie uniquement les packages existants, donc la modification de votre yum.conf est nécessaire si vous ne souhaitez pas recommencer à accumuler les packages du noyau.

Jason Zhu
la source
Convenu, meilleure solution et package-cleanupvous demande ce qu'il supprimera avant de le faire
sMyles
8

Supprimez au moins l'un des anciens noyaux, comme l'a dit Alexus.

Alors:

Modifiez /etc/yum.confet spécifiez la limite du nombre de versions du noyau à conserver. Il est défini sur 5 par défaut, mais votre système ne semble pouvoir en gérer que deux:

installonly_limit=2

Enfin, plaignez-vous auprès du fournisseur VPS du modèle étrange. /bootest de 500 Mo par défaut dans une installation CentOS 6.

Michael Hampton
la source