Durante la instalación todo iba bien, incluso al generar el menú de arranque del GRUB detectó correctamente el arranque previo de Windows 7 en la otra partición, así que me despreocupé. Grande fue mi sorpresa al ver que una vez finalizado todo el proceso de instalación, la entrada que debiera arrancar Windows 7 no estaba en el menú de GRUB.
Leyendo en los release notes de GRUB 2 (que es el que maneja Debian Squeeze), descubrí que no había error, ya que GRUB2 detectó la partición pero jamás la agregó. Así pues me di a la tarea de ver como se resolvería esto.
Lo primero era ver que nombre tenían las particiones:
tepeyolotl@satellite:/$ sudo fdisk -l|grep NTFS
[sudo] password for tepeyolotl:
/dev/sda1 * 1 13 102400 7 HPFS/NTFS
/dev/sda2 13 16908 135705600 7 HPFS/NTFS
tepeyolotl@satellite:/$
El comando fdisk solo se encuentra disponible a través de root, y con el modificador -l listamos las particiones detectadas, para ser filtradas por el tipo NTFS (esa es la función del grep). Como ya conocemos el numero de partición que contiene el arranque de Windows 7 (/dev/sda2), procedemos a agregar un archivo para que la configuraciñon del grub lo lea:
tepeyolotl@satellite:/$ sudo gedit /etc/grub.d/11_windows
Con ese comando lo que hacemos es abrir el archivo mencionado con gedit y permisos de supersusuario (necesarios para trabajar en ese directorio). Una vez abierto el archivo se ingresa lo siguiente:
#!/bin/bash
cat<<EOF
menuentry "Windows 7 Professional"{
set root(hd0,2)
chainloader (hd0,2)+1
}
EOF
Lo importante aquí son los parametros que se le dan a "root", es decir la partición en donde está nuestro Windows. Guardamos el archivo, y de vuelta en consola le damos los permisos necesarios, y actualizamos el grub.
tepeyolotl@satellite:/$ sudo chmod +x /etc/grub.d/11_windows
tepeyolotl@satellite:/$ sudo update-grub
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
Found Windows 7 (loader) on /dev/sda1
done
tepeyolotl@satellite:/$
Y bueno eso es todo y ya se puede ver la entrada para arrancar Windows 7 en el menú de GRUB.
hola, muy bien explicado pero no me resulta ya que tengo el windows en otro disco duro y no en un particion por ende ocupo root(hd1,0) que equivale al segundo disco al inicio de la particion. el update-grub no lo encuentra y update-grup2 tampoco encuntra el disco. tienes alguna idea.
ReplyDeleteSaludos :D