Como inicializar no Windows 7 quando o grub está instalado na partição do Windows?

15

Título original: Como posso resolver (des) inicializar o Windows 7 na mesma partição com o grub?

Estou pesquisando esse problema há dois a três dias, mas fiquei vazio.

Basicamente, a partição 1 é o Windows 7 e a partição 2 é o Ubuntu 12.04. Eu disse ao Ubuntu para instalar na partição 2 e instalar o GRUB na partição 1 e isso funciona bem. Mas o problema agora é que não consigo inicializar o Windows 7. Ele volta ao menu do GRUB depois que o seleciono.

Pelo que pesquisei, se eu puder editar o GRUB para inicializar o Windows 7 "mbr" ou o gerenciador de inicialização \windows\system32\winload.exe(sem usar um disco de reparo do Windows 7), meu problema será resolvido. Isso é possível?


A URL do Boot-Repair-Info é http://paste.ubuntu.com/981952/


Saída do 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"
Sim
fonte

Respostas:

14

Você pode criar um relatório de resumo das informações de inicialização usando a ferramenta de reparo de inicialização, conforme descrito abaixo, e depois postar o link no relatório?

Eu sei que você já forneceu alguns detalhes sobre sua configuração de inicialização. No entanto, o relatório que estou solicitando contém informações mais detalhadas e pode nos ajudar a entender melhor por que você não consegue inicializar o Windows usando o GRUB.

Como usar o reparo de inicialização para fornecer um "Resumo das informações de inicialização"


Como você ainda pode inicializar o Ubuntu, você pode instalar e executar a ferramenta Boot-Repair usando o apt-getcomando e, em seguida, usá-lo para Create a Bootinfo summary.

Execute os comandos abaixo em uma janela de terminal para instalar a boot-repairferramenta.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Após a conclusão, digite o comando boot-repairpara iniciar a ferramenta.
  2. Após um pequeno atraso, boot-repairperguntará se você deseja fazer o download da versão mais recente. Como você acabou de instalar a versão mais recente, responda No.
  3. Se boot-repairpedir para instalar o pastebinitpacote, responda com Yes.
  4. A ferramenta agora fará a varredura do seu sistema e (eventualmente) exibirá a janela mostrada na imagem abaixo. Clique na Create a Bootinfo summarycaixa / botão. Isso coletará informações sobre a configuração de inicialização do seu sistema, mas não fará nenhuma alteração.


    Janela Inicial de Reparo de Inicialização

  5. Quando o resumo bootinfo foi criado, boot-repairirá exibir uma mensagem que contém uma URL que deve olhar como este: http://paste.ubuntu.com/123456/.

    Atualize / edite sua pergunta e adicione este URL. As informações na pasta que este link indica (espero) nos ajudarão a diagnosticar o problema.

Acho que a substituição do VBR da partição do Windows causou esse problema.

Meu entendimento é que existem várias etapas para iniciar um sistema operacional. No seu caso, acho que algo como as etapas abaixo acontecem.

  1. O BIOS do seu computador tenta executar o código no primeiro setor do disco rígido. Esse primeiro setor geralmente é chamado de MBR (Master Boot Record) .
  2. Além do MBR, todas as partições também podem ter um registro de inicialização. É frequentemente chamado de Volume Boot Record ou VBR . O MBR no seu disco rígido transfere os controles para o VBR da partição 1, sua partição do Windows.
  3. O Windows espera que o VBR de uma partição dê o próximo passo para inicializar um sistema operacional como o Windows 7. Portanto, o Windows instalaria originalmente um VBR que transferiria o controle para o bootmgrprograma Windows na partição do Windows.

    No entanto, quando você instruiu o Ubuntu a instalar um programa para instalar o GRUB na partição do Windows, o GRUB parece ter substituído o VBR do Windows por seu próprio. Este GRUB VBR exibe o menu de inicialização do GRUB.
  4. As instruções que o GRUB atualmente usa para inicializar o Windows são essencialmente para localizar o VBR na partição do Windows e transferir o controle para ele. O VBR na partição do Windows é o VBR do GRUB. Transferir o controle para ele apenas (re) exibe o menu de inicialização do GRUB.

Infelizmente, ainda não tenho certeza de qual seria a melhor maneira de corrigir isso. Queremos tomar cuidado para não violar o GRUB e impossibilitar a inicialização de qualquer coisa no seu computador quando tentamos corrigir o problema ao inicializar o Windows.

Abaixo está uma cópia de algumas das informações do Resumo do Bootinfo para referência. Meus comentários acima são baseados nessas informações.

============================= 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

Uma possível solução alternativa para inicializar o Windows 7

Abaixo está uma sugestão para editar os comandos de inicialização do GRUB, que podem permitir a inicialização do Windows 7. Não tenho certeza se isso funcionará, mas parece que vale a pena tentar.

Atualmente, você grub.cfgusa os comandos de inicialização do GRUB abaixo para inicializar o 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
}

Estou sugerindo que você tente alterar isso e use esses comandos.

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
}

Aqui estão as etapas para fazer isso.

  1. Inicialize seu sistema no menu GRUB.
  2. Selecione (destaque) a entrada do menu de inicialização do GRUB Windows 7 (loader) (on /dev/sda1).
  3. Pressione epara editar os comandos de inicialização do GRUB no Windows 7.
  4. Faça duas alterações nesta lista de comandos, conforme ilustrado menuentryacima.
    • Adicione o comando insmod ntldr
    • Mude o comando
      chainloader +1
      para
      ntldr ($root)/bootmgr
  5. Pressione Ctrl+ Xou F10para inicializar usando esses comandos editados.

