Oké, ik heb tijd gehad om een goede schets te maken. Het is lang, maar het is vrij compleet en zou je moeten helpen om te zien wat er aan de hand is.
Ten eerste, een manier waarop dit kan gebeuren:
- Je BIOS verliest zijn instellingen.
- Geen probleem, al dat spul is opgeslagen in de EFI partitie.
- …behalve de SATA IDE vs AHCI instelling, om voor de hand liggende redenen.
- Gebruikte je SATA-AHCI? Je gebruikt nu waarschijnlijk SATA-IDE.
- Heb je geprobeerd op te starten voordat je dat bedacht had?
- Als je dat deed, is het mislukt. Heb je Windows het laten repareren?
- Als je dat hebt gedaan, BLAM, kan het heel goed de Boot Configuratie Database hebben vernietigd.
- Zorg ervoor dat u de juiste SATA-instelling gebruikt die u de vorige keer gebruikte.
Dit is wat u waarschijnlijk al gedaan hebt. ALS EEN VAN DEZE NIET MATCH, ZOALS UW PROBLEEM VOORKOMT en dit voor ideeën doorleest, maar het niet volgt zonder er eerst over na te denken.
- 1. Je hebt HOOFDELIJK alle onzin over het repareren van de Master Boot Record (MBR), partitietabel, partitievlaggen en andere rotzooi die NIET van toepassing is op een EFI bootscenario genegeerd. AT ALL. In het beste geval zou u in staat zijn om een nieuwe, niet-gerelateerde, NIET-EFI opstart-oplossing volledig opnieuw op te bouwen. Dat is echter misschien niet onbelangrijk, want:
- U hebt ontdekt dat Windows zeker is dat het geen Boot Configuratie Database heeft, maar het is, helaas, ofwel volledig clueless ofwel ZEER zeker over waar het heen gaat– u kunt niet helemaal zeggen welke.
- U weet dat de opstartwinkel normaal gesproken
(somewhere)\Boot\BCD
is en dat het bestand HIDDEN is; bekijk het met dir /a:hs
.
- 4. U heeft zich een beetje vertrouwd gemaakt met
BCDedit.exe
en bent erachter gekomen dat het u een Boot Configuratie Database in een staging bestand met /CreateStore
laat “mock up” (en noem het alstublieft niet “BCD”), dat u het staging bestand expliciet kunt gebruiken met de /Store
optie, dat u een menu-item kunt toevoegen voor de Windows Boot Manager met /Create {bootmgr}
, en dat u het MOET kunnen importeren met /Import
…
- …maar wanneer u dit probeert te doen, kunt u dat niet. Je kijkt naar de
/SysStore
optie, wat goed klinkt, maar je kan het niet krijgen om een andere winkel te gebruiken omdat het “dubbelzinnig” is. Je hebt een voorgevoel dat het weet waar de winkel is– of zou moeten zijn– maar je kunt het niet vinden.
- Je hebt geprobeerd om
MountVol
te gebruiken om de EFI partitie te mounten, maar het staat niet eens in de lijst, dus je kunt het niet.
Als dat allemaal vrij dicht bij je van toepassing is, dan is hier wat er aan de hand is:
- Windows kan je vertellen dat je bent ingesteld voor EFI (je hebt de DVD opgestart via een UEFI boot, je hebt een EFI partitie, enz. Het weet dus WHERE TO LOOK voor het BCD-bestand - maar het heeft of op een of andere manier de locatie verkeerd (niet dit probleem, maar vergelijkbaar) of de BCD is verwijderd.
- Blijkbaar, omdat het weet waar het MOET zijn, breekt dit
/SysStore
– en eigenlijk is dat waarschijnlijk correct gedrag, want anders zou je het op de verkeerde plaats zetten.
- Voor zover ik kan zien, verbergt
MountVol
opzettelijk de EFI partitie (of is het op de een of andere manier niet in staat om het op te merken). Dit voorkomt het mounten van het bestandssysteem, wat het vinden van de juiste subdirectory voorkomt, het controleren van het bestaan van de database, etc.
is dus eindelijk wat je er aan moet doen. Het goede nieuws is dat het waarschijnlijk een stuk eenvoudiger is dan je nu hoopt.
- Je moet inderdaad de EFI partitie monteren.
Eigenlijk heb ik een voorgevoel dat niet strikt correct is– Ik heb sterk het vermoeden dat de EFI partitie already gemonteerd is door een of ander intern subsysteem, wat de reden is waarom BCDedit
chagrijnig wordt– het ziet de database niet, maar het weet wel waar het naartoe moet. Wat het echter niet heeft, is een stationsletter. Dus– wat te doen?
Nou…hoe ver gaan je DOS-wortels terug? Herinner je je het Assign
commando? Raad eens.
2. Start DiskPart
.
3. Als je niet bekend bent met DiskPart
, is de manier waarop het in principe werkt een hiërarchie van sets; je moet precies het ene element op het ene niveau selecteren om door te gaan naar het volgende. Dus, List Disk
, en dan Select Disk n
waar n
is wat voor jou geschikt is.
4. Gebruik List Partition
en List Volume
(let op: niet-plural) om wat inzicht te krijgen en uw EFI-partitie te identificeren.
Het is meestal een 100MB FAT32-partitie die gemarkeerd is met System
. Houd er rekening mee dat uw schijf nu al een GPT-partitietabel zou moeten gebruiken, zodat u misschien nogal wat partities ziet. Sommige van deze zijn voor noodherstel– veel goeds doen ze voor EFI problemen, eh? Ach ja.
Merk op dat de EFI-partitie, en een paar andere, geen schijfletters hebben. Als u zo geneigd bent, kunt u ook de GPT-partitie-attributen bekijken, die u misschien ook een paar tangentieel gerelateerde “Aha”-momenten geven.
5. Select Partition n
waar n de EFI-partitie is. (Ik verwacht dat u in plaats daarvan het volume kunt selecteren als dat nodig is)
6. Assign
. Dat is het. Geef geen stationsletter op; alleen Assign
.
7. List Volume
. Je zou nu een driveletter moeten zien die is toegewezen aan de EFI partitie.
8. Exit
DiskPart.
En nu… een grote vette waarschuwing. Je zult waarschijnlijk ga direct naar S: (of wat je ook van Assign
hebt gekregen) en merk een Boot partitie op. “AHA!” Je zult zeggen. “Er is hier geen BCD
bestand!” Ten eerste… vergeet niet dat het bestand verborgen is. Ten tweede… graaf wat meer rond, en u zult merken dat terwijl er S:\EFI\Boot
en ook S:\EFI\Microsoft\Boot
is, u beide moet controleren op problemen.S:\EFI\Boot
is voor het motherboard, en bevat de Windows Boot LOADER (en mogelijk andere dingen voor andere besturingssystemen). Dit heeft deze naam omdat het moederbord geen idee heeft of je Windows gaat hebben of niet, en een vast pad nodig hebt dat zinvol is.
9. 9. Inspecteer S:\EFI\Boot
. Voor Windows 7 Professional, 64-bit, zou je moeten zien: bootx64.efi
Als je een EFI-shell hebt geïnstalleerd (altijd een goed idee), zie je misschien ook shellx64.efi
.
OPMERKING: Dual-boot Linux gebruikers die chainloader+1
gebruiken zullen hier GEEN extra vermelding zien.
10. Inspect S:\EFI\Microsoft\Boot
met both dir
en dir a:h
. Voor Windows 7 Professional, 64-bit, zou je een hoop taalsjablonen (en_US
, etc.) moeten zien en de volgende bestanden:
bootmgr.efi
bootmgfw.efi
memtest.efi
BCD
BCD.Backup.001
BCD.Backup.002
…behalve dat je BCD
waarschijnlijk niet ziet, of wel? Maar die back-up bestanden zien er zeker verleidelijk uit.
11. 11. Bepaal welk back-upbestand je wilt gebruiken. Welke recente veranderingen het ook mist, het is lang niet zo belangrijk als je vermogen om het systeem op te starten, dus ga voor degene die het meest intact is. Waarschijnlijk zie je een grote en een vrij kleine. De kleine is al corrupt, en is een artefact van het mislukte reparatieproces– gebruik het niet. Als ze allebei groot zijn, gebruik dan de oudere. Maak in elk geval ergens anders ADDITIONAL BACKUP COPIES OF THE BACKUPS.
12. Kopieer de backup die je hebt besloten te gebruiken naar BCD
.
13. Verlaat de shell, sluit netjes af en herstart.
14. 14. Vertel Windows om NORMALLY te starten. Op dit punt zou het moeten starten.
V: Wat als je geen backup BCD hebt?
A: Wel, dat zou echt niet moeten gebeuren. Het betekent waarschijnlijk dat u ofwel in de verkeerde map zit, EFI ondersteunt maar het niet echt gebruikt, ofwel op de een of andere manier uw hele EFI-partitie opnieuw bouwt zonder al het benodigde Windows-materiaal (mogelijk, vooral wanneer u meerdere versies van Windows gebruikt). In dat geval moet u het EFI-materiaal van de DVD kopiëren en vervolgens de opstartconfiguratiedatabase wijzigen of opnieuw opbouwen met behulp van BCDedit
.
V: Kunt u mij een voorbeeld geven van een scenario waarin BCDedit /SysStore
kan worden gebruikt om überhaupt iets te doen op een EFI-systeem?
A: Tot nu toe, nee.
Hoe dan ook, ik hoop dat dit helpt bij het oplossen van een aantal problemen voor mensen, of ze op zijn minst aan het denken zet. Als een zeer belangrijk laatste punt, houd er rekening mee dat u uw EFI-partitie onder Windows normaal gesproken kunt mounten en inspecteren met behulp van de DiskPart
: Assign
techniek hierboven. U moet dit minstens één keer doen, om een volledige back-up van uw EFI-partitie te krijgen, Voordat u dit soort problemen tegenkomt. Ik raad aan een backup te maken in een subdirectory op uw C:
-schijf, en een op een USB-stick.
Sorry dat het zo lang duurt. Ik moet hier op een gegeven moment een goed artikel van maken, maar er zijn zoveel mensen die zo gefrustreerd zijn dat ik de behoefte voelde om mijn ervaring zo volledig en snel mogelijk te documenteren.