2012-08-12 18:06:22 +0000 2012-08-12 18:06:22 +0000
123
123

Come posso riparare il Bootloader EFI di Windows 8?

Ho installato Windows 7 e Windows 8 in modalità EFI su un disco rigido alcuni giorni fa. Oggi, il bootloader è stato smarrito o corrotto.

Attualmente ho il programma di installazione di Windows 8 su un'unità flash e ho provato a usare l'opzione Riparazione automatica per riparare il bootloader, ma non ha fatto nulla. Anche l'opzione Riparazione all'avvio manca nel programma di installazione di Windows 8.

Come posso riparare/ricreare il bootloader EFI dal prompt dei comandi?

BCDEDIT restituisce il seguente messaggio:

The requested system device cannot be found.

Risposte (10)

182
182
182
2012-11-12 00:27:03 +0000

Ho passato molto tempo a cercare di far ripartire il mio PC Windows 8 dopo la clonazione su un nuovo SSD e cercare di riassumere come ho fatto a far funzionare tutto -

In primo luogo, l'avvio da un disco di recupero UEFI Windows 8 (CD/DVD/USB) - ho scoperto che il processo di recupero automatico non ha trovato la partizione di Windows corretta, né quando sono riuscito ad aggiungerla alle impostazioni BCD l'avrebbe resa avviabile in modo affidabile e. g. usando BCDEDIT l'ho ottenuto per trovare e lanciare la partizione di Windows ma si rifiutava di avviare a freddo o non avrebbe “mantenuto” le impostazioni dopo un secondo riavvio o spegnimento.

Andare nelle opzioni Avanzate ed eseguire il Prompt dei Comandi.

Inserire diskpart per utilizzare lo strumento DiskPart per assicurarsi di avere tutte le partizioni giuste e per identificare la partizione EFI - la cosa fondamentale in questo caso è che la partizione EFI sia formattata come 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

Quindi assegnare una lettera di unità alla partizione EFI:

DISKPART> sel vol 3

Volume 3 is the selected volume.

DISKPART> assign letter=b:

DiskPart successfully assigned the drive letter or mount point.
``` ```
cd /d b:\EFI\Microsoft\Boot\

bootrec /fixboot

Uscire dallo strumento DiskPart inserendo exit e al prompt dei comandi eseguire quanto segue:

ren BCD BCD.bak
``` ```
bcdboot c:\Windows /l en-gb /s b: /f ALL

Cancellare o rinominare il file BCD:

bcdedit /set {default} hypervisorlaunchtype Auto
bcdedit /set {default} nx OptIn
``` &001 


Utilizzare `bcdboot.exe` per ricreare il file BCD: 


&001 &001 



Il parametro `/f ALL` aggiorna le impostazioni del BIOS, incluso il firmware UEFI/NVRAM, `/l en-gb` serve a localizzare per il locale UK/GB. La localizzazione predefinita è in inglese USA, o utilizzare en-US. 


Riavviare e incrociare le dita. 


Questo mi ha fatto venire il mal di testa. Ho girato in tondo per un lungo periodo. Non ci sono molte informazioni affidabili sulla correzione di UEFI/Windows 8 al momento della scrittura. 


[EDIT] 


Per riattivare Hyper-V, dopo il riavvio ho dovuto anche eseguire i seguenti comandi da un prompt dei comandi di amministratore all'interno di Windows: 


&001
22
22
22
2012-12-12 06:01:57 +0000

Le altre risposte sono utili ma questo è quello che ho dovuto fare per sistemare il mio.

Avevo un disco rigido da 1,5 TB con Windows 7 installato su di esso. Ho poi installato Windows 8 su un SSD da 150 GB che ho acquistato. Il disco rigido da 1,5 TB si è guastato e ho sentito un rumore, il mio computer non si avviava più, dicendo “per favore inserisci il disco di sistema”. Ho pensato che il bootloader mancasse perché doveva essere sul disco da 1,5 TB. Si è scoperto che mancava, ma il problema allora era che le guide che ho seguito non avrebbero ricostruito il bootloader o come si chiama perché non avevo una partizione EFI sul disco più piccolo da 150 GB (questa potrebbe essere esistita sul disco guasto), aveva solo 1 partizione che riempiva l'intero disco.

Non volevo perdere tutti i miei dati quindi ho inserito il Prompt di Comando avviando dal mio drive USB di installazione di Windows 8 (notando che non è possibile avviare la versione UEFI di questo se questa appare, selezionare per avviare dal solo drive USB senza che l'UEFI appaia prima di esso).

Una volta in Prompt di Comando (vedere le altre risposte per le istruzioni) è necessario restringere la partizione. Per fare questo, inserire i seguenti comandi, premendo Enter dopo ognuno di essi:

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

Questi comandi creeranno la partizione EFI. Ricontrollare il tutto digitando list vol. Si dovrebbe vedere una partizione di 200 MB. Ora è necessario assegnarle una lettera. Fate questo digitando assign, poi di nuovo list vol per vedere quale lettera è stata assegnata.

A questo punto è necessario copiare i file di avvio in questa partizione appena creata:

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

Nota: dovete sostituire C: con la lettera di unità della partizione che contiene Windows, e B: con la lettera assegnata alla partizione EFI appena creata.

Ho anche inserito i seguenti comandi:

bootrec /fix

bootrec /fixmbr
``` &001 