Nota 1:

Se a solução acima conseguir carregar o menu de inicialização do Windows 7, você poderá torná-lo semi-persistente

  1. Usando sudopara editar o arquivo /etc/grub.d/40_custome adicionar o segundo, modificado menuentrymostrado acima. (Se você fizer isso, sugiro que você altere o título dessa entrada "personalizada".)
  2. Execute o comando sudo update-grubpara atualizar /boot/grub/grub.cfgpara incluir sua entrada personalizada. (Ele estará na parte inferior do menu do GRUB quando você inicializar.)

Eu consideraria a sugestão acima apenas como uma solução parcialmente cozida. Uma solução melhor é restaurar o VBR do Windows na partição do Windows sem destruir a capacidade de inicialização do GRUB.

Eu acho ... mas não tenho 100% de certeza ... de que o comando de recuperação do Windows bootsectpode ser usado para fazer isso. Se você quiser arriscar, uma maneira possível de fazer isso é descrita abaixo.

  • Ao inicializar o Windows, pressione F8para exibir o Advanced Boot Optionsmenu.
  • Selecione a Repair Your Computerentrada.
  • Caminhe pelas próximas janelas até chegar System Recovery Options.
  • Selecione Command Prompt
  • Execute o comando bootsect /nt60 C:

Mas você também pode esperar um pouco e ver quais são as outras respostas para sua pergunta antes de correr o risco de tentar o que foi dito acima.

Nota 2:

Enquanto procurava por outras coisas, deparei-me com duas outras perguntas no AskUbuntu relacionadas ao seu problema.

  1. O Windows 7 não inicializa após a instalação do Ubuntu 11
  2. Windows 7 não inicializa após a instalação do Ubuntu

Não tenho certeza de quanto ajuda essas perguntas fornecem. A resposta para a segunda pergunta foi usar o comando bootrec /fixbootpara restaurar o VBR para a partição do Windows. Minha compreensão dessa pergunta foi que o uso do bootrec /fixbootcomando resolveu o problema.

Mas a segunda questão insiste que bootrec /fixbootse não resolver o problema.

(Supera em cheio o que pode estar acontecendo lá.)

John irracional
fonte
Obrigado por sua resposta. Tudo bem, tenho sorte, mas se outras pessoas não sabiam disso, agora sabem. O URL do Boot-Repair-Info é http://paste.ubuntu.com/981952/
Sim
11
Acho que seu problema foi causado pela instalação do GRUB na sua partição do Windows. Veja a atualização para minha resposta.
irracional John
Então, o que você acha que eu posso fazer? Devo usar o bootrec e depois reinstalar o grub? Ou existe outra maneira?
Sim
Você pode reparar a inicialização do Windows, como de costume, quando isso for feito, o Windows será inicializado automaticamente sem sequer perguntar (o Windows não reconhece o Linux). Quando isso é corrigido, você pode iniciar o Linux a partir de um GRUB USB e correr novamente, desta vez não toque a partição do Windows;)
PzKpfw
Adicionada uma sugestão para uma possível solução temporária à minha resposta.
irracional John
7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Se você instalou o Windows em uma partição diferente de (hd0,1), precisará usar o comando drivemap para inicializar no Windows. O Chainloader +1 ou ntldr / bootmgr podem ser usados ​​para inicializar o Windows 7.

O que você fez foi modificar o VBR da 1ª partição; você pode restaurar isso executando estes comandos no modo de recuperação do Windows em cmd ao inicializar a partir do CD de instalação:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd
Kross
fonte
Esta é a única resposta que realmente funciona. +1
margarida
1

Eu realmente não sei sobre a "inicialização (ONU))", você deve tentar corrigir o Windows usando o disco de reparo do Windows (escolha Command Promptexecutar o bootsect.exeutilitário. O Bootsect está localizado dentro da pasta de inicialização, portanto mude seu diretório para boot. Agora execute bootsect /nt60 C:\(sem aspas) se o Windows 7 foi instalado inicialmente na C:partição. Como alternativa, você pode executar "bootsect / nt60 SYS" ou "bootsect / nt60 ALL")

E, em seguida, reinstale o GRUB.

hardianto
fonte
Obrigado pela resposta. O que eu quis dizer foi as botas de grub, mas não as janelas depois que eu a selecionei. Pesquisando, as pessoas dizem que, para reparar a inicialização do mbr, devemos usar "bootrec.exe / fixboot" e "bootrec.exe / fixmbr". Seu método é igual ao bootrec ou diferente?
Sim
Na minha experiência, após a instalação do Ubuntu como inicialização dupla, será melhor executar o Windows na reinicialização e fazer o reparo sozinho e depois voltar ao Ubuntu. Eu segui esse método todas as vezes e obtive sucesso.
beeju
Verdade. Para janelas, eu uso o EasyBCD
Sim
0

O GRUB está instalado no setor de inicialização da partição do Windows (PBR), como mostra o 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

Isso impede que o Windows seja inicializado.

A solução é bem descrita aqui: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1

LovinBuntu
fonte
0

Eu tive esse mesmo problema e gostaria de confirmar a solução que funcionou para mim, na esperança de que ajude outras pessoas ...

Editei o grub.cfg para refletir as alterações aqui:

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
}

Ou seja, eu adicionei ...

insmod ntldr

e alterou a última linha para ...

ntldr ($ root) / bootmgr

Vou tentar restaurar o VBR em breve e relatarei como ele ficará.

Philip
fonte
0

Resolvido meu problema de inicialização do 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 pode ser diferente

nkp
fonte
2
Eu não tenho certeza que isso realmente pertence a esta pergunta ...
Zanna