Tive tempo para elaborar aqui um esboço adequado. É longo, mas é bastante completo e deve ajudá-lo a ver o que se passa.
Primeiro, uma forma de isto poder acontecer:
- A sua BIOS perde as suas configurações.
- Não há problema, todas essas coisas estão armazenadas na partição EFI.
- …excepto a configuração SATA IDE vs AHCI, por razões óbvias.
- Estava a utilizar o SATA-AHCI? Provavelmente está a usar SATA-IDE agora.
- tentou arrancar antes de descobrir isso?
- se o fez, falhou. Deixou o Windows tentar arrancar?
- Se o fez, BLAM, pode muito bem ter destruído a Base de Dados de Configuração de Arranque.
- Certifique-se que está a usar a configuração SATA correcta que estava a usar da última vez.
Aqui está o que provavelmente já fez por esta altura. SE ALGUM DESTINO NÃO SE SEGUIR, AVALIE CUALMENTE O QUE ESTÁ EM FACTO SEU PROBLEMA, e LEIA isto para ideias mas não SE SEGUIR sem pensar primeiro.
- Ignorou HOPEFULMENTE toda a porcaria sobre a fixação do Master Boot Record (MBR), tabela de partição, bandeiras de partição e outro lixo que NÃO SE APLICA a um cenário de arranque EFI. AT ALL. Na melhor das hipóteses, você seria capaz de reconstruir completamente uma nova solução de arranque unrelated, NON-EFI. Isso pode não ser trivial, no entanto, porque:
- Você descobriu que o Windows tem a certeza que não tem uma Base de Dados de Configuração de Arranque, mas, infelizmente, ou é completamente sem pistas ou tem MUITO a certeza para onde vai - não se consegue dizer qual.
- Você sabe que a loja de boot é normalmente
(somewhere)\Boot\BCD
e que o ficheiro é HIDDEN; veja-o usando dir /a:hs
.
- Você já se familiarizou um pouco com o
BCDedit.exe
e descobriu que ele lhe permitirá “fazer mock up” de uma Base de Dados de Configuração de Arranque num ficheiro de encenação usando o /CreateStore
(e por favor não lhe chame “BCD”), que pode usar explicitamente o ficheiro de encenação com a opção /Store
, que pode adicionar uma entrada de menu para o Gestor de Arranque do Windows usando o /Create {bootmgr}
, e que DEVERIA ser capaz de o importar usando o /Import
…
- …mas quando tenta fazer isto, não consegue. Você olha para a opção
/SysStore
, o que soa bem, mas não consegue que ele use outra loja porque é “ambíguo”. Tem um palpite que sabe onde a loja está - ou deveria estar - mas não a consegue encontrar.
- Já tentou usar o
MountVol
para montar a divisória EFI, mas nem sequer aparece na lista, por isso não consegue.
Se tudo isso se aplicar a si, eis o que PODE estar a acontecer:
- O Windows pode dizer que você está configurado para o EFI (você iniciou o DVD através de uma inicialização UEFI, você tem uma partição EFI, etc.).
- Sabe, portanto, ONDE LER para o ficheiro BCD - no entanto, ou de alguma forma tem a localização errada (não este problema, mas semelhante) ou o BCD foi apagado.
- Aparentemente, porque sabe onde DEVERIA estar, isto quebra
/SysStore
- e na verdade, isso é provavelmente um comportamento correcto, porque de outra forma colocá-lo-ia no lugar errado.
- Tanto quanto posso dizer, o
MountVol
esconde deliberadamente a divisória EFI (ou é de alguma forma incapaz de reparar). Isto impede a montagem do sistema de ficheiros, o que impede encontrar o subdirectório correcto, verificar se a base de dados existe, etc.
Então, finalmente, aqui está o que precisa de fazer acerca disto. A boa notícia é que provavelmente é muito mais simples do que se espera neste momento.
- Na verdade, tenho um palpite que não está estritamente correcto– suspeito fortemente que a partição EFI esteja pronto montada por algum subsistema interno, e é por isso que o
BCDedit
fica rabugento– não vê a base de dados, mas sabe para onde deve ir. O que não tem, no entanto, é uma letra de drive. Então, o que fazer?
Bem…até onde vão as suas raízes DOS? Lembra-se do comando Assign
? Adivinhe.
2. Iniciar DiskPart
.
3. Se não está familiarizado com DiskPart
, a forma como funciona basicamente é uma hierarquia de conjuntos; tem de seleccionar exactamente um elemento num nível para avançar para o seguinte. Assim, List Disk
, e depois Select Disk n
onde n
é o que for apropriado para si.
4. Use List Partition
e List Volume
(nota não plural) para obter alguma informação e identificar a sua partição EFI.
É normalmente uma partição FAT32 de 100MB marcada com System
. Tenha em mente que o seu disco já deve estar a utilizar uma tabela de partições GPT, pelo que poderá ver bastantes partições. Algumas delas são para recuperação de emergência - muito bom que elas fazem para problemas EFI, eh? Oh bem.
Repare que a partição EFI, e algumas outras, não têm letras de unidade. Se está tão inclinado, também pode ver os atributos da partição GPT, o que também lhe pode dar alguns momentos “Aha” tangencialmente relacionados.
5. Select Partition n
onde n é a partição EFI. (espero que possa seleccionar o volume, se necessário.)
6. Assign
. É isso mesmo. Não especifique uma letra de unidade; apenas Assign
.
7. List Volume
. Deve agora ver uma letra de unidade atribuída à partição EFI.
8. Exit
DiskPart.
E agora… um grande aviso de gordura. Provavelmente irá Vá directamente para S: (ou o que quer que tenha recebido de Assign
) e repare numa divisória de Boot. “AHA!”. Você vai dizer. “Não há aqui nenhum ficheiro BCD
!” Primeiro… lembre-se que o ficheiro está escondido. Segundo… escave um pouco mais, e vai reparar que enquanto houver S:\EFI\Boot
e também S:\EFI\Microsoft\Boot
precisa de verificar ambos para problemas.S:\EFI\Boot
é para a motherboard, e contém o Windows Boot LOADER (e possivelmente outras coisas para outros sistemas operativos). Isto tem este nome porque a placa-mãe não faz ideia se vai ou não ter Windows, e precisa de um caminho fixo que faça sentido.
9. Inspeccionar S:\EFI\Boot
. Para Windows 7 Professional, 64-bit, deverá ver: bootx64.efi
Se tiver instalado uma shell EFI (sempre uma boa ideia), poderá ver adicionalmente shellx64.efi
.
NOTA: Utilizadores de Linux dual-boot usando chainloader+1
NÃO irão ver uma entrada extra aqui.
10. Inspeccione S:\EFI\Microsoft\Boot
usando both dir
e dir a:h
. Para Windows 7 Professional, 64-bit, deverá ver um monte de templates de idiomas (en_US
, etc.) e os seguintes ficheiros:
bootmgr.efi
bootmgfw.efi
memtest.efi
BCD
BCD.Backup.001
BCD.Backup.002
…excepto que provavelmente não verá BCD
, pois não? Mas esses ficheiros de cópia de segurança parecem mesmo tentadores.
11. Determine qual o ficheiro de cópia de segurança que pretende utilizar. Quaisquer que sejam as alterações recentes que lhe faltam, não são tão importantes como a sua capacidade de arrancar o sistema, por isso vá para aquele que está mais intacto. Provavelmente irá ver um grande e um bastante pequeno. O pequeno já está corrompido e é um artefacto do processo de reparação falhado - não o use. Se ambos forem grandes, use o mais antigo. EM QUALQUER CASO, faça CÓPIAS DE VOLTA ADICIONAIS DOS BACKUPS em qualquer outro lugar.
12. Copie o backup que decidiu utilizar para BCD
.
13. Saia do invólucro, desligue limpo e reinicie.
14. Diga ao Windows para iniciar NORMALMENTE. Nesta altura, deve iniciar.
P: E se não tiver um BCD de backup?
R: Bem, isso realmente não deve acontecer. Provavelmente significa que ou está no directório errado, suporta o EFI mas não o estava a utilizar, ou de alguma forma reconstruiu toda a sua partição EFI sem todos os materiais necessários do Windows (possível, especialmente quando utiliza múltiplas versões do Windows). Nesse caso, terá de copiar os materiais EFI do DVD, depois modificar ou reconstruir a base de dados de configuração de arranque usando o BCDedit
.
P: Pode dar-me um exemplo de um cenário em que o BCDedit /SysStore
pode ser usado para fazer qualquer coisa num sistema EFI?
R: Até ao momento, não.
De qualquer forma, espero que isto ajude a resolver alguns problemas para as pessoas, ou pelo menos que as faça pensar. Como ponto final muito importante, note que pode montar e inspeccionar a sua partição EFI _ sob Windows normalmente_ utilizando a técnica DiskPart
: Assign
acima. Deve fazer isto pelo menos uma vez, para obter uma cópia de segurança completa da sua partição EFI, _ ANTES_ de se deparar com este tipo de problemas. Recomendo uma cópia de segurança para uma subdirectoria na sua unidade C:
, e outra numa unidade flash USB.
Desculpe por ter sido tão demorado. Preciso de transformar isto num artigo adequado em algum momento, mas há tantas pessoas que estão tão frustradas que senti a necessidade de documentar a minha experiência o mais completa e rapidamente possível.