Boot Configuration Data (BCD) è il database che Windows utilizza per memorizzare tutte le informazioni relative all’avvio del sistema operativo. Introdotto a partire da Windows Vista, BCD ha sostituito lo storico vecchio file boot.ini
presente nelle versioni precedenti di Windows, offrendo una gestione più flessibile e sicura delle configurazioni di boot sia per sistemi BIOS/MBR sia per sistemi UEFI/GPT. BCDEdit è uno strumento essenziale per amministratori di sistema e tecnici IT, soprattutto in scenari di riparazione del sistema, gestione multi-boot o risoluzione di errori di avvio come il famoso 0xc000000e, che segnala problemi nella configurazione del boot o nell’accesso a un dispositivo di memorizzazione.
Come funziona BCD
Abbiamo detto che BCD è un database che memorizza tutte le informazioni necessarie a Windows per avviarsi correttamente. La struttura del BCD prevede l’utilizzo dei seguenti elementi:
- Voci (Entries): Ogni voce rappresenta un loader o un componente di avvio (es. Windows Boot Manager, Windows Boot Loader, recovery tools,…).
- Identificatori (GUID o nomi simbolici): Ogni voce è identificata univocamente tramite un GUID o nomi speciali come
{default}
,{bootmgr}
o{current}
. Sempre racchiusi tra parentesi graffe. - Proprietà (Elements): Ogni voce contiene coppie chiave/valore, ad esempio:
- device: partizione contenente Windows o EFI.
- path: percorso del loader (
\Windows\system32\winload.exe
). - description: nome visualizzato nel menu di avvio.
- osdevice: partizione che ospita il sistema operativo.
Il sistema operativo legge queste informazioni all’avvio per sapere dove trovare il loader, quali parametri applicare e quale sistema avviare.
Come BCEdit legge e modifica i dati di avvio
BCDEdit è uno di quegli strumenti che torna utile proprio nel momento in cui ne hai davvero bisogno! Ed è davvero così, a patto di conoscerne l’esistenza e di saperlo usare bene.
Nella stragrande maggioranza dei casi, aiuta a risolvere i più comuni problemi di avvio in un battito di ciglia. Tuttavia, deve essere utilizzato con la massima consapevolezza, certi di che cosa si sta facendo.
Per visualizzare la configurazione corrente utilizzata per l’avvio di Windows, basta aprire il prompt dei comandi con i diritti di amministratore (cmd
, Esegui come amministratore) quindi digitare semplicemente:
bcdedit
Si riconosceranno gli elementi di BCD descritti al precedente paragrafo. BCDEdit, infatti, visualizza tutte le voci del BCD, compresi i loader e i parametri di avvio.
Cos’è la partizione EFI (ESP)
La partizione EFI, o EFI System Partition (ESP), è una piccola partizione presente sui dischi GPT nei sistemi UEFI. Serve a contenere file di avvio indipendenti dal sistema operativo, come appunto i loader. È di tipo FAT32, di dimensioni ridotte (100-500 MB) e contiene file .efi, tra cui:
- bootx64.efi: loader generico o predefinito.
- Loader specifici dei sistemi operativi (Windows:
bootmgfw.efi
, Linux:grubx64.efi
). - Utility di ripristino e diagnostica UEFI.
Il firmware UEFI legge quanto contenuto nella partizione EFI per trovare i loader dei vari sistemi installati.
Dual-boot e multi-boot tra Windows e Linux
Quando si installano più sistemi operativi su un computer UEFI/GPT, occorre coordinare boot manager e loader. Immaginiamo lo scenario Windows più Linux installati sullo stesso sistema (configurazione dual-boot).
Windows crea la partizione EFI e vi inserisce il suo bootmgfw.efi
. Installando Linux successivamente, l’installer del pinguino rileva la partizione EFI esistente, installa il loader Linux (grubx64.efi
) in una directory separata e aggiorna GRUB per includere anche Windows come voce di menu.
Ad ogni avvio del PC, il firmware UEFI legge la partizione EFI e mostra le voci registrate (Windows, Linux, recovery). GRUB può diventare il boot manager principale, permettendo di scegliere il sistema operativo.
Windows non sovrascrive GRUB se l’installer Linux è configurato correttamente. All’atto pratico, è bene installare sempre prima Windows e poi Linux, in modo da evitare che il sistema Microsoft vada a sovrascrivere il bootloader.
Alcuni aggiornamenti Windows a volte possono ripristinare bootmgfw.efi
come default: in tal caso è necessario reinstallare o aggiornare GRUB.
Limiti di BCDEdit
Nonostante sia potente e versatile, BCDEdit soffre di alcune limitazioni. Nello specifico, il tool integrato in Windows non gestisce loader non-Windows (GRUB, rEFInd o altri bootloader di Linux non sono visibili né modificabili tramite BCDEdit) e l’interazione risulta piuttosto complessa. Un errore può rendere il sistema non avviabile o peggiorare la situazione. Di nuovo, BCDEdit è un software da utilizzare con la massima cautela.
Ovviamente, se un errore in avvio derivasse da un supporto di memorizzazione malfunzionante o da file corrotti, BCDEdit da solo non può risolvere la situazione perché non può intervenire su problematiche hardware.
L’avvio di BCDEdit, come evidenziato in precedenza, richiede i privilegi di amministratore o l’utilizzo del supporto d’installazione di Windows.
Un esempio concreto: errore 0xc000000e, “Il PC deve essere ripristinato”
L’errore 0xc000000e che appare all’avvio del sistema, indica che il BCD è corrotto o manca, oppure che il sistema non trova il dispositivo/loader di avvio corretto. Proprio avvalendosi di BCDEdit, si possono fare verifiche precise.
La prima cosa da fare, in questo caso, è premere il tasto ESC
alla comparsa del messaggio d’errore per verificare se Windows riesce comunque ad avviarsi. Se sì, il problema è riconducibile a un’imperfetta configurazione del BCD e alla presenza di voci non pertinenti.
In questo caso, il comando bcdedit
può essere eseguito dal prompt dei comandi digitando cmd nella casella di ricerca del sistema operativo quindi scegliendo Esegui come amministratore.
È importante controllare che ci sia almeno una voce di Windows Boot Manager {bootmgr}
e un loader valido: {current}
o simile. Se non ci sono voci o sono danneggiate, è confermata la causa BCD.
Spesso, individuando la voce di avvio corretta e poi impartendo il comando seguente, si può ripristinare il corretto avvio di Windows:
bcdedit /default {identificatore_corretto}
Impartendo di nuovo il comando bcdedit
, vedrete apparire l’identificatore accanto alla voce default
al di sotto della sezione Windows Boot Manager
.
Si può eventualmente fare pulizia con il comando bcdedit /delete {identificatore}
per eliminare voci di avvio superflue o erronee.
Prima di qualunque intervento, è bene essere sicuri delle anomalie eventualmente presenti ed effettuare un backup dell’unità in cui Windows risulta installato.
Come usare BCDEdit dal supporto d’installazione di Windows
Per usare BCDEdit dal supporto d’installazione di Windows, è sufficiente inserirlo (ad esempio collegare la chiavetta USB) quindi specificarlo a livello di BIOS UEFI come prima unità da avviare.
Successivamente, ad esempio nel caso di Windows 11 alla comparsa della schermata Seleziona le impostazioni della lingua, si deve premere la combinazione di tasti MAIUSC+F10
oppure MAIUSC+Fn+F10
per far comparire il prompt dei comandi.
Per essere sicuri di leggere (e poi eventualmente scrivere) nel BCD giusto, si deve digitare il comando diskpart
, digitare list vol
per individuare la partizione EFI (FAT32, 100-500 MB) nascosta quindi montarla digitando dapprima sel vol
seguito dal numero della partizione e poi assign letter=S:
La procedura, riservata agli utenti più avanzati, risulta chiara esaminando l’esempio raffigurato nell’immagine:
Con il comando seguente, si ha la certezza di lavorare sul database BCD effettivamente usato sul sistema:
bcedit /store S:\EFI\Microsoft\Boot\BCD
Come visto in precedenza, si può ad esempio impostare un loader come predefinito:
bcdedit /store S:\EFI\Microsoft\Boot\BCD /default {current}
Ricreare il BCD dal supporto d’installazione
Se non si riuscisse a risolvere, supponendo di aver correttamente montato la partizione EFI come unità S: si può impartire il comando seguente per ricreare completamente il BCD:
bcdboot C:\Windows /s S: /f ALL
Al posto di C:\Windows va specificato il percorso corretto dell’installazione di Windows. Il comando rigenera un BCD nuovo e funzionante, copiando anche i file di boot necessari.
Prima di procedere, si può comunque creare una copia di backup del file BCD in uso:
copy S:\EFI\Microsoft\Boot\BCD S:\EFI\Microsoft\Boot\BCD.bak
Conclusioni e precauzioni nell’uso di BCDEdit
BCDEdit è uno strumento potente e indispensabile per la gestione delle configurazioni di avvio di Windows, ma proprio per la sua capacità di modificare direttamente il database BCD, deve essere utilizzato con estrema cautela. Interventi errati possono rendere il sistema non avviabile, peggiorare problemi esistenti o compromettere il corretto funzionamento di loader non-Windows in configurazioni dual-boot o multi-boot.
Prima di eseguire qualsiasi comando BCDEdit, è fondamentale:
- Verificare attentamente le voci del BCD e accertarsi di intervenire solo sugli identificatori corretti.
- Effettuare un backup completo del sistema o, almeno, della partizione contenente Windows, così da poter ripristinare lo stato precedente in caso di problemi.
- Documentarsi bene sui comandi da utilizzare, evitando operazioni “a tentativi”, soprattutto se si ha un setup multi-boot con Linux o altri sistemi operativi.
In sintesi, BCDEdit rimane uno strumento affidabile e risolutivo, ma va considerato come un intervento tecnico di basso livello: un approccio metodico, informato e prudente è sempre la chiave per evitare complicazioni e garantire un avvio stabile e sicuro di Windows.