~
~
:wq

Sunday 12 December 2010

Configurar en Grub2 un arranque vía gPXE

english version - all spanish posts

El problema es que necesito arrancar un PC en un entorno de LTSP. Desgraciadamente la funcionalidad de PXE propia de su BIOS no parece funcionar.

Si necesitamos un thinclient que arranque vía PXE pero el firmware no soporta dicha función podemos solventar el problema con gPXE siempre y cuando la tarjeta de red sea reconocida como PCI (no valen las PCMCIA o USB en la mayoría de las ocasiones) y siempre y cuando dispongamos de un dispositivo de bloques dónde instalar grub (en este caso grub2).

No quiero perder los datos de dicho PC por lo que no me vale instalar gPXE directamente en el disco como haría si quisiera convertir el PC en un thinclient de manera definitiva. Algo así:

dd if=gPXE-for-usb.img of=/dev/sda

Podría usar una imagen gPXE para usb o para CD, pero me parece muy poco práctico. La mejor opción para este caso es añadirle una entrada a grub de modo que pueda elegir en el menú de grub el sistema operativo del PC o el arranque por red.

Lo primero que haremos es obtener una imagen gPXE de rom-o-matic.net que guardaremos en /boot/. Dejaremos las opciones por defecto de rom-o-matic.net y únicamente especificaremos el tipo de imagen «Linux kernel bootable image (.lkrn)»

Con esto ya tendremos nuestra imagen lkrn:

/boot/gpxe-1.0.1-gpxe.lkrn

La forma de trabajar con grub2 cambia mucho respecto al grub clásico, ya no hay un menu.lst que podamos editar. Ahora, para añadir nuevas entradas en el menú de grub tendremos que editar el fichero /etc/grub.d/40_custom (al menos para debian/ubuntu).

La entrada para nuestra lkrn en /etc/grub.d/40_custom quedará como:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "gPXE boot" {
linux16 /boot/gpxe-1.0.1-gpxe.lkrn
}

Finalmente ejecutaremos update-grub2 que se encargará de actualizar /boot/grub/grub.cfg:

update-grub2

En el próximo reinicio podremos elegir la opción de arranque por red desde el menú de Grub.

0 comments:

Post a Comment