¿Cómo liberar espacio en RHEL6 / boot de forma segura?

17

Estoy intentando hacerlo yum updateen el cuadro RHEL 6 y recibo este mensaje de error

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.

Mi / boot tiene lo siguiente

# 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

aquí está el uso del disco en el arranque

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

El problema es que cuando obtuve este separador en mi ISP usé su imagen predeterminada para RHEL 6, que solo asigna 100 MB para / boot claramente, esto no es suficiente. ¿Cómo puedo solucionar este problema? ¿Es seguro eliminar alguno de los archivos anteriores que algunos de ellos parecen estar en el disco más de una vez? ¿Hay alguna forma de expandir / iniciar sin volver a crear imágenes de la máquina?

ams
fuente

Respuestas:

16

El siguiente comando eliminará TODAS las versiones del kernel, excepto la que está ejecutando actualmente:

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

y para seguir adelante, por ⁠7.4. Configuración de repositorios Yum y Yum :

⁠Installonly_limit = valor

... donde el valor es un número entero que representa el número máximo de versiones que se pueden instalar simultáneamente para cualquier paquete individual enumerado en la directiva installonlypkgs. Los valores predeterminados para la directiva installonlypkgs incluyen varios paquetes de kernel diferentes, así que tenga en cuenta que cambiar el valor de installonly_limit también afectará el número máximo de versiones instaladas de cualquier paquete de kernel único. El valor predeterminado que figura en /etc/yum.conf es installonly_limit = 3, y no se recomienda disminuir este valor, particularmente por debajo de 2.

alexus
fuente
44
Tal vez deje una versión anterior solo para tener una copia de seguridad ...
EasyEcho
1
¿Podría también hacer esto: rpm -qa | grep -v `uname -r` | grep kernel- para obtener la lista de Kernels que no se están utilizando?
Pred
Una solución mejor que la lista @Pred es usar la limpieza de paquetes. Vea esta respuesta para saber
un codificador
¿Ese comando no elimina también el núcleo actual (porque uname -r está rodeado por 'en lugar de')?
adiós
29

Según la recomendación de MadHatter aquí . Publicaré mi respuesta aquí como un anexo a las respuestas aquí para que pueda usarse junto con las respuestas sugeridas aquí.

Tomado del siguiente sitio web

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

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

Esto eliminará todos los núcleos más antiguos y mantendrá solo los dos núcleos más recientes en centos 6.4, que es probablemente lo que desea, ya que los núcleos recientes contienen correcciones de errores y siempre puede conmutar por error a los núcleos más antiguos si los nuevos no se inician. El comando anterior significa que no tiene que ir y decir rpm -e xyz donde xyz es su núcleo específico, ya que mantiene automáticamente los más nuevos.

Tenga en cuenta que el comando anterior solo limpia los paquetes existentes, por lo que es necesario editar su yum.conf si no desea comenzar a acumular paquetes del núcleo nuevamente.

Jason Zhu
fuente
De acuerdo, la mejor solución, y le package-cleanuppregunta qué eliminará antes de hacerlo
sMyles
8

Eliminar al menos uno de los núcleos antiguos, como dijo alexus.

Luego:

Edite /etc/yum.confy especifique el límite de la cantidad de versiones de kernel para mantener. Está configurado en 5 de forma predeterminada, pero su sistema parece ser capaz de manejar solo dos:

installonly_limit=2

Finalmente, quejarse con el proveedor de VPS acerca de la plantilla extraña. /bootes 500MB por defecto en una instalación de CentOS 6.

Michael Hampton
fuente