viernes, marzo 15, 2013

Como añadir Windows al gestor de arranque de openSUSE (Grub2)


Hace unos días se publicó la versión 12.3 de la distribución gnu/linux que utilizo: openSUSE. Normalmente espero un tiempo a que se vayan corrigiendo los posibles errores que una distro recien salida del horno pueda tener. Pero como ando con tiempo libre últimente, me decidí a probarla sólo un par de días después de que estuviera "en la calle".
Todo fue bien durante la instalación, se detectó todo sin problemas y en menos de 20 minutos ya estaba listo para probar lo que ofrecía de nuevo la versión comunitaria de SuSE. Como siempre, hay que empezar a configurar algunas cosas, que si conectarse a la wifi, configurar el cliente de correo electrónico, instalar programas adicionales, etc.
Finalmente, decidí descansar un ratito y pasarme a Windows 7 para echar una partidita al Pro Evolution Soccer. Aquí llega mi sorpresa ya que, al reiniciar el equipo me encuentro con que no se ha creado una entrada en el gestor de arranque (Grub2) para entrar en Windows y parece ser un error que ya ha sido reportado. Así que, hasta que esté solucionado habrá que arremangarse y entrar a hacer mecánica de la buena (no os asustéis, no es muy complicada).
Lo primero es saber en qué partición se encuentra windows, por lo tanto, habrá que entrar en una consola y teclear
su -c "fdisk -l"

Y tras teclear la contraseña se nos mostrarán las particiones del disco.
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, 625142448 sectores en total
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0x9fca1fd5

Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1            2048   188749731    94373842    7  HPFS/NTFS/exFAT
/dev/sda2   *   188749732   230677335    20963802   83  Linux
/dev/sda3       230677336   604551167   186936916    f  W95 Ext'd (LBA)
/dev/sda4       604551168   625135615    10292224    c  W95 FAT32 (LBA)
/dev/sda5       230677398   231721559      522081   82  Linux swap / Solaris
/dev/sda6       231721623   604525949   186402163+  83  Linux

Como vemos, mi partición windows esta en /dev/sda1, esto quiere decir, en el primer disco duro (si estuviera en el segundo disco sería sdb), y en la primera partición. En la notación que usará grub, es la hd0,1. Ahora tendremos que crear un script que nos permita añadir la entrada, esto es sencillo, usaremos nuestro editor de texto plano preferido para crear el archivo. Recuerda que hay que hacerlo como root.
sudo vi /etc/grub.d/11_Windows

Pulsamos la tecla [Ins] para empezar a escribir y tecleamos
#!/bin/sh -e

echo "Adding Windows" >&2

cat << EOF

menuentry "Windows 7" {

set root=(hd0,1)

chainloader +1

}

EOF

En la quinta línea, habrá que cambiar hd0,1 por el número del disco y partición que tengas en tu sistema. Se puede cambiar "Windows 7" por lo que quieras puesto que será el texto que aparecerá en el menu de arranque. Ahora es necesario grabar el archivo. Pulsamos [Esc] y [:wq] y le damos permisos de ejecución al archivo.
sudo chmod 755 /etc/grub.d/11_Windows

Y, finalmente, ejecutamos el actualizador del gestor de arranque
sudo /usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg

Generating grub.cfg ...

Found theme: /boot/grub2/themes/openSUSE/theme.txt

Found linux image: /boot/vmlinuz-3.7.10-1.1-desktop

Found initrd image: /boot/initrd-3.7.10-1.1-desktop

Adding Windows

done

Y, al reiniciar el sistema, veremos que está la entrada para poder accecer a Windows 7.
Por último os quiero indicar que, aunque yo lo hago todo por consola, porque me resulta más rápido, todos estos pasos pueden ser realizados de modo visual entrando en una sensión gráfica de root.

Enlaces:

Link de descarga opensuse. http://software.opensuse.org/123/es

23 comentarios:

TavK7 dijo...

Excelente entrada, me sirvió de mucho.
Saludos hermano!

Miguel dijo...

Querido amigo, te doy las gracias por tomarte la molestia de hacer este pequeño y útil tutorial.
Personalmente, me ha sacado de un buen apuro, ya que acababa de instalar opensuse 12.3 y no me reconoció al windows 7.
Saludos cordiales.

Muñekita Cat dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...

Buen aporte brother, ami tambien me paso lo mismo ahora esta full para jugar fifa...

Anónimo dijo...

Interesante, gracias - Encontre esta web interesante sobre linux - Administracion instalar linux

jOnSath@n kAsAndRex dijo...

Excelente, es lo que buscaba, solo que tengo un poblemita, al ejecutar el actualizador del gestor de arranque, luego de Adding Windows me sale "No volume groups found".

Estas son mis particiones:

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, 625142448 sectores en total
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0x831b5ddc

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 206848 188745727 94269440 7 HPFS/NTFS/exFAT
/dev/sda2 188745728 377489868 94372070+ 83 Linux
/dev/sda3 * 377491454 625141759 123825153 5 Extendida
/dev/sda5 377491456 385488895 3998720 82 Linux swap / Solaris
/dev/sda6 385490944 511328087 62918572 83 Linux
/dev/sda7 511328256 625121279 56896512 83 Linux

Disk /dev/sdb: 16.0 GB, 16008609792 bytes
64 heads, 32 sectors/track, 15267 cylinders, 31266816 sectores en total
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0x1bf0d4df
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 4248 12439 4096 ef EFI (FAT-12/16/32)
/dev/sdb2 * 12440 9162751 4575156 17 HPFS/NTFS oculta


y en /dev/sda1 partición se encuentra mi Windows, por lo que en el script también utilice:
set root=(hd0,1)

Alguna idea?

