Como posso reparar o Windows 8 EFI Bootloader?

122

Instalei o Windows 7 e o Windows 8 no modo EFI em um disco rígido há alguns dias. Hoje, o carregador de inicialização ficou ausente / corrompido.

Atualmente, tenho o instalador do Windows 8 em uma unidade flash e tentei usar a opção Reparo automático para reparar o carregador de inicialização, mas ele não fez nada. A opção Reparo de inicialização também está ausente no instalador do Windows 8.

Como posso reparar / recriar o EFI bootloader no prompt de comando?

BCDEDIT retorna a seguinte mensagem:

The requested system device cannot be found.
Elmo
fonte
O que há de errado com as soluções atuais?
soandos
@soandos Eu tive o mesmo problema. Eu executei os comandos de você e harrymc, e tudo funciona bem agora! Muito obrigado a ambos.
ComFreek
2
Assim como um FYI, mas nós já lançou recentemente uma ferramenta automatizada de reparação EFI para o Windows 8: neosmart.net/blog/2013/...
Mahmoud Al-Qudsi
1
Eu não esperava que as pessoas tivessem tantos problemas com o UEFI Windows 8 ... Como a partição do sistema simplesmente desaparece ou fica corrompida? Ele nem é montado no Windows normalmente, portanto a corrupção do sistema de arquivos não pode ser isso. E todos os sistemas operacionais atuais são livres de erros o suficiente para não prejudicar uma instalação existente do Windows. De fato, mesmo o Windows não absorve o Linux no UEFI, surpresa de surpresas.
Milind R
Isto não se aplica se você estiver usando discos dinâmicos
rainabba

Respostas:

183

Passei muito tempo tentando inicializar meu PC com Windows 8 novamente depois de clonar em um novo SSD e tentar resumir como finalmente consegui tudo funcionar -

Em primeiro lugar, inicialize a partir de um disco de recuperação UEFI Windows 8 (CD / DVD / USB) - eu descobri que o processo de recuperação automatizada não encontrou a partição correta do Windows, nem quando eu consegui adicioná-lo às configurações do BCD, o tornaria confiável e inicializável por exemplo, usando BCDEDIT, consegui encontrar e iniciar a partição do Windows, mas ela se recusou a inicializar a frio ou não "manteve" as configurações após uma segunda reinicialização ou desligamento.

Vá para as opções avançadas e execute o prompt de comando.

Digite diskpartpara usar a ferramenta DiskPart para garantir que você tenha todas as partições corretas e identificar sua partição EFI - a principal coisa aqui é que sua partição EFI está formatada como FAT32:

DISKPART> sel disk 0

Disk 0 is now the selected disk.

DISKPART> list vol

  Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
  ----------  ---  -----------  -----  ----------  -------  ---------  --------
  Volume 0     E                       DVD-ROM         0 B  No Media
  Volume 1     C                NTFS   Partition    195 GB  Healthy    Boot
  Volume 2         WINRE        NTFS   Partition    400 MB  Healthy    Hidden
  Volume 3                      FAT32  Partition    260 MB  Healthy    System

Em seguida, atribua uma letra de unidade à partição EFI:

DISKPART> sel vol 3

Volume 3 is the selected volume.

DISKPART> assign letter=b:

DiskPart successfully assigned the drive letter or mount point.

Saia da ferramenta DiskPart digitando exite no prompt de comando execute o seguinte:

cd /d b:\EFI\Microsoft\Boot\

bootrec /fixboot

Exclua ou renomeie o arquivo BCD:

ren BCD BCD.bak

Use bcdboot.exepara recriar o armazenamento do BCD:

bcdboot c:\Windows /l en-gb /s b: /f ALL

O /f ALLparâmetro atualiza as configurações do BIOS, incluindo o firmware UEFI / NVRAM, /l en-gbé o local do Reino Unido / GB. O padrão da localização é inglês dos EUA ou use en-US.

Reinicie e cruze os dedos.

Isso me deu dores de cabeça. Eu estava andando em círculos por um longo tempo. Não há muitas informações confiáveis ​​sobre como corrigir o UEFI / Windows 8 no momento da escrita.

[EDITAR]

