¿Cómo iniciar Windows 7 cuando grub está instalado en la partición de Windows?


15

Título original: ¿Cómo puedo resolver (des) iniciar Windows 7 en la misma partición con grub?

He estado investigando este problema durante dos o tres días, pero he quedado vacío.

Básicamente, la partición 1 es Windows 7 y la partición 2 es Ubuntu 12.04. Le dije a Ubuntu que se instalara en la partición 2 y que instalara GRUB en la partición 1 y eso funciona bien. Pero el problema ahora es que no puedo iniciar Windows 7. Simplemente vuelve al menú GRUB después de seleccionarlo.

Por lo que he investigado, si puedo editar GRUB para arrancar Windows 7 "mbr" o el gestor de arranque \windows\system32\winload.exe(sin usar un disco de reparación de Windows 7), mi problema se resolverá. ¿Es esto posible?


La URL de Boot-Repair-Info es http://paste.ubuntu.com/981952/


Salida del comando sudo blkid

/dev/sda1: UUID="1EA0019AA0017A13" TYPE="ntfs" 
/dev/sda2: UUID="e4402f9e-83df-4dc3-8913-69b28314d253" TYPE="ext4" 
/dev/sda3: LABEL="Vault Drive" UUID="74145BFD145BC132" TYPE="ntfs" 
/dev/sda4: UUID="1c030d32-657f-4a78-9468-307d9e09a977" TYPE="ext4"

Respuestas:


14

¿Podría crear un informe de resumen de información de arranque utilizando la herramienta de reparación de arranque como se describe a continuación y luego publicar el enlace al informe?

Sé que ya ha proporcionado algunos detalles sobre su configuración de arranque. Sin embargo, el informe que solicito contiene información más detallada y podría darnos una mejor comprensión de por qué no puede iniciar Windows con GRUB.

Cómo usar la reparación de arranque para proporcionar un "Resumen de información de arranque"


Como todavía puede arrancar Ubuntu, puede instalar y ejecutar la herramienta de reparación de arranque usando el apt-getcomando y luego usarlo para Create a Bootinfo summary.

Ejecute los siguientes comandos en una ventana de terminal para instalar la boot-repairherramienta.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Una vez que se complete, ingrese el comando boot-repairpara iniciar la herramienta.
  2. Después de un ligero retraso, boot-repairle preguntará si desea descargar su versión más reciente. Como acaba de instalar la versión más reciente, responda No.
  3. Si boot-repairle pide instalar el pastebinitpaquete, responda con Yes.
  4. La herramienta ahora escaneará su sistema y (eventualmente) mostrará la ventana que se muestra en la imagen a continuación. Haga clic en el Create a Bootinfo summarycuadro / botón. Esto recopilará información sobre la configuración de arranque de su sistema, pero no hará ningún cambio.


    Ventana inicial de reparación de arranque

  5. Cuando se ha creado el resumen bootinfo, boot-repairse mostrará un mensaje que contiene una URL que debería tener este aspecto: http://paste.ubuntu.com/123456/.

    Actualice / edite su pregunta y agregue esta URL. La información en el pastebin al que apunta este enlace nos ayudará (espero) a diagnosticar el problema.

Creo que sobreescribir el VBR de la partición de Windows causó este problema.

Entiendo que hay varios pasos para iniciar un sistema operativo. En su caso, creo que sucede algo como los pasos a continuación.

  1. El BIOS de su computadora intenta ejecutar el código en el primer sector del disco duro. Este primer sector generalmente se conoce como MBR (Master Boot Record) .
  2. Además del MBR, cada partición también puede tener un registro de arranque. A menudo se le conoce como el Registro de inicio de volumen o VBR . El MBR en su disco duro transfiere los controles al VBR de la partición 1, su partición de Windows.
  3. Windows espera que el VBR de una partición dé el siguiente paso hacia el arranque de un sistema operativo como Windows 7. Por lo tanto, Windows habría instalado originalmente un VBR que transferiría el control al bootmgrprograma de Windows en su partición de Windows.

    Sin embargo, cuando le indicó a Ubuntu que instale un programa para instalar GRUB en la partición de Windows, GRUB parece haber reemplazado el Windows VBR con el suyo. Este GRUB VBR muestra el menú de arranque de GRUB.
  4. Las instrucciones que GRUB usa actualmente para iniciar Windows son esencialmente para ubicar el VBR en la partición de Windows y transferirle el control. El VBR en la partición de Windows es el VBR de GRUB. Al transferirle el control simplemente (re) muestra el menú de arranque de GRUB.