Questi due comandi hanno avuto successo, non so se hanno fatto veramente qualcosa, ma chi se ne frega. Windows è ora completamente recuperato.
9
9
9
2012-11-28 03:14:27 +0000

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:

  1. Il vostro BIOS perde le sue impostazioni.
  2. Nessun problema, tutta quella roba è memorizzata nella partizione EFI.
  3. …tranne l'impostazione SATA IDE vs AHCI, per ovvie ragioni.
  4. Stava usando SATA-AHCI? Probabilmente state usando SATA-IDE ora.
  5. Avete provato ad avviare prima di averlo capito?
  6. Se l'avete fatto, non ci siete riusciti. Avete lasciato che Windows provasse ad aggiustarlo?
  7. Se l'avete fatto, BLAM, potrebbe benissimo aver distrutto il database di configurazione dell'avvio.
  8. 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. 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. 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.
  3. 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
  4. …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.
  5. 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:

  1. Windows può dirvi che siete impostati per EFI (avete avviato il DVD tramite un avvio UEFI, avete una partizione EFI, ecc.
  2. 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.
  3. 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.
  4. 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.

  1. 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.

5
5
5
2012-08-25 20:45:34 +0000

Windows 8 non è ancora uscito in forma definitiva, quindi sono da prevedere problemi. Vi trovate in un'area nuova per la maggior parte di noi, dove i comandi che usavamo prima potrebbero non funzionare più. Ai comandi elencati da @soandos, aggiungo questo che ricostruisce completamente il BCD :

bootrec /rebuildbcd
``` &001 


Provare anche ad usare il menu di avvio avanzato di Windows 8 e farci sapere cosa succede. 


Se non funziona nulla, l'articolo [ Riparare Windows 7 quando non riescono ad avviare ](http://www.twm-kd.com/software/repairing-windows-7-when-they-fail-to-boot/) ha qualche consiglio su come usare [ bcdedit ](http://technet.microsoft.com/en-us/library/cc709667%28WS.10%29.aspx) per correggere gli errori di avvio. Sarebbe in ogni caso interessante vedere qual è l'output di bcdedit sul computer. 


[EDIT] 


Questi link potrebbero contenere alcune idee utili : 
[ Recupero del Bootloader di Windows dal DVD ](http://neosmart.net/wiki/display/EBCD/Recovering+the+Windows+Bootloader+from+the+DVD) [ Problema di recupero del Boot Manager di Windows 7 ](http://neosmart.net/forums/showthread.php?t=5948) [ Windows 7 Improvvisamente non si avvia - Riparazione del Bootloader di Windows 7 ](http://idoneitmyself.wordpress.com/2009/11/15/windows-7-suddenly-wont-boot-reboot-and-select-proper-boot-device-or-insert-boot-media-in-selected-boot-device-and-press-any-key-repairing-the-windows-7-bootloader/)
3
3
3
2012-11-29 01:17:10 +0000

Il modo più semplice:

  • Seguire i passi del post precedente per individuare il file BCD e andare nella sua directory.

  • Se il file BCD è nascosto, digitare attrib bcd -s -h -r e premere Invio. Questo vi permetterà di modificare e sovrascrivere il file.

  • Digitare ren bcd bcd.old e premere Invio. Questo rinomina il file BCD corrente.

  • Digitare Bootrec /RebuildBCD e premere Invio per forzare Windows 8 a ricostruire il menu di avvio da zero.

  • Esci dal prompt dei comandi e spegni. Rimuovere Windows Recovery Media e riavviare. È finita!

2
2
2
2013-02-06 11:50:32 +0000

Sotto DISKPART avevo solo vol 0 o D (il DVD) e vol 1 o C (la partizione NTFS di Windows). Niente ha funzionato per me fino a quando non ho fatto vol 1 ACTIVE.

Dopo essere uscito da DISKPART ho solo digitato:

bootrec /fixboot
bootrec /rebuildbcd

quindi il sistema è stato riparato correttamente. Non ho usato

bootrec /fixmbr
``` &001 


perché stavo usando GAG (gestor de arranque gràfico) su MBR per il multiboot.
1
1
1
2012-12-05 14:29:49 +0000

Dopo 6 ore di difficoltà, sono riuscito a risolvere il mio problema di avvio di Windows 8.

Oggi, dopo il solito riavvio, ho ricevuto il messaggio MBR not found o simile, non ricordo più. Ho provato i comandi bootrec, la riparazione automatica di Windows (non riusciva a trovare nessun Windows installato), un milione di altri modi e niente.

Il problema è stato quando ho eseguito bootrec /rebuildbcd è diventato normale, e poi quando ho dovuto inserire yes se volevo salvare la configurazione, ho ricevuto il messaggio, the file is not accessible because it is used by a another process.

Dopo ore e ore di cracking mentale, l'ho finalmente risolto.

In questo ordine…

  • Per prima cosa, ho avviato il easeup partition master e FORMATO il volume riservato di sistema che ho assegnato come attivo in seguito (in cui si trovava la mia cartella di avvio). Quando ho riavviato ho ricevuto un errore NTLDR missing.

  • Poi ho avviato il ripristino di Windows, ho aperto un prompt dei comandi e ho inseritobootrec /fixmbr, /fixboot, /scanos, /rebuildbcd, cmd, &007 (che ora viene eseguito bene :] )

  • Sono uscito da &007 e ho cliccato su riparazione automatica.

  • Poi, sono stato in grado di selezionare Windows 8. Quando ho riavviato, ho potuto vedere il logo di Windows 8.

