pyGrub es un pequeño GRUB, escrito en Python que se instala con las xen-utils en sistemas Debian/Ubuntu y gracias al cual se manejan perfectamente las entradas de GRUB de las máquinas virtualizadas. pyGrub viene siendo la versión virtualizada de GRUB. Se instala y configura automáticamente al terminar la instalación de la máquina virtual y coge por defecto aquellos kerneles que la máquina tenga en el momento de finalizar la instalación. También modifica el fichero de configuración de la misma para indicarle que éste será su gestor de arranque.
...
bootloader = '/usr/lib/xen-default/bin/pygrub'
...
Y la apariencia que tiene es similar a la siguiente,
 |
pyGrub Debian - Xen |
Es todo prácticamente igual a lo que ya teníamos de GRUB, pero en un entorno virtual. El problema viene a la hora de actualizar el listado kerneles que tiene el sistema disponible para arrancar. Esta configuración hay que hacerla manualmente, ya que ni el comando update-grub ni update-grub2 son capaces de realizarlo.
Simplemente hay que cambiar el fichero /boot/grub/menu.lst y añadir (o sacar) las entradas que así deseemos. En mi caso, tras pasar una máquina de Ubuntu Lucid a Ubuntu Precise tuve que actualizar el fichero, pasando de ésta configuración,
default 0
timeout 2
title Ubuntu 10.04 LTS
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-46-generic-pae root=/dev/xvda2 ro
initrd /boot/initrd.img-2.6.32-46-generic-pae
title Ubuntu 10.04 LTS (Single-User)
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-46-generic-pae root=/dev/xvda2 ro single
initrd /boot/initrd.img-2.6.32-46-generic-pae
A esta otra,
default 1
timeout 2
title Ubuntu 10.04 LTS
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-46-generic-pae root=/dev/xvda2 ro
initrd /boot/initrd.img-2.6.32-46-generic-pae
title Ubuntu 12.04-3.2-virtual LTS
root (hd0,0)
kernel /boot/vmlinuz-3.2.0-41-virtual root=/dev/xvda2 ro
initrd /boot/initrd.img-3.2.0-41-virtual
title Ubuntu 12.04-3.2 LTS
root (hd0,0)
kernel /boot/vmlinuz-3.2.0-41-generic-pae root=/dev/xvda2 ro
initrd /boot/initrd.img-3.2.0-41-generic-pae
Tras el cambio, desde el dom0 podemos ejecutar el siguiente comando,
shell> /usr/lib/xen-default/bin/pygrub /dev/vg0/my_domU-disk
que mostrará la apariencia que tendrá el gestor de arranque y también nos servirá para saber si está configurado como queremos.
La entrada
Actualización de pyGRUB en máquinas virtuales la puedes leer en
Puppet Linux.
Leer más