Riavvio infinito di Windows ed errore 0x00007b al boot: come risolvere

Windows non si avvia più e il sistema si riavvia in continuazione mostrando una schermata blu e un codice di errore. Come capire la natura del problema e risolverlo.

Con l’espressione loop infinito o riavvio infinito si fa comunemente riferimento al comportamento anomalo di Windows che porta il PC ad effettuare un reboot dopo l’altro senza mai arrivare alla visualizzazione del desktop.
Il riavvio infinito di Windows è di solito accompagnato dalla comparsa di una schermata blu che però tipicamente appare per una frazione di secondo non lasciando all’utente il tempo materiale per leggere l’errore che compare.

Proprio nel giorno dell’abbandono del programma ESU (Extended Security Update), ci è stata portata in visione una macchina Windows 7 che improvvisamente si rifiutava di avviare il sistema operativo e presentava il problema del loop infinito all’avvio.
Certo, il problema riguarda un singolo sistema che ancora utilizza Windows 7, sistema operativo non più supportato da parte di Microsoft (le ultime patch ufficiali sono state rilasciate il 10 gennaio 2023 soltanto per gli iscritti al programma ESU…). Vogliamo però sfruttare l’occasione per un “ripasso” sugli interventi che possono aiutare a risolvere il riavvio infinito di Windows, magagna che può presentarsi anche con i sistemi operativi Microsoft più recenti.

In questo articolo presentiamo una serie di spunti destinati a tutti coloro che ci seguono da tempo e sono in possesso di alcune conoscenze di base. Per ovvi motivi, nella trattazione che segue, non descriveremo per filo e per segno tutti i singoli passaggi: daremo infatti per scontato che il lettore conosca:

  • Le differenze tra versioni ed edizioni di Windows
  • Il significato di 32 e 64 bit
  • Come accedere al menu di avvio di emergenza
  • Come accedere e usare la modalità provvisoria
  • Come inserire il supporto d’installazione di Windows in una chiavetta avviabile
  • Come accedere al BIOS/UEFI
  • Come effettuare il boot del sistema da un’unità esterna
  • Come aprire il prompt dei comandi dalla schermata di installazione di Windows utilizzando un supporto di avvio (MAIUSC+F10)
  • I “rudimenti” del prompt dei comandi e i comandi basilari
  • Come gestire i file e accedere alle cartelle dal prompt dei comandi

Capire il motivo di un riavvio infinito e leggere l’errore contenuto nella schermata blu

Dicevamo che spesso risulta impossibile leggere l’errore contenuto nella schermata blu all’avvio del sistema e che è responsabile dei continui riavvii.

Come primo passo è quindi bene premere ripetutamente F8 all’avvio del sistema (prima che compaia il logo delle versioni di Windows più vecchie).
Nel caso di Windows 10 e Windows 11, dopo due mancati avvii del sistema operativo, compare la console di ripristino. Dal menu di emergenza si può scegliere l’opzione Risoluzione dei problemi, Prompt dei comandi, effettuare il login con l’account utente amministratore configurato sulla macchina quindi digitare quanto segue:

wmic recoveros set AutoReboot = False

Riavviando il PC a questo punto si dovrebbe poter leggere il messaggio di errore al boot e la schermata blu non dovrebbe più comportare un riavvio automatico.

Se fosse possibile accedere alla modalità provvisoria si dovrebbe provare ad annullare tutte le eventuali modifiche applicate di recente sul sistema.
Dal menu di emergenza di Windows si può provare a ripristinare l’ultima configurazione sicuramente funzionante o, nel caso di Windows 10 e Windows 11, rimuovere gli ultimi aggiornamenti applicati. C’è un’apposita voce nel menu di emergenza oppure si possono disinstallare gli aggiornamenti di Windows a mano.

Questi pochi interventi dovrebbero consentire di ripristinare l’avvio di Windows allorquando il problema fosse figlio di qualche aggiornamento mal riuscito, non soltanto Microsoft ma ad esempio qualche driver di terze parti scaricato mediante Windows Update.

L’errore restituito dalla schermata blu aiuta in ogni caso a identificare, almeno a grandi linee, la natura della problematica: basta effettuare una ricerca sul Web per rendersene conto.

Il codice di errore 0x00007b (INACCESSIBLE_BOOT_DEVICE) fa riferimento al mancato accesso, da parte della routine di avvio di Windows, all’unità di boot.

La procedura canonica per risolvere questi tipi di errori consiste nell’avviare il sistema da un supporto di boot (ad esempio una chiavetta USB). Nell’unità USB deve essere inserita, ad esempio usando Rufus, l’immagine del supporto d’installazione di Windows (stessa identica versione ed edizione presente sulla macchina da “riparare”).
Cliccando sul pulsante Download, Rufus consente di scaricare qualunque versione ed edizione di Windows, comprese le più vecchie (come Windows 7).

Nel caso del vecchio Windows 7 Rufus offre soltanto le varie edizioni in lingua inglese: non è importante. Fondamentale è invece che nella chiavetta creata con Rufus si inserisca la stessa edizione di Windows presente sulla macchina.

È inoltre essenziale creare una chiavetta avviabile il cui contenuto possa essere caricato: sui sistemi più moderni basati su BIOS UEFI si può scegliere GPT come Schema partizione; su quelli più vecchi (BIOS legacy) si deve selezionare MBR.

Dopo aver effettuato l’avvio dal supporto d’installazione di Windows, si può provare a ripristinare il funzionamento del PC cliccando su Ripara il PC nella schermata per la selezione della lingua e del layout della tastiera.

Se non si risolvesse, si può premere MAIUSC+F10 alla comparsa della schermata per l’installazione di Windows quindi effettuare i seguenti passaggi (nel caso delle versioni più vecchie di Windows):