Desde ya muchas gracias. =D

Anónimo dijo...

Muchas gracias me salvaste la vida!!

Dhouard dijo...

La verdad es que no tengo experiencia con grupos de volúmenes así que no creo que te sirva de mucho.

Lo único que se me ocurre es que trastees un poco con el manager de LVM como se indica en este artículo.

http://forums.opensuse.org/english/get-technical-help-here/install-boot-login/480104-recover-lost-volume-group.html

De todas maneras, es un tema delicado así que te sugiero mucho cuidadín y copia de seguridad antes de enredar.

Anónimo dijo...

NO TE PARECE QUE TIENES QUE DECIR SI INSTALASTE SUSE EN UN DISCO INDEPENDIENTE O SI TIENES AMBOS EN UN MISMO DISCO Y CUANTOS DISCOS TIENES?
YO LO INSTALE EN UN DISCO INDEP Y DE FRENTE ARRANCABA SUSE PORQUE "DEBIDO A LA PARTICION ELEGIDA NO HA PODIDO CONFIGURARSE CORRECTAMENTE EL GESTOR DE ARRANQUE" MENSAJE QUE ME APARECIO AL INSTALAR SUSE 12.3

Anónimo dijo...

Amigo si me aparece lo siguiente
Generating grub.cfg ...
Found theme: /boot/grub2/themes/openSUSE/theme.txt
Found linux image: /boot/vmlinuz-3.7.10-1.1-desktop
Found initrd image: /boot/initrd-3.7.10-1.1-desktop
Adding Windows
No volume groups found
done

Anónimo dijo...

BUEN DIA MI AMIGO NECESITO TU AYUDAA!!!! EN SERIO INSTALE SUSE 12.3 EN EL UNICO DSICO QUE TENGO QUE PARTICIONE PERO EN EL INICIO PS NO ME SALE WINDOWS SIGO EL PROCEDIMIENTO TUYO PERO 1) NO RECONZCO EL DISCO DE WINDOWS CON EL KINFOCENTER PARECIERA QUE FUERA EL SDA 3 EN ESE CASO COMO SERIA EL CODIGO O EL SCRIPT SOY MUY NOVATO ESTARIA ETEEEERNAMENTE AGRADECIDO MI CORREO ES zero3061@hotmail.es porfa o alguien que me ayudee!!!!

Dhouard dijo...

Anónimo. Debes ingresar en openSuSE y,desde ahí seguir los pasos que indico. Esto es, abrir una terminal, teclear

fdisk -l

Y con eso verás las particiones que tienes en tu disco. La de windows se distingue porque es de tipo ntfs/hpfs... y, seguramente, tiene un asterisco (*) que indica que es la partición de arranque.

Anónimo dijo...

Gracias!, estoy empezando con OpenSuse 13.1 y espero no desinstalarlo en 2 años

Horacio Alejandro Gabriel Serfilippo dijo...

Yo lo solucione de manera mas sencilla y me funciono a la perfeccion, ya que tuve el mismo problema. Reinstale windows 7, luego comence de vuelta la instalacion de suse 13.1, pero antes de dar ok para que comience, fui a la parte de configuracion del cargador de arranque, a pesar de que me decia que esta el mbr deshabilitado, destile la parte que dice "grabar codigo generico en el mbr" y le di aceptar, y comence a reinstalar mi suse. Al terminar ya aparecia windows7 como opcion de arranque y totalmente funcional y mi suse funcionaba adecuadamente. Y si quieren poder ingresar a windows 7 desde una carpeta,como usuarios normales para borrar o agregar cosas, entren a sistema-particionado editen la particion ntfs en las opciones fstab, agregando umask=0 desdepues de dmask=022, siempre separando con comas, y denle aceptar. y listo. Suerte!!!

Horacio Alejandro Gabriel Serfilippo dijo...

quise decir destilde, no destile, perdon...

Dhouard dijo...

Gracias por tu solución, Horacio. Supongo que habrá quien se decante por ella pero, en mi caso y teniendo en cuenta que no me interesa reinstalar Windows, prefiero esta solución que, a mí parecer, es rápida, sencilla y sin pérdida de datos...

Como digo, muchas gracias, por tu aporte.

Anónimo dijo...

Gracias, me funciono al 100.

Anónimo dijo...

segui todo tal cual y no sucede nada

geovanz dijo...

rafael Padilla

si me pueden ayudar me da el siguiente fallo

/etc/grub.d/11_windows: línea 7: EOF inesperado mientras se buscaba un `"' coincidente

algo que quizás sea por algún detalle de tipografía pero no lo se

dantegeovanz#gmail.com

Anónimo dijo...

Tú código me ha sacado de un lío con opensuse 13.1, muchas gracias. Sin embargo el inicio de Windows ahora no dispone de las opciones que proporciona F8 ni se le puede hacer un escaneo para reparar errores a su partición. ¿Alguna idea? Gracias de nuevo.

Anónimo dijo...

Primero gracias al tipo del blog por dar esta solucion, al principio no funciono, me dio el error de volumen no found, al estar revisando las carpetas de grub, me encontre un archivo que se llama grubmap o algo asi, en donde estaban las asignacines
de hd0, hd1, etc a sda, sdb... y no concidian con el script que habia hecho, windows estaba en sdb particion1 pero en el mapa me aparecia asignado a hd0, cambie hd1,1 por hd0,1 aunque dio error de volume groups al reiniciar y seleccionar windows7, pude acceder a windows

Anónimo dijo...

Viejo mil gracias, me estaba matando la cabeza con eso de que no arrancaba Windos 8.1,,, mil gracias...

Jesus Caballero Luna dijo...

Me sirvió bastante, gracias por tu ayuda y todo desde consola :3