0
0
0
2015-12-19 14:57:30 +0000

Il mio scenario; non ho perso la partizione di sistema EFI, ma il cambio di unità e l'installazione di Windows sembra aver incasinato la voce di avvio UEFI di Windows Boot Manager per la prima unità; ho dovuto usare la voce UEFI che punta direttamente all'unità per l'avvio. Penso di averlo corretto correggendo/aggiungendo l'impostazione “device partition=\Device\HarddiskVolumeX” (X=2 nel mio caso; la mia seconda partizione è la partizione di sistema EFI, mappata su Z: con diskpart.exe):

Bcdedit /set {bootmgr} device partition=Z:

view con: bcdedit.exe /enum firmware

-1
-1
-1
2012-08-13 00:06:38 +0000

Use:bootrec /fixmbr (aggiorna l'MBR, probabilmente non farà nulla in questo caso, ma non farà neanche male)

bootrec /fixboot per riscrivere il settore di avvio della partizione di sistema.

bootrec /scanos per cercare i sistemi operativi che sono sul drive e aggiungerli al bootloader.

Basta eseguire i comandi in ordine.

-4
-4
-4
2012-08-25 20:41:13 +0000

Sono riuscito a risolvere il problema utilizzando il seguente comando nella console di recupero:

bootcfg C:\Windows /l en-us