Para reativar o Hyper-V, também precisei executar o seguinte em um prompt de comando do administrador no Windows após a reinicialização:

bcdedit /set {default} hypervisorlaunchtype Auto
bcdedit /set {default} nx OptIn
Alex
fonte
1
Fiz isso em um ISO do Windows 10 para download. não funcionou no começo, mas executou o reparo de inicialização no menu da GUI posteriormente e foi isso, graças a D'us. :-) I apreciar a ajuda :-)
Abbafei
Esta receita foi a mais promissora, mas eu acertei BFSVC Error: Could not open the BCD template store. STatus = [c000000f ]:(
Dusan Bosnjak 'pailhead'
22

As outras respostas são úteis, mas é isso que eu tive que fazer para corrigir as minhas.

Eu tinha um disco rígido de 1,5 TB com o Windows 7 instalado. Em seguida, instalei o Windows 8 em um SSD de 150 GB que comprei. O disco rígido de 1,5 TB falhou e eu pude ouvi-lo fazendo barulho. Meu computador não iniciava mais dizendo "insira o disco do sistema". Eu pensei que estava faltando o carregador de inicialização, como deveria estar no disco de 1,5 TB. Acontece que era, mas o problema foi que os guias que segui não reconstruíram o gerenciador de inicialização ou como ele é chamado, pois eu não tinha uma partição EFI no disco menor de 150 GB (isso pode ter existido no disco com falha), ele só tinha 1 partição que encheu o disco inteiro.

Como não queria perder todos os meus dados, entrei no prompt de comando inicializando a partir da unidade USB de instalação do Windows 8 (observando que você não pode inicializar a versão UEFI disso se isso aparecer, selecione inicializar apenas a unidade USB sem o UEFI aparecendo antes dele).

Uma vez no prompt de comando (consulte as outras respostas para obter instruções), você precisa reduzir a partição. Para fazer isso, digite os seguintes comandos, pressionando Enterapós cada um:

diskpart

list disk

select disk 0

list partition

select partition 1

shrink desired=200 minimum=200

create partition efi

list partition

select partition 2

format fs=fat32

Esses comandos criarão a partição EFI. Verifique tudo digitando list vol. Você deve ver uma partição de 200 MB. Agora você precisa atribuir uma carta a ele. Faça isso digitando e assign, list volnovamente, para ver qual letra foi atribuída.

Agora, feito isso, você precisa copiar os arquivos de inicialização para esta partição recém-criada:

bcdboot C:\Windows /l en-gb /s B: /f ALL

Nota: você deve substituir C:pela letra da unidade da partição que contém o Windows e B:pela letra atribuída à partição EFI que você acabou de criar.

Eu também inseri os seguintes comandos:

bootrec /fix

bootrec /fixmbr

Ambos voltaram bem-sucedidos, sem saber se realmente fizeram alguma coisa além de quem se importa. Agora o Windows está totalmente recuperado.

Paulo
fonte
2
O bootrec / fix não parece ser um comando válido no Windows 8, mas, caso contrário, as instruções funcionaram e resolveram todos os meus problemas. Obrigado!
Ciaran Fisher
i: é minha partição EFI (primeira no disco), mas está vazia. Quando executo bcdboot c:\windows /s i: /f ALL, recebo "Erro BFSVC: falha ao definir o dispositivo de aplicativo de emement. Status = [c00000bb]" Venho travando essa batalha há meses e, a cada tentativa, continuo com uma unidade flash que parece conter minha inicialização EFI arquivos porque II pode inicializá-lo, mas se eu removê-lo, não consigo inicializá-lo.
rainabba
Muito obrigado! Isso salvou meu dia. Eu tentei praticamente tudo por aí e nada funcionou. A etapa que estava faltando foi a formatação do volume EFI. Uma vez formatado o volume EFI. O comando bcd boot funcionou com sucesso e eu tenho o Windows 10 novamente em funcionamento.
Sahil 31/03
+1 para dizer-me para escolher as janelas letra de unidade em vez do habitual C:
ptetteh227
+1 - Lembre-se da mensagem mais importante Nota: você deve substituir C: pela letra da unidade da partição que contém o Windows e B: pela letra atribuída à partição EFI que você acabou de criar. Eu luto com isso às 13 horas! Obrigado cara, você me salvou nas próximas 12 horas :)
Jerzy Drożdż
9

