Risoluzione dei problemi avanzata per l'ID evento 41: "Il sistema è stato riavviato senza arrestare prima di tutto"
Note
Utenti privati: questo articolo è destinato agli addetti al supporto e ai professionisti IT. Per altre informazioni sui messaggi di errore della schermata blu, vedere Risolvere gli errori della schermata blu.
Il modo preferito per arrestare Windows consiste nel selezionare Avvia e quindi selezionare un'opzione per disattivare o arrestare il computer. Quando si usa questo metodo standard, il sistema operativo chiude tutti i file e invia una notifica ai servizi e alle applicazioni in esecuzione in modo che possano scrivere dati non salvati su disco e scaricare eventuali cache attive.
Se il computer si arresta in modo imprevisto, Windows registra l'ID evento 41 alla successiva avvio del computer. Il testo dell'evento è simile alle informazioni seguenti:
Event ID: 41
Description: The system has rebooted without cleanly shutting down first.
Questo evento indica che alcune attività impreviste impedivano l'arresto corretto di Windows. Un arresto di questo tipo potrebbe essere causato da un'interruzione dell'alimentatore o da un errore di arresto. Se possibile, Windows registra eventuali codici di errore durante l'arresto. Durante la fase del kernel dell'avvio successivo di Windows, Windows verifica la presenza di questi codici e include tutti i codici esistenti nei dati dell'evento id 41.
EventData
BugcheckCode 159
BugcheckParameter1 0x3
BugcheckParameter2 0xfffffa80029c5060
BugcheckParameter3 0xfffff8000403d518
BugcheckParameter4 0xfffffa800208c010
SleepInProgress false
PowerButtonTimestamp 0Converts to 0x9f (0x3, 0xfffffa80029c5060, 0xfffff8000403d518, 0xfffffa800208c010)
Come usare l'ID evento 41 quando si risolve un arresto o un riavvio imprevisto
Di per sé, l'ID evento 41 potrebbe non contenere informazioni sufficienti per definire in modo esplicito ciò che si è verificato. In genere, è necessario considerare anche ciò che si è verificato al momento dell'arresto imprevisto (ad esempio, l'alimentatore non è riuscito). Usare le informazioni contenute in questo articolo per identificare un approccio alla risoluzione dei problemi appropriato per le circostanze in uso:
- Scenario 1: il computer viene riavviato a causa di un errore di arresto e l'ID evento 41 contiene un codice di errore di arresto (controllo bug)
- Scenario 2: il computer viene riavviato perché è stato premuto e premuto il pulsante di alimentazione
- Scenario 3: Il computer non risponde o riavvia in modo casuale e l'ID evento 41 non viene registrato o l'ID evento 41 elenca i valori del codice di errore pari a zero
Scenario 1: il computer viene riavviato a causa di un errore di arresto e l'ID evento 41 contiene un codice di errore di arresto (controllo bug)
Quando un computer si arresta o si riavvia a causa di un errore di arresto, Windows include i dati di errore di arresto in ID evento 41 come parte di più dati dell'evento. Queste informazioni includono il codice di errore stop (denominato anche codice di controllo dei bug), come illustrato nell'esempio seguente:
EventData
BugcheckCode 159
BugcheckParameter1 0x3
BugcheckParameter2 0xfffffa80029c5060
BugcheckParameter3 0xfffff8000403d518
BugcheckParameter4 0xfffffa800208c010
Note
L'ID evento 41 include il codice di controllo dei bug in formato decimale. La maggior parte della documentazione che descrive i codici di controllo dei bug fa riferimento ai codici come valori esadecimali anziché valori decimali. Per convertire decimale in esadecimale, seguire questa procedura:
- Selezionare Start, digitare calc nella casella Cerca e quindi selezionare Calcolatrice.
- Nella finestra Calcolatrice selezionare Visualizza>programmatore.
- Sul lato sinistro del calcolatore verificare che Dec sia evidenziato.
- Usare la tastiera per immettere il valore decimale del codice di controllo dei bug.
- Sul lato sinistro della calcolatrice selezionare Esadecimale.
Il valore visualizzato dal calcolatore è ora il codice esadecimale.
Quando si converte un codice di controllo dei bug in formato esadecimale, verificare che la designazione "0x" sia seguita da otto cifre (ovvero la parte del codice dopo che "x" include zeri sufficienti per compilare otto cifre). Ad esempio, 0x9F viene in genere documentato come 0x0000009f e 0xA viene documentato come 0x0000000A. Nel caso dei dati dell'evento di esempio in questo articolo, "159" viene convertito in 0x0000009f.
Dopo aver identificato il valore esadecimale, usare i riferimenti seguenti per continuare la risoluzione dei problemi:
- Risoluzione dei problemi avanzata per l'errore di arresto o di schermata blu.
- Riferimento al codice di controllo dei bug. Questa pagina elenca i collegamenti alla documentazione per codici di controllo dei bug diversi.
- Come eseguire il debug di arresti anomali della schermata blu in modalità kernel (per principianti).
Scenario 2: il computer viene riavviato perché è stato premuto e premuto il pulsante di alimentazione
Poiché questo metodo di riavvio del computer interferisce con l'operazione di arresto di Windows, ti consigliamo di usare questo metodo solo se non hai alternative. Ad esempio, potrebbe essere necessario usare questo approccio se il computer non risponde. Quando si riavvia il computer premendo e tenendo premuto il pulsante di alimentazione, il computer registra un ID evento 41 che include un valore diverso da zero per la voce PowerButtonTimestamp .
<EventData>
<Data Name="BugcheckCode">0</Data>
<Data Name="BugcheckParameter1">0x0</Data>
<Data Name="BugcheckParameter2">0x0</Data>
<Data Name="BugcheckParameter3">0x0</Data>
<Data Name="BugcheckParameter4">0x0</Data>
<Data Name="SleepInProgress">0</Data>
<Data Name="PowerButtonTimestamp">131728546170882432</Data>
<Data Name="BootAppStatus">0</Data>
</EventData>
Per informazioni sulla risoluzione dei problemi relativi a un computer che non risponde, vedere Guida di Windows. Valutare la possibilità di cercare assistenza usando parole chiave come "hang", "responding" o "blank screen".
Scenario 3: Il computer non risponde o riavvia in modo casuale e l'ID evento 41 non viene registrato o l'ID evento 41 o elenca i valori del codice di errore pari a zero
Questo scenario include le circostanze seguenti:
- Si arresta l'alimentazione in un computer che non risponde e quindi si riavvia il computer.
Per verificare che un computer non risponda, premere il tasto di blocco maiuscole sulla tastiera. Se l'indicatore di blocco maiuscole sulla tastiera non cambia quando si preme il tasto di blocco maiuscole, il computer potrebbe non rispondere (noto anche come blocco rigido). - Il computer viene riavviato, ma non genera l'ID evento 41.
- Il computer riavvia e genera l'ID evento 41, ma i valori BugcheckCode e PowerButtonTimestamp sono zero.
In questi casi, un elemento impedisce a Windows di generare codici di errore o di scrivere codici di errore su disco. Un elemento potrebbe bloccare l'accesso in scrittura al disco (come nel caso di un computer che non risponde) o il computer potrebbe arrestarsi troppo rapidamente per scrivere i codici di errore o anche rilevare un errore.
Le informazioni contenute nell'ID evento 41 indicano dove iniziare a verificare la presenza di problemi:
L'ID evento 41 non viene registrato o il codice di controllo dei bug è zero. Questo comportamento potrebbe indicare un problema di alimentazione. Se l'alimentazione di un computer viene interrotta, il computer potrebbe arrestarsi senza generare un errore di arresto. Se genera un errore di arresto, potrebbe non terminare la scrittura dei codici di errore su disco. Al successivo avvio del computer, potrebbe non registrare l'ID evento 41. In alternativa, in caso affermativo, il codice di controllo dei bug è zero. Le condizioni seguenti potrebbero essere la causa:
- Nel caso di un computer portatile, la batteria è stata rimossa o scaricata.
- Nel caso di un computer desktop, il computer è stato scollegato o ha riscontrato un'interruzione dell'alimentazione.
- L'alimentatore è sottopowered o difettoso.
Il valore di PowerButtonTimestamp è zero. Questo comportamento può verificarsi se l'alimentazione è stata disconnessa a un computer che non risponde all'input. Le condizioni seguenti potrebbero essere la causa:
- Un processo di Windows ha bloccato l'accesso in scrittura al disco e si arresta il computer premendo e tenendo premuto il pulsante di alimentazione per almeno quattro secondi.
- L'alimentazione è stata disconnessa a un computer che non risponde.
Impossibile scrivere il file di dump e tutti i valori sono Zero. Ad esempio:
<EventData> <Data Name="BugcheckCode">0</Data> <Data Name="BugcheckParameter1">0x0</Data> <Data Name="BugcheckParameter2">0x0</Data> <Data Name="BugcheckParameter3">0x0</Data> <Data Name="BugcheckParameter4">0x0</Data> <Data Name="SleepInProgress">0</Data> <Data Name="PowerButtonTimestamp">0</Data> <Data Name="BootAppStatus">0</Data> </EventData>
Tuttavia, è presente un ID evento 46 registrato da volmgr : Inizializzazione del dump di arresto anomalo non riuscita!. Questo evento può verificarsi se il computer è stato avviato senza un file di dump configurato. Il file di dump predefinito è il file di paging.
Pertanto, quando si ha un caso con un riavvio imprevisto e l'ID evento 41 ha tutto il valore 0, verificare se si dispone di un ID evento 46 per volmgr. In tal caso, controllare la configurazione del file di pagina. I riavvii imprevisti potrebbero comunque verificarsi a causa di un controllo di bug, ma il sistema non può scrivere il tipo di controllo bug nell'ID evento 41 e non è stato possibile generare un dump della memoria. Vedere ID evento 46 all'avvio di un computer
In genere, i sintomi descritti in questo scenario indicano un problema hardware. Per isolare il problema, seguire questa procedura:
- Disabilitare l'overclocking. Se il computer ha abilitato l'overclocking, disabilitarlo. Verificare che il problema si verifichi quando il sistema viene eseguito alla velocità corretta.
- Controllare la memoria. Usare un controllo della memoria per determinare l'integrità e la configurazione della memoria. Verificare che tutti i chip di memoria vengano eseguiti alla stessa velocità e che ogni chip sia configurato correttamente nel sistema.
- Controllare l'alimentatore. Verificare che l'alimentatore abbia un numero sufficiente di watt per gestire in modo appropriato i dispositivi installati. Se è stata aggiunta memoria, installato un processore più recente, installato più unità o dispositivi esterni aggiunti, tali dispositivi possono richiedere più energia rispetto all'alimentatore corrente in grado di fornire in modo coerente. Se il computer ha registrato l'ID evento 41 perché l'alimentazione del computer è stata interrotta, prendere in considerazione l'acquisizione di un alimentatore non interruppebile (UPS), ad esempio un alimentatore di backup della batteria.
- Controllare il surriscaldamento. Esaminare la temperatura interna dell'hardware e verificare la presenza di componenti surriscaldati.
- Se il computer è un computer fisico, potrebbe essere stato riavviato da un software di ripristino automatico del server (ASR) che ha rilevato che il computer non è reattivo.
- Se il sistema è in esecuzione in una macchina virtuale Hyper-V e non fa parte di un ambiente cluster, il sistema potrebbe essere stato riavviato dalla funzionalità heartbeat Hyper-V. Se questa funzionalità è abilitata e l'host non rileva un heartbeat dalla macchina virtuale (forse perché non è reattivo), Hyper-V riavvia la macchina virtuale.
- Se il problema si verifica in un ambiente cluster Hyper-V, il problema potrebbe essere correlato all'opzione Abilita monitoraggio heartbeat per la macchina virtuale. Vedere File di dump della memoria danneggiato quando si tenta di ottenere un file di dump di memoria completo da una macchina virtuale in esecuzione in un ambiente cluster.
- Se il problema si verifica con una macchina virtuale VMWare, potrebbe essere correlato alla funzionalità heartbeat in VMWare o la macchina virtuale fa parte di un cluster di terze parti.
- Verificare la presenza di eventi sospetti prima dell'ora di arresto (ottenuta dall'ID evento 6008) sia nel registro applicazioni che nel log di sistema.
Se si eseguono questi controlli e non è ancora possibile isolare il problema, impostare il sistema sulla configurazione predefinita e verificare se il problema persiste.
Note
Se viene visualizzato un messaggio di errore Di arresto che include un codice di controllo dei bug, ma l'ID evento 41 non include tale codice, modificare il comportamento di riavvio per il computer. A tale scopo, effettuare i passaggi seguenti:
- Fare clic con il pulsante destro del mouse su My Computer e quindi scegliere Proprietà>Impostazioni di sistema>avanzate Avanzate.
- Nella sezione Avvio e ripristino selezionare Impostazioni.
- Deselezionare la casella di controllo Riavvia automaticamente.
Ulteriori informazioni
Dettagli sull'ID evento 41
L'errore 41 dell'evento Kernel Power ID 41 si verifica quando il computer si arresta o si riavvia in modo imprevisto. All'avvio di un computer basato su Windows, viene eseguito un controllo per determinare se il computer è stato arrestato correttamente. In caso contrario, viene generato un messaggio di ID evento Kernel Power 41.
Viene usato un ID evento 41 per segnalare che si è verificato un evento imprevisto che impediva l'arresto corretto di Windows. Potrebbero esserci informazioni insufficienti per definire in modo esplicito ciò che è successo. Per altre informazioni, vedere Kernel Power Event ID 41 .
- Nome log: Sistema
- Prodotto: Sistema operativo Windows
- ID: 41
- Origine: Microsoft-Windows-Kernel-Power
- Livello: critico
- Versione: 6.1
- Messaggio: il sistema è stato riavviato senza prima arrestare correttamente. Questo errore può essere causato se il sistema ha smesso di rispondere, arrestarsi in modo anomalo o perdere energia in modo imprevisto.This error could be caused if the system stopped responding, crashed, or lost power unexpectedly.
Note
L'ora visualizzata nel file con estensione evtx viene modificata in base all'ora del sistema. Controllare il fuso orario del server.
- ID evento 41: questo evento indica che Windows è stato riavviato senza un arresto completo.
- ID evento 1074: questo evento viene registrato quando un'applicazione è responsabile dell'arresto o del riavvio del sistema. Indica anche quando un utente ha riavviato o arrestato il sistema usando il menu Start o premendo CTRL+ALT+CANC.
- ID evento 6006: questo evento indica che Windows è stato adeguatamente disattivato.
- ID evento 6008: questo evento indica un arresto non corretto o dirty. Viene registrato quando l'arresto più recente è imprevisto.
Subito prima dell'arresto del computer, shutdown.exe
registrerà l'evento di arresto nel registro di sistema di Windows con source=User32 e l'ID evento 1074 insieme a qualsiasi codice di messaggio e motivo personalizzato.
Il registro eventi è l'unico modo per indicare che un riavvio attivato da shutdown.exe
è in sospeso. L'evento registra anche il nome utente e la data e l'ora di emissione del shutdown
comando.
Quando si usa shutdown.exe
per riavviare un server, il processo di arresto in genere consentirà 30 secondi per garantire che ogni servizio in esecuzione abbia il tempo necessario per arrestarsi. I servizi vengono arrestati in ordine alfabetico. Interrompere manualmente i servizi in un ordine specifico con NET STOP
o SC
può essere leggermente più veloce.
File di stato di avvio (dalle finestre interne 6th)
Windows usa un file di stato di avvio (%SystemRoot%\Bootstat.dat) per registrare il fatto che sia stato eseguito attraverso varie fasi del ciclo di vita del sistema, tra cui l'avvio e l'arresto.
Ciò consente a Gestione avvio, caricatore Windows e lo strumento di ripristino di avvio di rilevare l'arresto anomalo o un errore di arresto pulito, per offrire le opzioni di ripristino e di avvio diagnostico dell'utente, ad esempio Ultima modalità valida e sicura nota. Questo file binario contiene informazioni tramite cui il sistema segnala l'esito positivo delle fasi seguenti del ciclo di vita del sistema:
- Avvio (la definizione di un avvio riuscito è identica a quella usata per determinare lo stato ultimo valido noto, descritto in precedenza)
- Arresto
- Riprendere dall'ibernazione o dalla sospensione
Il file di stato di avvio indica anche se è stato rilevato un problema l'ultima volta che l'utente ha tentato di avviare il sistema operativo e le opzioni di ripristino visualizzate, a indicare che l'utente è stato informato del problema e ha eseguito un'azione. Le API della libreria di runtime (Rtl) in ntdll.dll contengono le interfacce private usate da Windows per leggere e scrivere nel file. Come il BCD, non può essere modificato dagli utenti.
Informazioni sull'arresto
Quando viene avviato un arresto, Windows invia un messaggio di WM_QUERYENDSESSION a tutte le applicazioni in esecuzione con un thread dell'interfaccia utente. Questo messaggio chiede all'applicazione di salvare i dati non salvati e terminare normalmente. Se l'applicazione non risponde al messaggio entro un determinato limite di tempo, Windows invia un messaggio WM_ENDSESSION all'applicazione, che termina immediatamente l'applicazione.
Se tutte le applicazioni rispondono al messaggio WM_QUERYENDSESSION e terminano normalmente, Windows registra un evento di arresto pulito nel registro eventi di sistema. Se un'applicazione non risponde al messaggio o termina in modo anomalo, Windows registra un evento di arresto dirty nel registro eventi di sistema.
Gli arresti imprevisti sono causati principalmente da componenti esterni al sistema operativo.
Un arresto dirty è quando un sistema di computer viene arrestato senza passare attraverso il processo di arresto appropriato. Ciò può verificarsi quando l'alimentazione viene improvvisamente tagliata o quando il computer è costretto a arrestarsi tenendo premuto il pulsante di alimentazione. Un arresto dirty può causare perdita o danneggiamento dei dati e può anche causare problemi di avvio.
Il Registro di sistema dirty shutdown count è una chiave del Registro di sistema del Registro di sistema di Windows usata per tenere traccia del numero di volte in cui un sistema di computer è stato arrestato senza passare attraverso il processo di arresto appropriato. Questa chiave può essere utile durante la risoluzione dei problemi di avvio per identificare se il sistema è stato spento in modo non corretto.
È anche possibile cancellare tutti i valori, ad esempio DirtyShutdown, LastAliveStamp, TimeStampInterval, nella chiave del Registro di sistema seguente: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability
. Ciò consente di impedire la visualizzazione di Shutdown Event Tracker dopo un arresto imprevisto.