Skip to main content

Error al actualizar Kernel en VPS XEN con Debian 6 Squeeze

Sucede que cuando el gestor de paquetes trata de actualizar el kernel Linux (por ejemplo el kernel linux-image-2.6.32-5-686-bigmem) XEN no permite a la VPS acceder al MBR y grub falla. Este inconveniente se produce en VPS que usan como sistema operativo Debian 6 Squeeze.

El proceso muestra el error así:


Setting up linux-image-2.6.32-5-686-bigmem (2.6.32-45) ...
Running depmod.
Running update-initramfs.
update-initramfs: Generating /boot/initrd.img-2.6.32-5-686-bigmem
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 2.6.32-5-686-bigmem /boot/vmlinuz-2.6.32-5-686-bigmem
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... Generating /boot/grub/default file and setting the default boot entry to 0
entry not specified.
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.32-5-686-bigmem.postinst line 799,  line 2.
dpkg: error processing linux-image-2.6.32-5-686-bigmem (--configure):
 subprocess installed post-installation script returned error exit status 2

Resolver el error sin embargo, es tan fácil como eliminar parte de grub, cosa que no necesitamos en nuestra VPS. Lo haremos con el comando:

apt-get remove grub-legacy grub-common

Cómo conocer las extensiones de virtualización de la CPU en Linux

Los nuevos microprocesadores vienen con una serie de extensiones que permiten mejoras en el rendimiento a las aplicaciones de virtualización. Cada uno de los fabricantes – Intel o AMD – dispone de sus propias extensiones que si bien son incompatibles entre sí tienen el mismo propósito y son ampliamente soportadas.

Para saber si el microprocesador que estamos usando en nuestro equipo dispone de estas extensiones tan solo debemos comprobar si nuestra CPU tiene activo el flag correspondiente. Así, en microprocesadores Intel el flag es el vmx y en los propios de AMD el flag es el svm.

Sabiendo esto en sistemas Linux simplemente tenemos que ver el estado de la cpu /proc/cpuinfo y comprobar si lleva el correspondiente flag. El comando siguiente nos ayuda para ver esto:

egrep --color '(vmx|svm)' /proc/cpuinfo

Y mostrará algo como:

Si el comando no muestra nada, nuestro equipo no dispone de esta característica. Bien porque en algunas BIOS podría estar desactivado y forzar que el microprocesador no soporte estas extensiones. Por lo que deberíamos revisar si esta así en la BIOS y activarlo si corresponde.

Actualización: En un kernel XEN podría no funcionar el anterior comando. El siguiente podría ayudar.

cat /sys/hypervisor/properties/capabilities