Archivo

Archive for 21 marzo 2011

Borrar kernels antiguos

marzo 21, 2011 Deja un comentario

Cada vez que nuestro sistema Linux instala una actualización del kernel (o instalamos nosotros uno compilado por nosotros mismos), la versión anterior no es eliminada. Con el paso del tiempo, se acumulan varias versiones del kernel en el mismo sistema. Esto puede suponer un problema si hemos asignado poco espacio a la partición /boot.

En GRUB aparece una linea por cada kernel instalado, aunque sean versiones viejas. Por una parte esto es una ventaja, ya que da la opción de arrancar con un kernel anterior, por si el nuevo nos da problemas. Muy importante cuando compilamos un kernel optimizado por nosotros, o probamos alguna versión o módulo experimental.

Pero una vez testeado, no tiene mucho sentido mantener los kernel anteriores. Veremos una forma sencilla de borrar los kernels que ya no utilizamos en nuestro sistema Debian/Ubuntu, y liberar ese espacio del disco duro.

Para ver las versiones del kernel que hay en tu sistema usaremos este comando:

$ dpkg -l | grep linux-image

Ahora sólo tenemos que ir borrando el kernel junto con sus headers. Por ejemplo, en el caso en el que quisiéramos borrar un kernel 2.6.34 haríamos:

$ aptitude purge linux-image-2.6.34 linux-headers-2.6.34

Recuerda, es muy importante no borrar el kernel actual. Tampoco borres el paquete linux-image-generic presente en las distribuciones Ubuntu.

Y por último, para ver qué versión de kernel estamos usando ejecuta:

$ uname -r

No rompáis nada 🙂

Anuncios
Categorías:Debian, Ubuntu

Instalar Hot Copy for Linux en Ubuntu

marzo 9, 2011 Deja un comentario

Una vez instalado el paquete en formato APT perfectamente compilado para tu arquitectura, tienes que instalar el módulo precompilado para tu kernel y compilarlo tu mismo. Para la última versión estable de Ubuntu (10.10 – Maverick Meerkat) no hay módulo precompilado, por lo cual hay que hacerlo. Es muy sencillo, ya que existe la utilidad hcp-setup que nos ayuda en esta labor… pero no todo es tan perfecto. Cuando intentas compilar el módulo para el kernel 2.6.35-27-generic da un feo error:

yomismo@kraken:~$ sudo hcp-setup --get-module
Checking for binary module
Waiting                       |
No binary module found
Gathering kernel information
Gathering kernel information complete.
Creating kernel headers package
Checking '/tmp/r1soft-cki.1299670593' for kernel headers
Unable to find a 'include/linux/autoconf.h'. This file is required to build a kernel module
Unable to find a valid source directory.
Please install the kernel headers for your operating system.
To install kernel headers execute:
apt-get install linux-headers-`uname -r`

Dice que no encuentra las cabeceras necesarias para compilarlo e incluso te dice el comando
que has de ejecutar para instalarlas, pero resulta que ya las tengo instaladas. O sea, que algo
raro pasa. El problema es que en el kernel 2.6.35 el fichero autoconf.h está en otro lado:

$ ls /usr/src/linux-headers-`uname -r`/include/generated/

En lugar de este otro:

$ ls /usr/src/linux-headers-`uname -r`/include/linux/

Y es ahí donde falla la rutina que comprueba que los fuentes del kernel estén instalados. A la hora de compilar no afecta donde esté este fichero ya que encuentra la ruta correcta. Sólo es problema del chequéo que hace el instalador. Por tanto la solución es bien sencilla (y podríamos decir cutre):

$ sudo touch /usr/src/linux-headers-`uname -r`/include/linux/autoconf.h

Y listos, hemos creado el fichero autoconf.h donde lo necesita y todo irá como la seda. Lo curioso del invento es que parece que envía los fuentes del kernel a un servidor remoto donde se genera el módulo y luego se lo baja. Supongo que el si otro usuario intenta hacer lo mismo con la misma versión del kernel se limitará a bajar el módulo ya compilado.

Nota: No he conseguido hacer un snapshot, al menos de una partición formateada con ext4 y viendo el log del kernel hay un mensaje aclaratorio:

hcp: ERROR: aborting snapshot, your kernel is broken please downgrade or upgrade, snapshots on block devices with ext4 will cause a dead lock.

con lo cual habrá que esperar a una actualización del kernel. Supongo que debe estar relacionado con este bug: lvm snapshot causes deadlock in 2.6.35.

Categorías:Ubuntu Etiquetas: