Questão Como posso reparar o Windows 8 EFI Bootloader?


Eu instalei o Windows 7 e o Windows 8 no modo EFI em um disco rígido alguns dias atrás. Hoje, o gerenciador de inicialização ficou perdido / corrompido.

Eu atualmente tenho o instalador do Windows 8 em uma unidade flash e tentei usar a opção Reparação Automática para reparar o bootloader, 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 bootloader EFI a partir do prompt de comando?

BCDEDIT retorna a seguinte mensagem:

The requested system device cannot be found.

118


origem


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
Apenas como um FYI, mas nós lançamos recentemente uma ferramenta de reparo EFI automatizada para o Windows 8: neosmart.net/blog/2013/… - Mahmoud Al-Qudsi
Eu não esperava que as pessoas estivessem tendo tantos problemas com o Windows 8 do UEFI ... Como a partição do sistema simplesmente desaparece ou fica corrompida? Nem sequer é montado no Windows normalmente, portanto, a corrupção do sistema de arquivos não pode ser. E todos os sistemas operacionais atuais são livres de bugs o suficiente para não estragar uma instalação existente no Windows. Na verdade, até mesmo o Windows não estraga o Linux no UEFI, surpresa de surpresas. - Milind R
Isso não se aplica se você estiver usando discos dinâmicos - rainabba


Respostas:


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

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

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

Entrar diskpart para usar a ferramenta DiskPart para garantir que você tenha todas as partições corretas e para identificar sua partição EFI - a principal coisa aqui é que sua partição EFI é 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 inserindo exit e 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

Usar bcdboot.exe para recriar o armazenamento BCD:

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

o /f ALL parâmetro atualiza as configurações do BIOS, incluindo o firmware UEFI / NVRAM, /l en-gb é localizar a localidade do Reino Unido / GB. A localização é padronizada para inglês dos EUA ou use en-US.

Reinicie e cruze os dedos.

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

[EDITAR]

Para reativar o Hyper-V, também tive que 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

179



Fiz isso de um windows 10 download ISO. não funcionou no início, mas executou o reparo de inicialização no menu da GUI e fez isso, graças a D'us. :-) agradeço a ajuda :-) - Abbafei
esta receita me pareceu a mais promissora, mas eu bati BFSVC Error: Could not open the BCD template store. STatus = [c000000f ] :( - Dusan Bosnjak 'pailhead'


As outras respostas são úteis, mas é isso que eu tive que fazer para consertar a minha.

Eu tinha um disco rígido de 1,5 TB com o Windows 7 instalado. Eu então instalei o Windows 8 em um SSD de 150 GB que comprei. O disco rígido de 1,5 TB falhou e eu podia ouvi-lo fazendo barulho, meu computador não ligava mais, dizendo "por favor, insira o disco do sistema". Eu pensei que o bootloader estava faltando, como deve ter sido no disco de 1,5 TB. Acontece que era, mas o problema então era que os guias que eu seguia não reconstruíam o bootloader ou o que quer que ele fosse chamado, pois eu não tinha uma partição EFI no disco menor de 150 GB (isso pode ter existido no disco com falha). só tinha 1 partição que preenchia todo o disco.

Eu não queria perder todos os meus dados, então entrei no Prompt de Comando inicializando a partir do meu drive USB de instalação do Windows 8 (observando que você não pode inicializar a versão UEFI disso, selecione Iniciar apenas a partir da unidade USB sem o UEFI aparecendo antes dele).

Uma vez no prompt de comando (consulte as outras respostas para obter instruções), é necessário reduzir a partição. Para fazer isso, digite os seguintes comandos, pressionando Entrar depois de 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. Faça isso digitando assign, então list vol novamente para ver qual carta foi atribuída.

Agora isso é feito, 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: com a letra da unidade da partição que contém o Windows e B: com a letra atribuída à partição EFI que você acabou de criar.

Eu também inseri os seguintes comandos:

bootrec /fix

bootrec /fixmbr

Os dois voltaram bem-sucedidos, sem a menor ideia se realmente fizeram alguma coisa além de quem se importa. O Windows está agora totalmente recuperado.


20



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 (primeiro no disco), mas está vazia. Quando eu corro bcdboot c:\windows /s i: /f ALLEu recebo "Erro BFSVC: Falha ao configurar o dispositivo de aplicativo emement. Status = [c00000bb]" Eu tenho lutado essa batalha por meses e com cada tentativa, continuo terminando com uma unidade flash que parece conter meus arquivos de inicialização EFI porque pode arrancar dele, mas se eu removê-lo, não consigo arrancar. - rainabba
Muito obrigado! Isso salvou meu dia. Eu tentei praticamente tudo lá e nada funcionou. O passo que faltava era a formatação do volume EFI. Uma vez formatado o volume EFI. bcd comando de boot funcionou com sucesso e eu tenho o meu windows 10 backup e executando novamente. - Sahil
+1 por me dizer para escolher a letra da unidade do Windows em vez do habitual C: - ptetteh227


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

Primeiro, uma maneira de isso acontecer:

  1. Seu BIOS perde suas configurações.
  2. Não tem problema, todas essas coisas são armazenadas 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 arrancar antes de descobrir isso?
  6. Se você fez, falhou. Você deixou o Windows tentar consertá-lo?
  7. Se você fez, 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 ALGUM DESTA NÃO CORRESPONDE, AVALIA COM CUIDADO, SE ESTE É DE ACORDO COM O SEU PROBLEMA, e LEIA isto para idéias, mas NÃO as SEGUE sem pensar primeiro.

  1. Você HOPEFULLY ignorou toda a porcaria sobre como consertar o Master Boot Record (MBR), tabela de partição, sinalizadores de partição e outro lixo que NÃO SE APLICA a um cenário de inicialização EFI. EM ABSOLUTO. Na melhor das hipóteses, você seria capaz de reconstruir completamente um novo, não relacionado, Solução de inicialização não-EFI. Isso pode não ser trivial, no entanto, porque:

  2. Você descobriu que o Windows tem certeza de que ele não tem um Banco de Dados de Configuração de Inicialização, mas, infelizmente, é completamente ignorante ou MUITO certo sobre aonde ele vai - você não pode dizer qual.

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

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

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

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

Se tudo isso se aplica de forma bastante próxima a você, aqui está o que pode estar acontecendo:

  1. O Windows pode dizer que você está configurado para 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 ele tem a localização errada (não este problema, mas similar) ou o BCD foi excluído.

  3. Aparentemente, porque sabe onde deveria estar, isso quebra / SYSSTORE-- e, na verdade, é provavelmente um comportamento correto, porque senão você o colocaria no lugar errado.

  4. Por mais que eu saiba, a MOUNTVOL oculta deliberadamente a partição EFI (ou é incapaz de perceber isso). Isso impede a montagem do sistema de arquivos, o que impede encontrar o subdiretório correto, verificando se o banco de dados existe, 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ê precisa montar a partição EFI.

Na verdade, eu tenho um palpite que não é estritamente correto-- eu suspeito fortemente que a partição EFI é  montado 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 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, a maneira como ele funciona basicamente é uma hierarquia de conjuntos; você deve selecionar exatamente um elemento em um nível para prosseguir para o próximo. Então, "LIST DISKS", e depois "SELECT DISK n", onde n é o que for apropriado para você.

  3. Use "LIST PARTITION" e "LIST VOLUME" (nota não-plural) para obter algumas informações e identificar sua partição EFI.

Geralmente, é uma partição FAT32 de 100MB marcada como "SISTEMA". Tenha em mente que seu disco deve estar usando uma tabela de partição GPT até agora, então você pode ver algumas partições. Alguns destes são para recuperação de emergência - muito bem que eles fazem para problemas de EFI, eh? Ah bem.

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

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

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

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

  4. "SAIR" DISKPART.

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

S: \ EFI \ Boot

existe também:

S: \ EFI \ Microsoft \ Boot

Você precisa verificar ambos para problemas.

S: \ EFI \ Boot é para o placa-mãee contém a inicialização do Windows CARREGADOR (e possivelmente outras coisas para outros sistemas operacionais). Isso tem esse nome porque a placa-mãe não tem idéia se você vai 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, 64 bits, você deverá ver:

bootx64.efi

Se você instalou um shell EFI (sempre uma boa ideia), você pode ver adicionalmente "shellx64.efi".

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

  1. Inspecione S: \ EFI \ Microsoft \ Boot usando ambos "dir" e "dir a: h". Para o Windows 7 Professional, de 64 bits, você deverá ver vários modelos de linguagem ("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, não é? Mas esses arquivos de backup parecem tentadores.

  1. Determine qual arquivo de backup você deseja usar. Quaisquer alterações recentes que estejam 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 mal-sucedido - não o use. Se ambos forem grandes, use o mais antigo. EM QUALQUER CASO, FAÇA CÓPIAS DE BACKUP ADICIONAIS DOS BACKUPS Em outro lugar.

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

  3. Saia do shell, desligue-o e reinicie.

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

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

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

P: Você pode me dar um exemplo de um 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 você se depara com 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 longo. Preciso transformar isso em um artigo adequado em algum momento, mas há tantas pessoas tão frustradas que senti a necessidade de documentar minha experiência da maneira mais completa e rápida possível.

Felicidades,    Matt "Breakpoint" Heck


8



Na verdade, a MOUNTVOL permite montar o ESP. Você usa a letra MOUNTVOL: / S. - Yuhong Bao
Então, quando você montar essa partição EFI e não encontrar nada, como proceder? Eu estava pensando bcdboot c:/windows /s i: /f ALLou tal me faria começar, mas isso só me deixa "Erro BFSVC: Falha ao definir o dispositivo de aplicativo de elemento. Status = [c00000bb]" - rainabba
Apesar de ver esse erro uma única vez, agora parece que eu tenho a pasta EFI na unidade onde eu não fiz antes. Ainda não pode fazer muito mais sem erros e não pode arrancar, mas isso é algo, pelo menos. - rainabba
Decidiu tentar outra rota completamente. Eu pluguei outro flash drive, limpei-o, dei a ele uma letra de unidade e repeti o uso como destino em vez da partição EFI. Em suma, eu não iniciei na minha instalação do Windows, mas fora dessa unidade flash. Eu não fui capaz de arrancar da minha partição EFI, apesar de ter os arquivos, sendo a primeira partição (EFI, fat32, tem os arquivos) na minha primeira unidade.No lado positivo, esta é uma maneira interessante de manter alguém fora de meu sistema. Eu só tiro essa "chave" do meu sistema e ela não inicializa. - rainabba


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 costumamos usar podem não funcionar mais. Para os comandos listados por @soandos, eu adiciono este que reconstrói completamente o BCD:

bootrec /rebuildbcd

Tente também usar o menu de inicialização Avançado do Windows 8 e deixe-nos saber o que acontece.

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

[EDITAR]

Esses links podem conter algumas ideias úteis:

Recuperando o Windows Bootloader do DVD
Problema de Recuperação do Gerenciador de Inicialização do Windows 7
Windows 7 de repente não inicializa - Reparando o Bootloader do Windows 7


5



Eu adicionei alguns links que podem ser úteis, apesar de pertencerem ao Windows 7. - harrymc


A maneira mais fácil:

  • Siga os passos 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 -r e pressione Entrar. Isso permitirá que você modifique e sobrescreva o arquivo.

  • Tipo ren bcd bcd.old e pressione Entrar. Isso renomeia o arquivo BCD atual.

  • Tipo Bootrec /RebuildBCD e pressione Entrar forçar o Windows 8 a reconstruir o menu de inicialização do zero.

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


3





Sob DISKPART eu tinha apenas vol 0 ou D (o DVD) e vol 1 ou C (a partição Windows NTFS). Nada funcionou para mim até eu fazer vol 1 ATIVO.

Depois de sair do DISKPART eu só digitei:

bootrec /fixboot
bootrec /rebuildbcd

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

bootrec /fixmbr

porque eu estava usando GAG (gestor de arranque gràfico) no MBR para multiboot.


2





Após 6 horas de dificuldades, consegui consertar meu problema de inicialização do Windows 8.

Hoje, depois de um reinício normal, recebi a mensagem MBR not found ou semelhante a isso, eu não me lembro mais. eu tentei bootrec comandos, reparo automático do Windows (não foi possível encontrar nenhum Windows instalado), um milhão de outras maneiras e nada.

O problema foi quando eu executei bootrec /rebuildbcd foi normal, e então quando eu tive que entrar yes se eu quiser salvar a configuração, recebi a mensagem the file is not accessible because it is used by a another process.

Depois de horas de raciocínio, finalmente resolvi.

Nesta ordem...

  • Primeiro, inicializei o master da partição easy-up e FORMATED o volume reservado do sistema que designei como ativo posteriormente (no qual minha pasta de inicialização era). Quando eu reiniciei, recebi um erro NTLDR missing.

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

  • Eu saí cmd e clicou em reparo automático.

  • Depois, consegui selecionar o Windows 8. Quando reinicializei, vi o logotipo do Windows 8.


1



Atenção: esta resposta parece ser um disco MBR. Em um disco GPT, o diskpart.exe retorna esta mensagem ao marcar um volume ativo: "O comando ACTIVE só pode ser usado em discos MBR fixos". - zacharydl


Meu cenário; Eu não perdi a partição do sistema EFI, mas trocar unidades e instalar o Windows parece ter estragado a entrada de inicialização UEFI do Boot Manager do Windows para o primeiro passeio; tinha que usar a entrada UEFI que aponta para a unidade diretamente para inicializar. Eu acho que eu corrigi-lo corrigindo / adicionando a configuração "device partition = \ Device \ HarddiskVolumeX" (X = 2 no meu caso; minha segunda partição é a partição do sistema EFI, mapeada para Z: com diskpart.exe):

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

ver com: firmware bcdedit.exe / enum


0





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

bootrec /fixboot para 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 bootloader.

Apenas execute os comandos em ordem.


-1



Downvoter se importa em comentar? - soandos
o bootrec /fixmbr comando não se aplica ao problema ou situação do autor. - Ramhound