Ok, eu tive tempo de montar um esboço adequado aqui. É longo, mas é bastante completo e deve ajudar você a ver o que está acontecendo.

Primeiro, uma maneira de isso acontecer:

  1. Seu BIOS perde suas configurações.
  2. Não tem problema, tudo isso é armazenado na partição EFI.
  3. ... exceto pela configuração SATA IDE vs AHCI, por razões óbvias.
  4. Você estava usando SATA-AHCI? Você provavelmente está usando o SATA-IDE agora.
  5. Você tentou inicializar antes de descobrir isso?
  6. Se você fez, falhou. Você deixou o Windows tentar corrigi-lo?
  7. Se você fez isso, o BLAM pode muito bem ter destruído o banco de dados de configuração de inicialização.
  8. Verifique se você está usando a configuração SATA correta que estava usando da última vez.

Aqui está o que você provavelmente já fez até agora. Se nada disso coincidir, avalie cuidadosamente se isso está de fato seu problema e leia-o para obter idéias, mas não o siga sem pensar primeiro.

  1. Você ignorou ESPERAMENTE toda a porcaria de corrigir o MBR (registro de inicialização mestre), a tabela de partição, os sinalizadores de partição e outro lixo que NÃO SE APLICA a um cenário de inicialização EFI. Em tudo . Na melhor das hipóteses, você seria capaz de reconstruir completamente uma nova solução de inicialização não relacionada à EFI , não relacionada . Isso pode não ser trivial, no entanto, porque:

  2. Você descobriu que o Windows tem certeza de que não possui um banco de dados de configuração de inicialização, mas, infelizmente, é completamente ignorante ou MUITO certo sobre onde ele vai - você não sabe dizer qual.

  3. Você está ciente de que o armazenamento de inicialização está normalmente (em algum lugar) \ Boot \ BCD e que o arquivo está ESCONDIDO; visualize-o usando "dir / a: hs".

  4. Você se familiarizou um pouco com o BCDEDIT.EXE e descobriu que ele permitirá "simular" um banco de dados de configuração de inicialização em um arquivo de teste usando "/ CREATESTORE" (e, por favor, não o chame de "BCD"), que você pode usar explicitamente o arquivo de teste com a opção "/ STORE", que pode adicionar uma entrada de menu para o Windows Boot Manager usando "/ CREATE {bootmgr}" e que você poderá importá-lo usando "/ IMPORT" ...

  5. ... mas quando você tenta fazer isso, não pode. Você analisa a opção / SYSSTORE, que parece correta, mas não pode usar outra loja porque é "ambígua". Você tem um pressentimento de que ele sabe onde fica a loja - ou deveria estar - mas não consegue encontrá-la.

  6. Você tentou usar o "MOUNTVOL" para montar a partição EFI, mas ela nem aparece na lista, então você não pode.

Se tudo isso se aplica bastante a você, aqui está o que PODE estar acontecendo:

  1. O Windows pode dizer que você está configurado para o EFI (você inicializou o DVD através de uma inicialização UEFI, você tem uma partição EFI, etc.).

  2. Portanto, ele sabe ONDE PROCURAR o arquivo BCD - no entanto, de alguma forma, o local está errado (não esse problema, mas semelhante) ou o BCD foi excluído.

  3. Aparentemente, porque ele sabe onde deveria estar, isso quebra / SYSSTORE - e, na verdade, esse provavelmente é o comportamento correto, porque, caso contrário, você o colocaria no lugar errado.

  4. Até onde eu sei, o MOUNTVOL oculta deliberadamente a partição EFI (ou é de alguma forma incapaz de perceber). Isso evita a montagem do sistema de arquivos, o que impede a localização do subdiretório correto, a verificação da existência do banco de dados etc.

Então, aqui, finalmente, é o que você precisa fazer sobre isso. A boa notícia é que provavelmente é muito mais simples do que você espera agora.

  1. Você realmente precisa montar a partição EFI.