Desafortunadamente, todavía no estoy seguro de cuál sería la mejor manera de solucionar esto. Queremos tener cuidado de no romper GRUB y hacer que sea imposible arrancar nada en su computadora cuando intentamos solucionar el problema de arranque de Windows.

A continuación hay una copia de parte de la información de su Resumen de información de arranque para referencia. Mis comentarios anteriores se basan en esta información.

============================= Boot Info Summary: ===========================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 
    of the same hard drive for core.img. core.img is at this location and 
    looks for (,msdos2)/boot/grub on this drive.

sda1: ______________________________________________________________________

    File system:       ntfs
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1
                       and looks at sector 44090872 of the same hard drive 
                       for core.img. core.img is at this location and looks
                       for (,msdos2)/boot/grub on this drive. No errors 
                       found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda2: ______________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

Una posible solución para iniciar Windows 7

A continuación hay una sugerencia para editar los comandos de arranque de GRUB que pueden permitirle arrancar Windows 7. No estoy seguro de que esto funcione, pero parece que vale la pena intentarlo.

Actualmente, grub.cfgutiliza los siguientes comandos de arranque de GRUB para arrancar Windows 7.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    chainloader +1
}

Le sugiero que intente cambiar esto y utilice estos comandos en su lugar.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Aquí están los pasos para hacer esto.

  1. Inicie su sistema en el menú GRUB.
  2. Seleccione (resalte) la entrada del menú de arranque de GRUB Windows 7 (loader) (on /dev/sda1).
  3. Presione epara editar los comandos de arranque de GRUB para Windows 7.
  4. Realice dos cambios en esta lista de comandos como se ilustra en el menuentryanterior.
    • Agrega el comando insmod ntldr
    • Cambie el comando
      chainloader +1
      a
      ntldr ($root)/bootmgr
  5. Presione Ctrl+ Xo F10para iniciar usando estos comandos editados.

Nota 1:

Si la solución anterior logra cargar el menú de arranque de Windows 7, entonces podría hacerlo semipersistente al

  1. Utilizando sudopara editar el archivo /etc/grub.d/40_customy agregar el segundo, modificado que se menuentrymuestra arriba. (Si hace esto, también le sugiero que cambie el título de esta entrada "personalizada").
  2. Ejecute el comando sudo update-grubpara actualizar /boot/grub/grub.cfgpara incluir su entrada personalizada. (Estará en la parte inferior del menú de GRUB cuando arranque).

Vería la sugerencia anterior como solo una solución parcialmente horneada. Una mejor solución es restaurar el VBR de Windows a la partición de Windows sin destruir también la capacidad de arranque de GRUB.

Creo ... pero no estoy 100% seguro ... de que el comando de recuperación de Windows bootsectse pueda usar para hacer esto. Si desea arriesgarse, a continuación se describe una posible forma de hacerlo.

  • Al iniciar Windows, presione F8para que aparezca el Advanced Boot Optionsmenú.
  • Selecciona la Repair Your Computerentrada.
  • Camina por las siguientes ventanas hasta llegar System Recovery Options.
  • Seleccione Command Prompt
  • Ejecuta el comando bootsect /nt60 C:

Pero también es posible que desee esperar un poco y ver qué otras respuestas obtiene a su pregunta antes de correr el riesgo de intentar lo anterior.

Nota 2:

Mientras buscaba otras cosas, me encontré con otras dos preguntas en AskUbuntu relacionadas con su problema.

  1. Windows 7 no se iniciará después de instalar Ubuntu 11
  2. Windows 7 no arranca después de instalar Ubuntu

