Al instalar Ubuntu (o cualquier Linux moderno) en algún portátil que mantenga el sistema operativo Windows original se nos puede dar el caso de que aparezcan un par de entradas con Windows y que si ejecutamos una de ellas en lugar de acceder a Windows accedemos a la partición de recuperación del sistema que suele acompañar a estos portátiles.
Esto me ha pasado, por ejemplo, con un Sony Vaio FZ18 y con un Asus EEPC 1101HA, pero pasa en la mayoría de los portátiles "de marca", por decirlo de algún modo.
Para evitar el acceso a estas particiones de recuperación desde el menú de Grub bastaba con eliminar la línea adecuada en el archivo
/boot/grub/menu.lst
Ahora bien, en Grub 2 esto se vuelve algo más complicado, ya que el archivo que contiene las particiones que se pueden arrancar (/boot/grub/grub.cfg) no se edita directamente, sino que se genera mediante el comando
update-grub
a partir de lo que se le indica del contenido de la carpeta
/etc/grub.d
En concreto las particiones de Windows se detectan mediante el archivo
30_os-prober.
La solución
En
este foro de Ubuntu Leppie apunta la solución. Si al ejecutar desde una consola
update-grub nos aparece algo así
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows Vista (loader) on /dev/sda1
Found Windows Vista (loader) on /dev/sda2
Y sabemos que nuestro Windows se encuentra en la partición
sda2, lo que buscaremos será ocultar de la vista la partición
sda1.
Ojo: Si lo hacemos al revés no podremos acceder temporalmente al sistema Windows, aunque la solución sería volver a repetir estos pasos.
Ahora editaremos el archivo
30_os-prober y buscaremos una parte que contiene este texto:
for OS in ${OSPROBED} ; do
DEVICE="`echo ${OS} | cut -d ':' -f 1`"
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
BOOT="`echo ${OS} | cut -d ':' -f 4`"
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
Justo debajo añadiremos el siguiente bloque:
# Added to remove Windows Recovery
if [ "$LONGNAME" = "Windows Vista (loader)" ] && [ "${DEVICE}" = "/dev/sda1" ] ; then
continue
fi
# End Added
Es decir, que cuando encuentre
/dev/sda1, se la salte.
Ahora ejecutaremos de nuevo
update-grub y veremos algo así:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows Vista (loader) on /dev/sda2
Así ya solo tendremos acceso a la partición que contiene el sistema Windows "de verdad" y evitaremos que alguien, accidentalmente pueda restaurar el sistema eliminando todo su contenido.
Advertencia
Con estas cosa, como siempre, hay que andar con cuidado, que si nos descuidamos podemos montar algún pequeño lío que otro.