bcdboot C:\Windows
bootrec /fixboot
bootrec /fixmbr
bootrec /rebuildbcd

Al posto di C: va indicata l’unità ove Windows risulta installato.

Sia nel caso delle versioni più vecchie di Windows che di quelle più recenti, si possono rigenerare i file di avvio ricorrendo ai comandi seguenti, utili quando la riparazione automatica di Windows non funziona:

bcdedit /export C:\bcdbackup
attrib C:\boot\bcd -h -r -s
ren C:\boot\bcd bcd.old
bootrec /rebuildbcd

Al posto di C: va specificata la lettera identificativa di unità corrispondente alla partizione riservata contenente i file di boot.

Eventualmente si può digitare diskpart quindi list volume e annotare la lettera identificativa di unità corrispondente alla partizione riservata.

Dopo aver riavviato il sistema, se la macchina presentasse ancora il problema del riavvio infinito, si può nuovamente effettuare il boot dal supporto d’installazione quindi eseguire il comando seguente:

sfc /scannow /offbootdir=C:\ /offwindir=D:\Windows

Come abbiamo visto nell’articolo su come riparare il PC da soli, al posto di C: va sostituita la lettera identificativa di unità corrispondente alla partizione riservata mentre al posto di D: va specificata quella che ospita l’installazione di Windows.

Evitare il caricamento dei driver per il controller dell’unità di memorizzazione

L’errore 0x00007b spesso si risolve inducendo Windows a non caricare i driver dei controller delle unità disco presenti sulla macchina. In questo modo la procedura di boot del sistema operativo userà driver generici che permetteranno di avviare il PC (l’installazione dei driver specifici avverrà in un secondo tempo…).

Per procedere in tal senso si può riavviare il sistema dal supporto d’installazione di Windows, portarsi al prompt dei comandi (MAIUSC+F10) quindi digitare quanto segue:

reg load HKLM\WIN C:\windows\system32\config\SYSTEM

reg add "HKLM\WIN\ControlSet001\Services\Atapi" /v Start /t REG_DWORD /d 0 /f

reg add "HKLM\WIN\ControlSet001\Services\Intelide" /v Start /t REG_DWORD /d 0 /f

reg add "HKLM\WIN\ControlSet001\Services\pciide" /v Start /t REG_DWORD /d 0 /f

reg add "HKLM\WIN\ControlSet001\Services\iaStorV" /v Start /t REG_DWORD /d 0 /f

reg add "HKLM\WIN\ControlSet001\Services\LSI_SAS" /v Start /t REG_DWORD /d 0 /f

Solo per Windows 10 e successivi:

reg add "HKLM\WIN\ControlSet001\Services\storahci" /v Start /t REG_DWORD /d 0 /f

Solo per Windows 7 e precedenti:

reg add "HKLM\WIN\ControlSet001\Services\msahci" /v Start /t REG_DWORD /d 0 /f

Come comando finale impartire il seguente:

reg unload HKLM\WIN

Riavviando il sistema è possibile verificare se il problema risulta risolto o meno.

Tecnologia utilizzata dal controller per comunicare con le unità di memorizzazione

In alcune circostanze, l’opzione relativa alla tecnologia utilizzata dal controller per comunicare con le periferiche deputate alla memorizzazione dei dati potrebbe essere impostata in modo scorretto (IDE, AHCI, AHCI/NVMe, RAID,…).
Sistemando questa impostazione, a seconda della specifica configurazione del sistema in uso, in molti casi è possibile risolvere il problema e tornare ad avviare Windows.

Controllare quali file non vengono caricati all’avvio di Windows e provocano una schermata blu

Nel menu delle opzioni avanzate di avvio di Windows si trova Abilita registrazione avvio. Si tratta di un utile comando che permette di richiedere la registrazione di tutte le operazioni via via eseguite al boot all’interno di un file di testo. Tale file si chiama ntbtlog.txt e viene salvato nella cartella di Windows.

Mentre Abilita registrazione avvio si trova nel menu che nei vecchi sistemi Windows appare premendo F8, in Windows 10/11 si può attivare il logging al boot accedendo al menu di emergenza, selezionando Prompt dei comandi quindi scrivendo quanto segue:

bcdedit

bcdedit /set {default} bootlog yes

Al posto di {default} va specificata l’etichetta associata all’installazione di Windows, rilevabile con il primo comando.

Riavviando la macchina, la procedura di boot di Windows genera il file ntbtlog.txt.

Tornando al prompt dei comandi dal supporto d’installazione di Windows (MAIUSC+F10) si può digitare quanto segue per leggere il file in corrispondenza del quale il caricamento di Windows si è arrestato prematuramente:

notepad C:\Windows\ntbtlog.txt

Al posto di C: va ovviamente sostituita la lettera identificativa corrispondente all’unità ove Windows risulta installato.

Con questo trucco è possibile accorgersi del file di sistema che non viene caricato correttamente all’avvio di Windows. Nel nostro caso, nell’esempio del vecchio sistema Windows 7, era agp440.sys.

È bastato quindi impartire i comandi seguenti per sostituire il file presente nella cartella di Windows con quello salvato nel supporto d’installazione:

cd X:\Windows\System32
ren c:\windows\system32\drivers\agp440.sys agp440.old
copy agp440.sys C:\Windows\system32\drivers

Al successivo tentativo di avviare Windows, il problema della schermata blu è così scomparso.
Certo, è un caso specifico, e il file agp440.sys non è neppure più presente nelle versioni più recenti di Windows ma lo stesso approccio può essere utilizzato per inquadrare e risolvere il problema che porta alla schermata blu in avvio e al reboot infinito della macchina.

Ti consigliamo anche

Link copiato negli appunti