No estoy seguro de cuánta ayuda brindan estas preguntas. La respuesta a la segunda pregunta fue usar el comando bootrec /fixbootpara restaurar el VBR para la partición de Windows. Entendí de esa pregunta que el uso del bootrec /fixbootcomando resolvió el problema.

Pero la segunda pregunta insiste en que bootrec /fixboothizo no resuelve el problema.

(Me golpea muchísimo lo que podría estar pasando allí).


Gracias por su respuesta. Lo tengo, por suerte, pero si otras personas no lo sabían, ahora lo saben. La url de Boot-Repair-Info es http://paste.ubuntu.com/981952/
Sim

1
Creo que su problema fue causado al instalar GRUB en su partición de Windows. Vea la actualización de mi respuesta.
irracional John

Entonces, ¿qué crees que puedo hacer? ¿Debo usar bootrec y luego reinstalar grub? ¿O hay otra manera?
Sim

Puede reparar el arranque de Windows como de costumbre, cuando eso esté hecho, Windows arrancará automáticamente sin siquiera preguntarle (Windows no reconoce Linux). Cuando eso está arreglado, puede arrancar Linux desde un USB y ejecutar GRUB nuevamente, esta vez no toque la partición de Windows;)
pzkpfw

Agregué una sugerencia para una posible solución temporal a mi respuesta.
irracional John

7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Si instaló Windows en una partición que no sea (hd0,1), debe usar el comando drivemap para iniciar Windows. Chainloader +1 o ntldr / bootmgr se pueden usar para iniciar Windows 7.

Lo que hiciste fue modificar el VBR de la primera partición; puede restaurar eso ejecutando estos comandos en modo de recuperación de Windows en cmd cuando arranque desde el CD de instalación:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd

Esta es la única respuesta que realmente funciona. +1
margarita

1

Realmente no sé sobre el "arranque (UN)" " , debe intentar reparar su Windows utilizando el disco de reparación de Windows (elija Command Promptejecutar la bootsect.exeutilidad. Bootsect se encuentra dentro de la carpeta de arranque, así que cambie su directorio a boot. Ahora ejecute bootsect /nt60 C:\(sin comillas) si tenía Windows 7 instalado inicialmente en la C:partición. Alternativamente, puede ejecutar "bootsect / nt60 SYS" o "bootsect / nt60 ALL")

Y luego reinstale GRUB.


Gracias por la respuesta. Lo que quise decir fueron las botas grub, pero no las ventanas después de seleccionarlas. Investigando, la gente dice que para reparar el arranque de mbr, deberíamos usar "bootrec.exe / fixboot" y luego "bootrec.exe / fixmbr". ¿Su método es el mismo que bootrec o diferente?
Sim

En mi experiencia, después de la instalación de Ubuntu como arranque dual, será mejor ejecutar Windows en el reinicio y hacer la reparación por sí mismo, luego volver a Ubuntu. Seguí este método cada vez y encontré con éxito.
beeju

Cierto. Para Windows uso EasyBCD
Sim

0

GRUB está instalado en su sector de arranque de partición de Windows (PBR), como muestra BootInfo:

sda1: __________________________________________________________________________

File system:       ntfs
Boot sector type:  Grub2 (v1.99)
Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1 
                   and looks at sector 44090872 of the same hard drive 
                   for core.img. core.img is at this location and looks 
                   for (,msdos2)/boot/grub on this drive. No errors found 
                   in the Boot Parameter Block.
Operating System:  Windows 7

Esto evita que Windows arranque.

La solución se describe muy bien aquí: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1


0

Tuve este mismo problema y me gustaría confirmar la solución que funcionó para mí con la esperanza de que ayude a otros ...

Edité grub.cfg para reflejar los cambios aquí:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Es decir, agregué ...

insmod ntldr

y cambió la última línea a ...

ntldr ($ root) / bootmgr

Intentaré restaurar el VBR en breve e informaré cómo resulta.


0

Resolvió mi problema de arranque de Windows 10 ...

menuentry "Windows 10 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13 
    ntldr ($root)/bootmgr
}

hexadec.code puede ser diferente


2
No estoy seguro de si esto realmente pertenece a esta pregunta ...
Zanna
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.