Na verdade, tenho um palpite que não é estritamente correto - suspeito fortemente que a partição EFI esteja montada por algum subsistema interno, e é por isso que o BCDEDIT fica irritado - ele não vê o banco de dados, mas sabe para onde deve ir. O que não tem, no entanto, é uma letra de unidade. Então o que fazer?

Bem ... até onde vão as suas raízes do DOS? Você se lembra do comando ASSIGN? Adivinha.

  1. Inicie o DISKPART.

  2. Se você não estiver familiarizado com o DISKPART, o modo como ele basicamente funciona é uma hierarquia de conjuntos; você deve selecionar exatamente um elemento em um nível para prosseguir para o próximo. Portanto, "LIST DISKS" e "SELECT DISK n" onde n é o que for apropriado para você.

  3. Use "LIST PARTITION" e "LIST VOLUME" (observação não plural) para obter algumas dicas e identificar sua partição EFI.

Geralmente, é uma partição FAT32 de 100 MB marcada com "SYSTEM". Lembre-se de que seu disco deve estar usando uma tabela de partições GPT agora, portanto, você poderá ver várias partições. Alguns deles são para recuperação de emergência - muito bom que eles fazem para problemas de EFI, não é? Ah bem.

Observe que a partição EFI, e algumas outras, não possuem letras de unidade. Se você é tão inclinado, também pode visualizar os atributos da partição GPT, o que também pode proporcionar alguns momentos "Aha" relacionados à tangibilidade.

  1. "SELECT PARTITION n" onde n é a partição EFI. (Espero que você possa selecionar o volume, se precisar.)

  2. "ATRIBUIR". É isso aí. Não especifique uma letra de unidade; apenas "ASSIGN".

  3. "LISTAR VOLUME". Agora você deve ver uma letra de unidade atribuída à partição EFI.

  4. "SAIR" DISKPART.

E agora ... um grande aviso gordo. Você provavelmente irá diretamente para S: (ou o que quer que tenha obtido com ASSIGN) e notará uma partição / Boot. "AHA!" Você dirá. "Não há arquivo BCD aqui!" Primeiro ... lembre-se de que o arquivo está oculto. Segundo ... cavar um pouco mais, e você perceberá que enquanto houver:

S: \ EFI \ Boot

há também:

S: \ EFI \ Microsoft \ Boot

Você precisa verificar os dois quanto a problemas.

S: \ EFI \ Boot é para a placa - mãe e contém o Windows Boot LOADER (e possivelmente outras coisas para outros sistemas operacionais). Esse nome tem esse nome porque a placa-mãe não tem idéia se você deseja ter o Windows ou não, e precisa de um caminho fixo que faça sentido.

  1. Inspecione S: \ EFI \ Boot. Para o Windows 7 Professional de 64 bits, você deve ver:

bootx64.efi

Se você instalou um shell EFI (sempre uma boa idéia), poderá ver adicionalmente "shellx64.efi".

NOTA: Usuários de Linux com inicialização dupla usando "chainloader + 1" NÃO verão uma entrada extra aqui.

  1. Inspecione S: \ EFI \ Microsoft \ Boot usando tanto "dir" e "dir a: h". No Windows 7 Professional de 64 bits, você deve ver vários modelos de idioma ("en_US" etc.) e os seguintes arquivos:

bootmgr.efi bootmgfw.efi memtest.efi BCD BCD.Backup.001 BCD.Backup.002

... exceto que você provavelmente não vê o BCD, vê? Mas esses arquivos de backup parecem tentadores.

  1. Determine qual arquivo de backup você deseja usar. Quaisquer que sejam as mudanças recentes que estão faltando, não são nem de longe tão importantes quanto a sua capacidade de inicializar o sistema, então escolha a que estiver mais intacta. Provavelmente você verá uma grande e outra bem pequena. O pequeno já está corrompido e é um artefato do processo de reparo com falha - não o use. Se os dois forem grandes, use o mais antigo. EM QUALQUER CASO, faça cópias adicionais dos backups em outro lugar.

  2. Copie o backup que você decidiu usar para "BCD".

  3. Saia do shell, desligue corretamente e reinicie.

  4. Diga ao Windows para iniciar NORMALMENTE. Neste ponto, ele deve começar.

