wiki:ActualizarKernel

Version 7 (modified by trac, 7 years ago) (diff)

--

Actualizar el kernel de los clientes EAC

Motivación

Una de las ventajas de un sistema de clonación como EAC es que permite la actualización del kernel de los clientes para así poder detectar nuevos dispositivos y corregir problemas potenciales con el sistema.

La versión inicial de EAC viene con un Kernel versión 2.6.27-7, que incluye algunos problemas de arranque con nuevos clientes (ver ticket:5). La actualización de dicho núcleo a la revisión 2.6.27-11 soluciona el problema.

Proceso de actualización

Entrar en una shell del servidor EAC y montar la imagen de arranque de los clientes con la función:

MountChrootEACclient

Esta función monta los sistemas de archivos temporal, de dispositivos y raíz del cliente, el cual está localizado en el directorio /var/EAC/nfsroot/stable. También ejecuta chroot en este directorio, con lo que se convierte en el raíz de la shell y permite actualizar los paquetes de Ubuntu, incluidos los del kernel:

apt-get update
apt-get upgrade

Para actualizar sólo los paquetes del kernel:

apt-get install linux-server linux-image-server

El fichero de imagen de arranque debe estar configurado para que se cargue por NFS, con lo que hay que modificar el fichero de configuración /etc/initramfs-tools/initramfs.conf y sustituir la línea de arranque local (BOOT=local) por arranque mediante NFS:

BOOT=nfs

Reconstruir el fichero de imagen de arranque (en el ejemplo, se usa la revisión 2.6.27-11):

cd /boot
mkinitramfs -o initrd.img-2.6.27-11-server

Salir del chroot y volver a la shell del servidor:

exit

Tanto el nuevo kernel como el nuevo initrd deben copiarse al directorio de arranque del TFTP/PXE:

cp /var/EAC/nfsroot/stable/boot/initrd.img-2.6.27-11-server /var/EAC/tftpboot/EACBootAgent/stable
cp /var/EAC/nfsroot/stable/boot/vmlinuz.img-2.6.27-11-server /var/EAC/tftpboot/EACBootAgent/stable

Modificar el fichero de configuración de PXE /var/EAC/tftpboot/pxelinux.cfg/default para que los clientes arranquen con el kernel generado, por ejemplo:

DEFAULT pxe
LABEL pxe
KERNEL ./EACBootAgent/stable/vmlinuz-2.6.27-11-server
APPEND root=/dev/nfs initrd=./EACBootAgent/stable/initrd.img-2.6.27-11-server nfsroot=10.1.14.10:/var/EAC/nfsroot/stable ip=dhcp ro vga=788 irqpoll acpi=off pci=nomsi EACregistred=NO

Modificar la Base de Datos EAC para que se generen las configuraciones con el nuevo kernel:

UPDATE `eac`.`itemboot` SET `kernel` = 'EACBootAgent/stable/vmlinuz-2.6.28-11-server',
`append` = 'root=/dev/nfs initrd=EACBootAgent/stable/initrd.img-2.6.28-11-server nfsroot=repo_client:/var/EAC/nfsroot/stable' WHERE `itemboot`.`label` = 'EAC' LIMIT 1 ;

Comprobar los cambios arrancando de nuevo los clientes EAC.