la partición de arranque está casi llena en CentOS

23

Recibí una advertencia de que mi partición / boot está casi llena (85%). ¿Qué tengo que hacer? ¿Puedo eliminar uno de los kernel de respaldo? ¿Cómo hacerlo de forma segura?

Mi partición ahora

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             10321208    719856   9077064   8% /
tmpfs                  4015460         0   4015460   0% /dev/shm
/dev/sda1               101133     80781     15130  85% /boot
/dev/sda8            253782660  47668764 193222404  20% /home
/dev/sda7              1032088    535840    443820  55% /tmp
/dev/sda3             10321208   4823740   4973180  50% /usr
/dev/sda5             10321208   1807284   7989636  19% /var

El kernel que tengo

root@server1 [/boot]# rpm -q kernel
kernel-2.6.32-358.el6.x86_64
kernel-2.6.32-358.18.1.el6.x86_64
kernel-2.6.32-358.23.2.el6.x86_64

El directorio / Boot

root@server1 [/boot]# ls -la /boot
total 78741
dr-xr-xr-x.  5 root root     2048 Dec  3 05:33 ./
drwxr-xr-x. 23 root root     4096 Dec  4 05:46 ../
-rw-r--r--   1 root root   104112 Aug 28 12:43 config-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root   104112 Oct 16 14:01 config-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root   104081 Feb 21  2013 config-2.6.32-358.el6.x86_64
drwxr-xr-x.  3 root root     1024 Sep 20 20:15 efi/
drwxr-xr-x.  2 root root     1024 Oct 21 15:06 grub/
-rw-r--r--   1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img
-rw-r--r--   1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img
-rw-r--r--.  1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.img
-rw-------   1 root root  3698835 Sep 20 20:27 initrd-2.6.32-358.18.1.el6.x86_64kdump.img
-rw-------   1 root root  3983771 Dec  3 05:33 initrd-2.6.32-358.23.2.el6.x86_64kdump.img
-rw-------   1 root root  3695290 Sep 20 20:21 initrd-2.6.32-358.el6.x86_64kdump.img
drwx------.  2 root root    12288 Sep 20 20:13 lost+found/
-rw-r--r--   1 root root   185949 Aug 28 12:44 symvers-2.6.32-358.18.1.el6.x86_64.gz
-rw-r--r--   1 root root   185978 Oct 16 14:02 symvers-2.6.32-358.23.2.el6.x86_64.gz
-rw-r--r--.  1 root root   185734 Feb 21  2013 symvers-2.6.32-358.el6.x86_64.gz
-rw-r--r--   1 root root  2408641 Aug 28 12:43 System.map-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root  2408974 Oct 16 14:01 System.map-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root  2407466 Feb 21  2013 System.map-2.6.32-358.el6.x86_64
-rwxr-xr-x   1 root root  4046224 Aug 28 12:43 vmlinuz-2.6.32-358.18.1.el6.x86_64*
-rw-r--r--   1 root root      171 Aug 28 12:43 .vmlinuz-2.6.32-358.18.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root  4047152 Oct 16 14:01 vmlinuz-2.6.32-358.23.2.el6.x86_64*
-rw-r--r--   1 root root      171 Oct 16 14:01 .vmlinuz-2.6.32-358.23.2.el6.x86_64.hmac
-rwxr-xr-x.  1 root root  4043888 Feb 21  2013 vmlinuz-2.6.32-358.el6.x86_64*
-rw-r--r--.  1 root root      166 Feb 21  2013 .vmlinuz-2.6.32-358.el6.x86_64.hmac

El kernel que estoy usando

root@server1 [/boot]# uname -a
Linux server1 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Ensayador
fuente
44
¿Por qué se marcó esto como un duplicado? La otra pregunta ni siquiera se trata yum. No dudo que sea un duplicado, solo que no de esa pregunta en particular.
Bratchley

Respuestas:

48

Haga lo siguiente para mantener solo los últimos 2 núcleos en su sistema, para mantener / arrancar limpio

1 - Edite /etc/yum.confy configure el siguiente parámetro

installonly_limit=2

Esto hará que su administrador de paquetes conserve solo los 2 últimos núcleos en su sistema (incluido el que se está ejecutando)

2 - Instalar yum-utils:

yum install yum-utils

3- Realice una limpieza de oldkernel:

package-cleanup --oldkernels --count=2

Hecho. Esto borrará de buena manera los núcleos antiguos y conservará solo los 2 últimos para las próximas actualizaciones.

Para casos especiales en los que tienes vmlinuz-0-rescue-*y initramfs-0-rescue-*archivos utilizando demasiado espacio en disco, por favor, eche un vistazo a esta pregunta en T & L:


fuente
Gracias nwildner! ¿Puedo hacerlo ahora? ¿Necesito reiniciar el sistema después de hacer eso? ¿Necesito hacer una copia de seguridad de todos mis datos?
Probador
Sí tu puedes. Una copia de seguridad de su / boot, solo por precaución, podría ser algo bueno. No necesitará reiniciar, ya que el paso 3 borrará el núcleo más antiguo, a menos que lo esté ejecutando ahora. El primer paso, hará que esta configuración sea permanente;)
Aunque esto no siempre es suficiente. Seguí estos pasos y descubrí que ya solo tenía 2 núcleos; el problema para mí era un archivo "initramfs-0-rescue" de 60 MB que tenía 5 meses. Eliminé eso y todo estuvo bien.
Codemonkey
1
Hola @Codemonkey. He actualizado mi respuesta con detalles sobre los archivos de rescate ...
10

Puede eliminar los núcleos antiguos de forma segura haciendo lo siguiente:

# Install the yum-utils if they aren't installed
yum install yum-utils
# Cleanup old kernels and don't keep more than 2
package-cleanup --oldkernels --count=2

Y si lo desea, puede limitar esto siempre haciendo lo siguiente en /etc/yum.conf

installonly_limit=2
sparticvs
fuente
Después de ver la respuesta de Joel Davis, también estaría de acuerdo con él. Verifique qué está usando realmente todo ese espacio.
sparticvs
Si miras el suyo lsy sumas los archivos, son unos 25 MB por núcleo, principalmente en initramfs.
cjm
Sí, tenía la sensación de que podrían ser los archivos initramfs. La limpieza anterior también debería eliminarlos.
sparticvs
@sparticvs, verifiqué -rw-r--r-- 1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img -rw-r--r-- 1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img -rw-r--r--. 1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.imgusar mucho espacio.
Probador
@sparticvs, ¿puedo hacerlo ahora? ¿Necesito reiniciar el sistema después de hacer eso? ¿Necesito hacer una copia de seguridad de todos mis datos?
Probador
2

Las imágenes del núcleo son realmente muy pequeñas:

[root@ditirlns01 ~]# ls -lh /boot/vmlinuz-2.6.18-3*
-rw-r--r-- 1 root root 2.2M May  4  2012 /boot/vmlinuz-2.6.18-308.8.1.el5xen
-rw-r--r-- 1 root root 2.2M Jul 27 01:43 /boot/vmlinuz-2.6.18-348.16.1.el5xen
-rw-r--r-- 1 root root 2.2M Mar 22  2013 /boot/vmlinuz-2.6.18-348.4.1.el5xen

Obviamente, hay más en el paquete del kernel, pero esa es la parte en la /bootque está su preocupación.

Entonces, con una /bootpartición de 100MB , eliminar un kernel de 2-3MB probablemente no te llevará muy lejos.

En realidad, 100 MB suele ser mucho más de lo que la gente necesita Haría suficientes du -shinvocaciones para que pueda ver qué ocupa todo ese espacio, porque ni siquiera debería estar cerca de usar 100 MB en ese punto de montaje:

[root@ditirlns01 ~]# df -h /boot
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             99M   34M   60M  37% /boot

Que es con tres núcleos instalados:

[root@ditirlns01 ~]# rpm -qa kernel*
kernel-xen-2.6.18-348.16.1.el5
kernel-xen-2.6.18-348.4.1.el5
kernel-headers-2.6.18-348.16.1.el5
kernel-xen-2.6.18-308.8.1.el5
[root@ditirlns01 ~]#

Estoy dispuesto a apostar a que alguien puso un archivo /bootcomo un movimiento temporal y olvidó volver a quitarlo más tarde.

Bratchley
fuente
3
Pero existen los archivos initramfs, que son mucho más grandes que los archivos del núcleo. Mirando a @Don ls, usan 14MB.
ah sí, estoy viendo eso ahora. Oh, bueno, dejaré mi respuesta y votaré a sus muchachos '
Bratchley
0

¿Qué tengo que hacer?

si lo hace uname -a, informará su versión actual .

Según su publicación, supongo que es 2.6.32-358.23.2.el6.x86_64su versión actual en ejecución, así que mueva todas las antiguas a otra partición donde haya espacio adecuado para guardar, haga algo como:

mkdir /root/oldkernels
mv   /boot/initramfs-2.6.32-358.18.1.el6.x86_64.img    /root/oldkernels

El /boot/efi/EFI/centos/grub.cfgarchivo que desea verificar y será lo suficientemente fácil como para leer el código del menú, el superior será el predeterminado que verá al arrancar y también buscará el de rescate ; Es probable que tenga muchos enumerados. Es aquí donde también puede verificar qué versión está ejecutando realmente.

Normalmente solo guardo el último (en la parte superior) y el rescate (en la parte inferior) grub.cfg. Conozca lo real grub.cfg(en su caso porque veo la carpeta efi) está en /boot/efi/EFI/centos/grub.cfg. No edita este archivo directamente, pero miraría este archivo para verificar los archivos que se están iniciando porque es este grub.cfg el que se utiliza al arrancar.

El rescate suele ser la versión del kernel que se remonta a la instalación del sistema, que puede ser muchas versiones anteriores a lo que puede estar ejecutando ahora. Para una opción de rescate, que probablemente sea una buena idea a largo plazo, simplemente necesita apuntarla a una versión confiable y funcional para que el sistema al menos arranque y pueda editar archivos en el disco si un nuevo núcleo se arruina después de instalar y no arrancar o no funcionar. Básicamente, desea al menos 2 opciones de arranque en el menú de grub, la última y luego alguna versión confiable para recurrir.

edita /etc/default/grub.cfgy modifica este archivo; crea el menú como quieras simplemente comentando los que no quieres con un #, luego haz ungrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMP es el problema

Y a partir de los initrd-2.6.32-358.18.1.el6.x86_64kdump.imgarchivos que tienen kdump en el nombre, parece que tiene habilitado kdump. A menos que lo use, puede desactivar kdump, lo que ayudará a ahorrar espacio. Y a menos que esté depurando bloqueos del sistema y similares, no necesita los *kdump.imgarchivos para poder eliminarlos. No uso kdump, nunca lo he hecho, pero está habilitado de forma predeterminada durante la instalación y sospecho que guarda de forma predeterminada en su carpeta / boot; que si solo 100mb es malo. Por lo tanto, modifique kdump para volcarlo en otro lugar, o lo más probable es que no lo use, así que desactive kdump.

ron
fuente