Ok, ho avuto il tempo di mettere insieme un vero e proprio schema qui. È lungo, ma è abbastanza completo e dovrebbe aiutarti a capire cosa sta succedendo.
Prima di tutto, un modo in cui questo può accadere:
- Il vostro BIOS perde le sue impostazioni.
- Nessun problema, tutta quella roba è memorizzata nella partizione EFI.
- …tranne l'impostazione SATA IDE vs AHCI, per ovvie ragioni.
- Stava usando SATA-AHCI? Probabilmente state usando SATA-IDE ora.
- Avete provato ad avviare prima di averlo capito?
- Se l'avete fatto, non ci siete riusciti. Avete lasciato che Windows provasse ad aggiustarlo?
- Se l'avete fatto, BLAM, potrebbe benissimo aver distrutto il database di configurazione dell'avvio.
- Avete lasciato che Windows provasse ad aggiustarlo? Assicuratevi di usare l'impostazione SATA corretta che avete usato l'ultima volta.
Ecco cosa probabilmente avete già fatto. SE QUALUNQUE DI QUESTO NON CONCORDA, VALUTATE ATTENTAMENTE QUANDO QUESTO È IN FABBRICA IL VOSTRO PROBLEMA, e LEGGETE QUESTO per le idee, ma non SEGUITELLO senza averci pensato prima pensato.
- 1. Avete TUTTAVIA ignorato tutte le stronzate sul fissare il Master Boot Record (MBR), la tabella delle partizioni, le bandiere di partizione e altra spazzatura che NON SI APPLICA a uno scenario di avvio EFI. AT ALL. Nella migliore delle ipotesi, si sarebbe potuto ricostruire completamente una nuova soluzione di avvio NON-EFI, non correlata. Questo potrebbe non essere banale, tuttavia, perché:
- 2. Avete capito che Windows è certo di non avere un database di configurazione di avvio, ma è, sfortunatamente, completamente privo di indizi o MOLTO sicuro di dove va, non si può dire quale. Siete consapevoli che il boot store è normalmente
(somewhere)\Boot\BCD
e che il file è HIDDEN; visualizzatelo usando dir /a:hs
.
- Avete familiarizzato un po’ con
BCDedit.exe
e avete capito che vi permetterà di “prendere in giro” un database di configurazione dell'avvio in un file di staging usando /CreateStore
(e per favore non chiamatelo “BCD”), che potete usare esplicitamente il file di staging con l'opzione /Store
, che potete aggiungere una voce di menu per il Boot Manager di Windows usando /Create {bootmgr}
, e che DOVREBBBE essere in grado di importarlo usando /Import
…
- …ma quando provate a farlo, non ci riuscite. Si cerca l'opzione
/SysStore
, che suona bene, ma non si può farla usare in un altro negozio perché è “ambigua”. Hai la sensazione che sappia dove si trova il negozio - o dovrebbe esserlo - ma non riesci a trovarlo.
- Hai provato a usare
MountVol
per montare la partizione EFI, ma non si vede nemmeno nella lista, quindi non puoi.
Se TUTTO questo si applica abbastanza da vicino a te, ecco cosa PUO’ andare avanti:
- Windows può dirvi che siete impostati per EFI (avete avviato il DVD tramite un avvio UEFI, avete una partizione EFI, ecc.
- Sa quindi dove cercare il file BCD - tuttavia, o ha in qualche modo la posizione sbagliata (non questo problema, ma simile) o il BCD è stato eliminato.
- Apparentemente, poiché sa dove DOVREBBBE essere, questo si rompe
/SysStore
– ed in realtà, questo è probabilmente un comportamento corretto, perché altrimenti lo si metterebbe nel posto sbagliato.
- Per quanto ne so,
MountVol
nasconde deliberatamente la partizione EFI (o è in qualche modo incapace di notarla). Questo impedisce il montaggio del filesystem, il che impedisce di trovare la sottodirectory corretta, di verificare che il database esista, ecc.
Ecco, infine, cosa bisogna fare. La buona notizia è che probabilmente è molto più semplice di quanto si spera.
- In realtà, ho il sospetto che la partizione EFI non sia strictly corretta - ho il forte sospetto che la partizione EFI sia già montata da qualche sottosistema interno, ed è per questo che
BCDedit
diventa irritabile - non vede il database, ma sa dove dovrebbe andare. Quello che non ha, tuttavia, è una lettera di unità. Quindi– cosa fare?
Beh…quanto indietro vanno le tue radici DOS? Ricordate il comando Assign
? Indovinate un po’.
2. Inizio DiskPart
.
3. Se non avete familiarità con DiskPart
, il modo in cui funziona fondamentalmente è una gerarchia di insiemi; dovete selezionare esattamente un elemento ad un livello per procedere al successivo. Quindi, List Disk
, e poi Select Disk n
, dove n
è quello che fa per voi.
4. Usate List Partition
e List Volume
(nota non plurale) per ottenere qualche informazione e identificare la vostra partizione EFI.
È di solito una partizione FAT32 da 100MB marcata System
. Tenete presente che il vostro disco dovrebbe già utilizzare una tabella delle partizioni GPT, quindi potreste vedere un bel po’ di partizioni. Alcune di queste sono per il ripristino di emergenza… un bel po’ di bene che fanno per i problemi EFI, eh? Oh beh.
Si noti che la partizione EFI, e alcune altre, non hanno lettere di unità. Se siete così inclini, potete anche visualizzare gli attributi della partizione GPT, che possono dare anche alcuni momenti “Aha” tangenzialmente correlati.
5. Select Partition n
dove n è la partizione EFI. (Immagino che possiate selezionare il volume, se necessario)
6. Assign
. Questo è tutto. Non specificare una lettera di unità; solo Assign
.
7. List Volume
. Ora dovreste vedere una lettera di unità assegnata alla partizione EFI.
8. Exit
DiskPart.
E ora… un grosso avvertimento. Probabilmente andate direttamente su S: (o qualsiasi cosa abbiate preso da Assign
) e notate una partizione Boot. “AHA! Voi direte. "Qui non c'è nessun file BCD
!”. Prima di tutto… ricordate che quel file è nascosto. Secondo… scavate un po’ di più, e noterete che mentre c'è S:\EFI\Boot
e anche S:\EFI\Microsoft\Boot
Dovete controllare entrambi per problemi.S:\EFI\Boot
è per la motherboard, e contiene l'avvio di Windows LOADER (ed eventualmente altre cose per altri sistemi operativi). Questo ha questo nome perché la scheda madre non ha idea se si avrà Windows o no, e ha bisogno di un percorso fisso che abbia senso.
9. Ispezionare S:\EFI\Boot
. Per Windows 7 Professional, 64-bit, dovreste vedere: bootx64.efi
Se avete installato una shell EFI (sempre una buona idea), potreste anche vedere shellx64.efi
.
NOTA: Gli utenti Linux dual-boot che usano chainloader+1
NON vedranno qui una voce extra.
10. Ispezionare S:\EFI\Microsoft\Boot
usando both dir
e dir a:h
. Per Windows 7 Professional, 64-bit, dovreste vedere un mucchio di modelli di lingua (en_US
, ecc.) e i seguenti file:
bootmgr.efi
bootmgfw.efi
memtest.efi
BCD
BCD.Backup.001
BCD.Backup.002
…tranne che probabilmente non vedete BCD
, vero? Ma quei file di backup sembrano sicuramente allettanti.
11. 11. Determinate quale file di backup volete usare. Qualunque siano le recenti modifiche che mancano, non sono così importanti come la vostra capacità di avviare il sistema, quindi scegliete quello più intatto. Probabilmente ne vedrete uno grande e uno abbastanza piccolo. Quello piccolo è già corrotto, ed è un artefatto del processo di riparazione fallito - non usatelo. Se sono entrambi grandi, usate quello più vecchio. IN QUALSIASI CASO, fare COPIE DI BACKUP AGGIUNTIVE DEI BACKUPS da qualche altra parte.
12. Copia il backup che hai deciso di usare su BCD
.
13. 13. Uscire dal guscio, spegnere in modo pulito e riavviare.
14. 14. Dite a Windows di avviare NORMALMENTE. A questo punto, dovrebbe avviarsi.
D: E se non si dispone di un BCD di backup?
R: Beh, questo non dovrebbe proprio accadere. Probabilmente significa che si è nella directory sbagliata, che si supporta EFI ma che non lo si sta utilizzando, o che in qualche modo si è ricostruita l'intera partizione EFI senza tutti i materiali necessari per Windows (possibile, soprattutto quando si utilizzano più versioni di Windows). In tal caso, sarà necessario copiare i materiali EFI dal DVD, quindi modificare o ricostruire il database di configurazione dell'avvio utilizzando BCDedit
.
D: Potete farmi un esempio di uno scenario in cui BCDedit /SysStore
può essere utilizzato per fare qualsiasi cosa su un sistema EFI?
R: Finora, no.
R: Ad ogni modo, spero che questo aiuti a risolvere alcuni problemi per le persone, o almeno le faccia pensare. Come ultimo punto molto importante, si prega di notare che è possibile montare e ispezionare la partizione EFI sotto Windows normalmente utilizzando la tecnica DiskPart
: Assign
di cui sopra. Dovreste farlo almeno una volta, per ottenere un backup completo della vostra partizione EFI, Prima di incorrere in questo tipo di problemi. Raccomando un backup in una sottodirectory sul vostro drive C:
, e uno su una chiavetta USB.
Scusate se è così lungo. Ad un certo punto devo trasformare questo articolo in un vero e proprio articolo, ma ci sono così tante persone che sono così frustrate che ho sentito il bisogno di documentare la mia esperienza nel modo più completo e rapido possibile.