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

13

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

Estou pesquisando há 2/3 dias sobre esse problema e saí em branco.

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 apenas retorna ao menu do grub depois que eu o seleciono.

Do que eu pesquisei, se eu posso editar o grub para inicializar o Windows 7 "mbr" ou o bootloader \windows\system32\winload.exe (sem usar o disco de reparo do windows 7), meu problema será resolvido. Isso é possível?

A URL do Boot-Repair-Info é o link

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"
    
por Sim 11.05.2012 / 03:23

6 respostas

12

Você poderia criar um relatório de Resumo do Bootinfo usando a ferramenta de reparo de inicialização, conforme descrito abaixo, e 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 pedindo 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 boot-repair para fornecer um "Resumo do Bootinfo"


Como você ainda pode inicializar o Ubuntu, você pode instalar e executar o Ferramenta de reparo de inicialização usando o comando apt-get e, em seguida, use-o para Create a Bootinfo summary .

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

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Depois disso, insira o comando boot-repair para iniciar a ferramenta.
  2. Após um pequeno atraso, boot-repair perguntará se você deseja baixar sua versão mais recente. Como você acabou de instalar a versão mais recente, responda No .
  3. Se boot-repair pedir para instalar o pacote pastebinit , responda com Yes .
  4. A ferramenta irá agora analisar o seu sistema e (eventualmente) exibir a janela mostrada na imagem abaixo. Clique no botão Create a Bootinfo summary / button. Isso coletará informações sobre a configuração de inicialização do seu sistema, mas não fará nenhuma alteração.




  5. Quando o resumo do bootinfo tiver sido criado, boot-repair exibirá uma mensagem contendo um URL que deve ter esta aparência: http://paste.ubuntu.com/123456/ .

    Por favor, atualize / edite sua pergunta e adicione este URL. As informações no pastebin que este link aponta para (espero) nos ajudarão a diagnosticar o problema.

Acho que sobrescrever o 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 os passos 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, cada partição também pode ter um registro de inicialização. É frequentemente referido como o Volume Boot Record ou VBR . O MBR no seu disco rígido transfere o controle 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 teria originalmente instalado um VBR que transferiria o controle para o programa bootmgr do Windows na partição do Windows. No entanto, quando você instruiu o programa de instalação do Ubuntu a instalar o GRUB na partição do Windows, o GRUB parece ter substituído o Windows VBR pelo seu próprio. Este GRUB VBR exibe o menu de inicialização do GRUB.
  4. As instruções que o GRUB usa atualmente para inicializar o Windows são essencialmente 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 sei qual seria a melhor maneira de corrigir isso. Queremos ter cuidado para não quebrarmos o GRUB e tornar impossível inicializar qualquer coisa no seu computador quando tentarmos corrigir o problema ao inicializar o Windows.

Abaixo está uma cópia de algumas das informações do seu Bootinfo Summary 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 solução possível para inicializar o Windows 7

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

Atualmente seu grub.cfg usa 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 os passos para o fazer.

  1. Inicialize seu sistema no menu GRUB.
  2. Selecione (destaque) a entrada do menu de inicialização GRUB Windows 7 (loader) (on /dev/sda1) .
  3. Pressione e para editar os comandos de inicialização do GRUB para o Windows 7.
  4. Faça duas alterações nessa lista de comandos, conforme ilustrado no menuentry acima.
    • Adicione o comando insmod ntldr
    • Alterar o comando chainloader +1
      para ntldr ($root)/bootmgr
  5. Pressione Ctrl + X ou F10 para inicializar usando estes comandos editados.

Nota 1:

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

  1. Usando sudo para editar o arquivo /etc/grub.d/40_custom e adicionar o segundo menuentry modificado mostrado acima.(Se você fizer isso, eu também sugiro que você mude o título desta entrada "personalizada").
  2. Execute o comando sudo update-grub para atualizar /boot/grub/grub.cfg para incluir sua entrada personalizada. (Ele estará na parte inferior do menu GRUB quando você inicializar.)

Eu veria a sugestão acima como apenas uma solução parcialmente preparada. Uma solução melhor é restaurar o Windows VBR para a partição do Windows sem , o que também destrói a capacidade de inicialização do GRUB.

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

  • Ao inicializar o Windows, pressione F8 para abrir o menu Advanced Boot Options .
  • Selecione a entrada Repair Your Computer .
  • Percorra as próximas janelas até chegar a System Recovery Options .
  • Selecione Command Prompt
  • Execute o comando bootsect /nt60 C:

Mas você também pode querer esperar um pouco e ver que outras respostas você recebe pergunta antes de correr o risco de tentar o acima.

Nota 2:

Enquanto procurava por outras coisas, eu me deparei 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. O Windows 7 não inicializa após a instalação do Ubuntu

Não sei quanto ajuda essas perguntas fornecem. A resposta para a segunda pergunta foi usar o comando bootrec /fixboot para restaurar o VBR para a partição do Windows. Meu entendimento dessa questão foi que usar o comando bootrec /fixboot resolveu o problema.

Mas a segunda questão insiste em que bootrec /fixboot não resolveu o problema.

(Bate o fora de mim para o que pode estar acontecendo lá.)

    
por irrational John 11.05.2012 / 18:13
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), será necessário usar o comando drivemap para inicializar no Windows. Chainloader +1 ou ntldr / bootmgr ambos podem ser usados para inicializar o Windows 7.

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

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd
    
por kross 12.02.2014 / 22:52
1

Eu realmente não sei sobre "inicialização (ONU))" você deve tentar consertar seu Windows usando o disco de reparação do Windows (escolha Command Prompt para executar o utilitário bootsect.exe . O Bootsect está localizado dentro da pasta de inicialização, então mude seu diretório para boot . Agora execute bootsect /nt60 C:\ (sem aspas) se você tinha o Windows 7 instalado inicialmente na partição C: , ou pode executar o "bootsect / nt60 SYS" ou o "bootsect / nt60 ALL")

E, em seguida, reinstale o GRUB.

    
por hardianto 11.05.2012 / 05:29
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 inicialize.

A solução está bem descrita aqui: link

    
por LovinBuntu 21.06.2012 / 12:17
0

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

Eu 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

Eu vou tentar restaurar o VBR em breve e reportarei como isso acontece.

    
por Philip 03.01.2014 / 05:27
0

Resolvi 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

    
por nkp 03.03.2017 / 11:00