P: E se você não tiver um BCD de backup?

A: Bem, isso realmente não deveria acontecer. Provavelmente, significa que você está no diretório errado, oferece suporte ao EFI, mas não o estava usando realmente, ou de alguma forma reconstruiu toda a partição EFI sem todos os materiais necessários do Windows (possível, especialmente ao usar várias versões do Windows). Nesse caso, você precisará copiar os materiais EFI do DVD e modificar ou reconstruir o banco de dados de configuração de inicialização usando o BCDEDIT.

P: Você pode me dar um exemplo de cenário em que "BCDEDIT / SYSSTORE" pode ser usado para fazer qualquer coisa em um sistema EFI?

A: Até agora, não.

De qualquer forma, espero que isso ajude a resolver alguns problemas para as pessoas, ou pelo menos faça com que elas pensem. Como um ponto final muito importante, observe que você pode montar e inspecionar sua partição EFI no Windows normalmente usando a técnica DISKPART ASSIGN acima. Você deve fazer isso pelo menos uma vez, para obter um backup completo da sua partição EFI, ANTES de encontrar esse tipo de problema. Eu recomendo um backup em um subdiretório na sua unidade C: e outro em uma unidade flash USB.

Desculpe, isso é tão demorado. Preciso transformar isso em um artigo adequado em algum momento, mas há tantas pessoas que estão tão frustradas que senti a necessidade de documentar minha experiência o mais completa e rapidamente possível.

Saúde, Matt "Breakpoint" Parreira

Matt Heck
fonte
1
Na verdade, o MOUNTVOL permite montar o ESP. Você usa a letra MOUNTVOL: / S.
Yuhong Bao
Então, quando você monta essa partição EFI e não encontra nada, como proceder? Eu estava pensando que bcdboot c:/windows /s i: /f ALLou como me a começar, mas isso só me deixa "BFSVC Erro: Falha ao definir elemento de aplicação do dispositivo Status = [c00000bb]."
rainabba
Apesar de ter visto esse erro de uma só vez, agora parece que tenho a pasta EFI nessa unidade onde não tinha antes. Ainda não é possível fazer muito mais sem erros e não é possível inicializar, mas isso é algo pelo menos.
10139 rainabba
Decidiu tentar outra rota completamente. Liguei outra unidade flash, limpei, dei uma letra de unidade e repeti usando-a como destino, em vez da minha partição EFI. Em resumo, não estou inicializado na minha instalação do Windows, mas fora dessa unidade flash. Não consegui inicializar minha partição EFI, apesar de ter os arquivos, sendo a primeira partição (EFI, fat32, tem os arquivos) na minha primeira unidade. Por outro lado, essa é uma maneira interessante de manter alguém fora meu sistema Acabei de tirar essa "chave" do meu sistema e ela não inicializa.
10139 rainabba
5

O Windows 8 ainda não está na forma final, portanto, problemas são esperados. Você está em uma área nova para a maioria de nós, onde os comandos que costumávamos usar podem não funcionar mais. Aos comandos listados por @soandos, adiciono este que reconstrói completamente o BCD:

bootrec /rebuildbcd

Tente também usar o menu de inicialização avançada do Windows 8 e informe-nos o que acontece.

Se nada funcionar, o artigo Reparando o Windows 7 quando eles falham na inicialização tem algumas dicas sobre o uso do bcdedit para corrigir erros de inicialização. De qualquer forma, seria interessante ver qual é a saída do bcdedit no seu computador.

[EDITAR]

Esses links podem conter algumas idéias úteis:

Recuperando o
Carregador de Inicialização do Windows a partir do DVD Problema de Recuperação do Gerenciador de Inicialização do
Windows 7 O Windows 7 de repente não inicializa - Reparando o Carregador de inicialização do Windows 7

harrymc
fonte
Eu adicionei alguns links que podem ser úteis, embora pertencentes ao Windows 7.
harrymc
3

A maneira mais fácil:

  • Siga as etapas da postagem acima para localizar o arquivo BCD e vá para o diretório

  • Se o arquivo BCD estiver oculto, digite attrib bcd -s -h -re pressione Enter. Isso permitirá que você modifique e substitua o arquivo.

  • Digite ren bcd bcd.olde pressione Enter. Isso renomeia o arquivo BCD atual.

  • Digite Bootrec /RebuildBCDe pressione Enterpara forçar o Windows 8 a recriar o menu de inicialização do zero.

  • Saia do prompt de comando e desligue. Remova o Windows Recovery Media e reinicie. Você Terminou!

Rodolfo Philipp
fonte
2

No DISKPART, eu tinha apenas o volume 0 ou D (o DVD) e o volume 1 ou C (a partição Windows NTFS). Nada funcionou para mim até que eu fiz o VOL 1 ATIVO.

Depois de sair do DISKPART, digitei apenas:

bootrec /fixboot
bootrec /rebuildbcd

então o sistema foi reparado corretamente. Eu não usei

bootrec /fixmbr

porque eu estava usando GAG (gestor de organização gráfica) no MBR para inicialização múltipla.

Alabardeiro
fonte
1

Após 6 horas de luta, consegui corrigir o problema de inicialização do Windows 8.

Hoje, após um reinício habitual, recebi a mensagem MBR not foundou algo parecido, não me lembro mais. Tentei bootreccomandos, reparo automático do Windows (não conseguia encontrar nenhum Windows instalado), um milhão de outras maneiras e nada.

O problema foi quando eu bootrec /rebuildbcdo executei normalmente e, quando precisei entrar yespara salvar a configuração, recebi a mensagem the file is not accessible because it is used by a another process.

Depois de horas de rachar, finalmente resolvi.

Nesta ordem...

  • Primeiro, eu inicializei o mestre da partição de facilidade e FORMATEI o volume reservado do sistema, que eu designei como ativo posteriormente (no qual estava minha pasta de inicialização). Quando reiniciei, recebi um erro NTLDR missing.

  • Então eu inicializado na recuperação do Windows, aberto um prompt de comando e entrou bootrec /fixmbr, /fixboot, /scanos, /rebuildbcd(que agora executado bem:])

  • Saí cmde cliquei no reparo automático.

  • Pude selecionar o Windows 8. Ao reiniciar, pude ver o logotipo do Windows 8.

Roko
fonte
2
Atenção: esta resposta parece ser um disco MBR. Em um disco GPT, diskpart.exe retorna esta mensagem ao marcar um volume ativo: "O comando ACTIVE pode ser usado apenas em discos MBR fixos".
Zacharydl 3/09/16
0

Meu cenário; Não perdi a partição do sistema EFI, mas alternar unidades e instalar o Windows parece ter danificado a entrada de inicialização UEFI do Windows Boot Manager para a primeira unidade; teve que usar a entrada UEFI que aponta para a unidade diretamente para inicializar. Acho que o corrigi corrigindo / adicionando a configuração "partição do dispositivo = \ Device \ HarddiskVolumeX" (X = 2 no meu caso; minha segunda partição é a partição do sistema EFI, mapeada para Z: with diskpart.exe):

Bcdedit / set partição do dispositivo {bootmgr} = Z:

ver com: firmware bcdedit.exe / enum

James Risto
fonte
-1

Uso: bootrec /fixmbr(atualiza o MBR, provavelmente não fará nada neste caso, mas também não prejudicará)

bootrec /fixboot reescrever o setor de inicialização da partição do sistema.

bootrec /scanos para procurar os sistemas operacionais que estão na unidade e adicioná-los ao carregador de inicialização.

Basta executar os comandos em ordem.

soandos
fonte
Downvoter gostaria de comentar?
Soandos
1
O bootrec /fixmbrcomando não se aplica ao problema ou situação do autor.
Ramhound 3/03/15
-4

Consegui corrigi-lo usando o seguinte comando no console de recuperação:

 bootcfg C:\Windows /l en-us
Sorin Dumitru
fonte
2
Esta ferramenta é apenas para boot.ini, que é para Windows XP e sistemas mais antigos.
Elmo
1
Isso não pertence aos gerenciadores de inicialização EFI.
Mahmoud Al-Qudsi