Zaawansowane rozwiązywanie problemów z identyfikatorem zdarzenia 41: "System został ponownie uruchomiony bez uprzedniego zamknięcia"

Uwaga

Użytkownicy domowi: ten artykuł jest przeznaczony dla pracowników pomocy technicznej i informatyków. Jeśli szukasz więcej informacji na temat komunikatów o błędach niebieskiego ekranu, odwiedź stronę Rozwiązywanie problemów z błędami niebieskiego ekranu.

Preferowanym sposobem wyłączenia systemu Windows jest wybranie pozycji Uruchom, a następnie wybranie opcji wyłączenia lub wyłączenia komputera. W przypadku korzystania z tej standardowej metody system operacyjny zamyka wszystkie pliki i powiadamia uruchomione usługi i aplikacje, aby mogły zapisywać niezapisane dane na dysku i opróżniać wszystkie aktywne pamięci podręczne.

Jeśli komputer zostanie nieoczekiwanie zamknięty, system Windows rejestruje identyfikator zdarzenia 41 przy następnym uruchomieniu komputera. Tekst zdarzenia przypomina następujące informacje:

Event ID: 41  
Description: The system has rebooted without cleanly shutting down first.

To zdarzenie wskazuje, że niektóre nieoczekiwane działania uniemożliwiły poprawne zamknięcie systemu Windows. Takie zamknięcie może być spowodowane przerwą w zasilaniu lub błędem zatrzymania. Jeśli jest to możliwe, system Windows rejestruje kody błędów podczas zamykania. W fazie jądra następnego uruchomienia systemu Windows system Windows sprawdza te kody i zawiera wszystkie istniejące kody w danych zdarzenia o identyfikatorze zdarzenia 41.

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  
SleepInProgress false  
PowerButtonTimestamp 0Converts to 0x9f (0x3, 0xfffffa80029c5060, 0xfffff8000403d518, 0xfffffa800208c010)  

Jak używać identyfikatora zdarzenia 41 podczas rozwiązywania problemów z nieoczekiwanym zamknięciem lub ponownym uruchomieniem

Sam identyfikator zdarzenia 41 może nie zawierać wystarczających informacji, aby jawnie zdefiniować, co się stało. Zazwyczaj należy również wziąć pod uwagę to, co miało miejsce w momencie nieoczekiwanego zamknięcia (na przykład zasilanie nie powiodło się). Skorzystaj z informacji zawartych w tym artykule, aby zidentyfikować podejście do rozwiązywania problemów odpowiednie dla danej sytuacji:

  • Scenariusz 1. Komputer jest uruchamiany ponownie z powodu błędu zatrzymania, a identyfikator zdarzenia 41 zawiera kod błędu zatrzymania (sprawdzanie błędów)
  • Scenariusz 2. Komputer jest uruchamiany ponownie, ponieważ naciśnięto i przytrzymano przycisk zasilania
  • Scenariusz 3. Komputer nie odpowiada lub jest ponownie uruchamiany losowo, a identyfikator zdarzenia 41 nie jest rejestrowany lub wpis o identyfikatorze zdarzenia 41 wyświetla wartości kodu błędu o wartości zero

Scenariusz 1. Komputer jest uruchamiany ponownie z powodu błędu zatrzymania, a identyfikator zdarzenia 41 zawiera kod błędu zatrzymania (sprawdzanie błędów)

Gdy komputer zostanie zamknięty lub uruchomiony ponownie z powodu błędu Zatrzymania, system Windows zawiera dane błędu Zatrzymania w identyfikatorze zdarzenia 41 jako część większej liczby danych zdarzeń. Te informacje zawierają kod błędu Zatrzymania (nazywany również kodem sprawdzania błędu), jak pokazano w poniższym przykładzie:

EventData  
BugcheckCode 159  
BugcheckParameter1 0x3  
BugcheckParameter2 0xfffffa80029c5060  
BugcheckParameter3 0xfffff8000403d518  
BugcheckParameter4 0xfffffa800208c010  

Uwaga

Identyfikator zdarzenia 41 zawiera kod sprawdzania błędów w formacie dziesiętnym. Większość dokumentacji opisującej kody sprawdzania błędów odnosi się do kodów jako wartości szesnastkowych zamiast wartości dziesiętnych. Aby przekonwertować wartości dziesiętne na szesnastkowe, wykonaj następujące kroki:

  1. Wybierz pozycję Start, wpisz calc w polu Wyszukaj , a następnie wybierz pozycję Kalkulator.
  2. W oknie Kalkulator wybierz pozycję Wyświetl>programistę.
  3. Po lewej stronie kalkulatora sprawdź, czy wyróżniono pozycję Grudzień .
  4. Użyj klawiatury, aby wprowadzić wartość dziesiętną kodu sprawdzania błędu.
  5. Po lewej stronie kalkulatora wybierz pozycję Szesnastkowa.
    Wartość wyświetlana przez kalkulator jest teraz kodem szesnastkowym.

Podczas konwertowania kodu sprawdzania usterki na format szesnastkowy sprawdź, czy po oznaczeniu "0x" następuje osiem cyfr (oznacza to, że część kodu po znaku "x" zawiera wystarczająco dużo zer, aby wypełnić osiem cyfr). Na przykład 0x9F są zwykle dokumentowane jako 0x0000009f, a 0xA są udokumentowane jako 0x0000000A. W przypadku przykładowych danych zdarzeń w tym artykule wartość "159" jest konwertowana na 0x0000009f.

Po zidentyfikowaniu wartości szesnastkowej użyj następujących odwołań, aby kontynuować rozwiązywanie problemów:

Scenariusz 2. Komputer jest uruchamiany ponownie, ponieważ naciśnięto i przytrzymano przycisk zasilania

Ponieważ ta metoda ponownego uruchamiania komputera zakłóca operację zamykania systemu Windows, zalecamy użycie tej metody tylko wtedy, gdy nie masz alternatywy. Na przykład może być konieczne użycie tego podejścia, jeśli komputer nie odpowiada. Po ponownym uruchomieniu komputera przez naciśnięcie i przytrzymanie przycisku zasilania komputer rejestruje identyfikator zdarzenia 41, który zawiera wartość inną niż zero dla wpisu 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>

Aby uzyskać pomoc dotyczącą rozwiązywania problemów z komputerem, który nie odpowiada, zobacz Pomoc systemu Windows. Rozważ wyszukanie pomocy przy użyciu słów kluczowych, takich jak "hang", "responding" lub "blank screen".

Scenariusz 3. Komputer nie odpowiada lub jest uruchamiany losowo, a identyfikator zdarzenia 41 nie jest rejestrowany lub wpis o identyfikatorze zdarzenia 41 lub wyświetla wartości kodu błędu o wartości zero

Ten scenariusz obejmuje następujące okoliczności:

  • Wyłączasz zasilanie komputera, na który nie odpowiadasz, a następnie ponownie uruchamiasz komputer.
    Aby sprawdzić, czy komputer nie odpowiada, naciśnij klawisz Caps lock na klawiaturze. Jeśli lampka blokady Caps na klawiaturze nie zmieni się po naciśnięciu klawisza Caps Lock , komputer może nie odpowiadać (nazywany również twardym zawieszeniem).
  • Komputer zostanie uruchomiony ponownie, ale nie generuje identyfikatora zdarzenia 41.
  • Komputer jest uruchamiany ponownie i generuje identyfikator zdarzenia 41, ale wartości BugcheckCode i PowerButtonTimestamp są zerowe.

W takich przypadkach coś uniemożliwia systemowi Windows generowanie kodów błędów lub zapisywanie kodów błędów na dysku. Coś może zablokować dostęp do zapisu na dysku (jak w przypadku komputera, który nie odpowiada) lub komputer może zostać zamknięty zbyt szybko, aby napisać kody błędów, a nawet wykryć błąd.

Informacje w temacie Identyfikator zdarzenia 41 zawierają pewne informacje o tym, gdzie rozpocząć sprawdzanie problemów:

  • Identyfikator zdarzenia 41 nie jest rejestrowany lub kod sprawdzania błędu wynosi zero. To zachowanie może wskazywać na problem z zasilaniem. Jeśli zasilanie komputera zostanie przerwane, komputer może zostać zamknięty bez generowania błędu Zatrzymania. Jeśli generuje błąd Zatrzymania, może nie zakończyć zapisywania kodów błędów na dysku. Przy następnym uruchomieniu komputera może on nie rejestrować identyfikatora zdarzenia 41. Lub, jeśli tak, kod sprawdzania usterki wynosi zero. Przyczyną mogą być następujące warunki:

    • W przypadku komputera przenośnego bateria została usunięta lub opróżniona.
    • W przypadku komputera stacjonarnego komputer był odłączony lub wystąpiła awaria zasilania.
    • Zasilacz jest słaby lub uszkodzony.
  • Wartość PowerButtonTimestamp wynosi zero. Takie zachowanie może wystąpić, jeśli odłączono zasilanie od komputera, który nie odpowiadał na dane wejściowe. Przyczyną mogą być następujące warunki:

    • Proces systemu Windows zablokował dostęp do zapisu na dysku, a komputer został zamknięty przez naciśnięcie i przytrzymanie przycisku zasilania przez co najmniej cztery sekundy.
    • Odłączono zasilanie od komputera, który nie odpowiada.
  • Nie można zapisać pliku zrzutu, a wszystkie wartości to Zero. Przykład:

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

    Istnieje jednak zdarzenie o identyfikatorze 46 zarejestrowane przez volmgr: inicjowanie zrzutu awaryjnego nie powiodło się!. To zdarzenie może wystąpić, jeśli komputer został uruchomiony bez skonfigurowanego pliku zrzutu. Domyślnym plikiem zrzutu jest plik strony.

    Zrzut ekranu przedstawiający dziennik zdarzeń.

    W związku z tym w przypadku nieoczekiwanego ponownego uruchomienia i zdarzenia o identyfikatorze 41 ma wartość 0, sprawdź, czy masz identyfikator zdarzenia 46 przez volmgr. Jeśli tak, sprawdź konfigurację pliku strony. Nieoczekiwane ponowny rozruch nadal może wystąpić z powodu sprawdzania usterek, ale system nie może napisać typu sprawdzania błędów w identyfikatorze zdarzenia 41 i nie może również wygenerować zrzutu pamięci. Zobacz Zdarzenie o identyfikatorze 46 podczas uruchamiania komputera

Zazwyczaj objawy opisane w tym scenariuszu wskazują na problem sprzętowy. Aby pomóc w odizolowaniu problemu, wykonaj następujące czynności:

  • Wyłącz funkcję przetaktowania. Jeśli na komputerze włączono funkcję overclocking, wyłącz ją. Sprawdź, czy problem występuje, gdy system działa z prawidłową prędkością.
  • Sprawdź pamięć. Użyj narzędzia sprawdzania pamięci, aby określić kondycję i konfigurację pamięci. Sprawdź, czy wszystkie mikroukłady pamięci działają z taką samą prędkością i czy każdy mikroukład jest poprawnie skonfigurowany w systemie.
  • Sprawdź zasilacz. Sprawdź, czy zasilacz ma wystarczającą moc, aby odpowiednio obsłużyć zainstalowane urządzenia. Jeśli dodano pamięć, zainstalowano nowszy procesor, zainstalowano więcej dysków lub dodano urządzenia zewnętrzne, takie urządzenia mogą wymagać więcej energii niż obecne zasilanie może zapewnić spójnie. Jeśli komputer zarejestrował zdarzenie o identyfikatorze 41, ponieważ zasilanie komputera zostało przerwane, rozważ uzyskanie zasilacza awaryjnego (UPS), takiego jak zasilacz zapasowy baterii.
  • Sprawdź, czy nie ma przegrzania. Sprawdź wewnętrzną temperaturę sprzętu i sprawdź, czy nie występują składniki przegrzania.
  • Jeśli komputer jest maszyną fizyczną, mógł zostać ponownie uruchomiony przez oprogramowanie automatycznego odzyskiwania serwera (ASR), które wykryło, że maszyna nie odpowiada.
  • Jeśli system działa na maszynie wirtualnej funkcji Hyper-V i nie jest częścią środowiska klastrowanego, system mógł zostać ponownie uruchomiony przez funkcję pulsu funkcji Hyper-V. Jeśli ta funkcja jest włączona, a host nie wykryje pulsu z maszyny wirtualnej (być może dlatego, że nie odpowiada), funkcja Hyper-V ponownie uruchomi maszynę wirtualną.
  • Jeśli problem występuje w środowisku klastra funkcji Hyper-V, problem może być związany z opcją Włącz monitorowanie pulsu dla maszyny wirtualnej . Zobacz Uszkodzony plik zrzutu pamięci podczas próby uzyskania pełnego pliku zrzutu pamięci z maszyny wirtualnej działającej w środowisku klastra.
  • Jeśli problem występuje z maszyną wirtualną VMWare, może być związany z funkcją pulsu w programie VMWare lub maszyna wirtualna jest częścią klastra innej firmy.
  • Sprawdź, czy nie ma podejrzanego zdarzenia przed godziną zamknięcia (uzyskaną z identyfikatora zdarzenia 6008) zarówno w dzienniku aplikacji, jak i systemu.

Jeśli wykonasz te kontrole i nadal nie możesz wyizolować problemu, ustaw domyślną konfigurację systemu i sprawdź, czy problem nadal występuje.

Uwaga

Jeśli zostanie wyświetlony komunikat o błędzie Zatrzymania zawierający kod sprawdzania błędu, ale identyfikator zdarzenia 41 nie zawiera tego kodu, zmień zachowanie ponownego uruchomienia komputera. Aby to zrobić, wykonaj następujące kroki.

  1. Kliknij prawym przyciskiem myszy pozycję Mój komputer, a następnie wybierz pozycję Właściwości>Zaawansowane ustawienia systemowe>Zaawansowane.
  2. W sekcji Uruchamianie i odzyskiwanie wybierz pozycję Ustawienia.
  3. Wyczyść pole wyboru Automatycznie uruchom ponownie .

Więcej informacji

Szczegóły dotyczące zdarzenia o identyfikatorze 41

Błąd zdarzenia zasilania jądra 41 występuje, gdy komputer zostanie nieoczekiwanie zamknięty lub ponownie uruchomiony. Po uruchomieniu komputera z systemem Windows jest wykonywane sprawdzanie, czy komputer został zamknięty w sposób czysty. W przeciwnym razie zostanie wygenerowany komunikat o identyfikatorze zdarzenia zasilania jądra 41.

Identyfikator zdarzenia 41 służy do zgłaszania, że wystąpił coś nieoczekiwanego, co uniemożliwiło poprawne zamknięcie systemu Windows. Nie ma wystarczających informacji, aby jawnie zdefiniować, co się stało. Aby uzyskać więcej informacji, zobacz Kernel Power Event ID 41 (Identyfikator zdarzenia zasilania jądra 41 ).

  • Nazwa dziennika: System
  • Produkt: System operacyjny Windows
  • Identyfikator: 41
  • Źródło: Microsoft-Windows-Kernel-Power
  • Poziom: Krytyczny
  • Wersja: 6.1
  • Komunikat: System został uruchomiony ponownie bez uprzedniego czystego zamykania. Ten błąd może być spowodowany nieoczekiwanym zatrzymaniem przez system odpowiedzi, awarią lub utratą zasilania.

Uwaga

Czas wyświetlany w pliku evtx jest dostosowany do czasu systemu. Sprawdź strefę czasowa serwera.

  • Identyfikator zdarzenia 41: to zdarzenie wskazuje, że system Windows został ponownie uruchomiony bez całkowitego zamknięcia.
  • Identyfikator zdarzenia 1074: To zdarzenie jest rejestrowane, gdy aplikacja jest odpowiedzialna za zamknięcie lub ponowne uruchomienie systemu. Wskazuje również, kiedy użytkownik ponownie uruchomił lub zamknął system przy użyciu menu Start lub naciskając klawisze Ctrl+Alt+Del.
  • Identyfikator zdarzenia 6006: to zdarzenie wskazuje, że system Windows został odpowiednio wyłączony.
  • Identyfikator zdarzenia 6008: to zdarzenie wskazuje na nieprawidłowe lub brudne zamknięcie. Jest on rejestrowany, gdy ostatnie zamknięcie było nieoczekiwane.

Tuż przed zamknięciem shutdown.exe komputera zarejestruje zdarzenie zamknięcia w dzienniku systemu Windows przy użyciu parametru Source=User32 i identyfikatora zdarzenia 1074 wraz z dowolnym niestandardowym komunikatem & kodem przyczyny.

Dziennik zdarzeń jest jedynym sposobem na poinformowanie, że ponowne uruchomienie wyzwalane z shutdown.exe jest oczekujące. Zdarzenie rejestruje również nazwę użytkownika oraz datę i godzinę shutdown wydania polecenia.

W przypadku ponownego shutdown.exe uruchomienia serwera proces zamykania zwykle pozwala na 30 sekund, aby upewnić się, że każda uruchomiona usługa ma czas na zatrzymanie. Usługi są zamykane w kolejności alfabetycznej. Ręczne zatrzymywanie usług w określonej kolejności z NET STOP lub SC może być nieco szybsze.

Plik stanu rozruchu (z wewnętrznego systemu Windows 6.)

System Windows używa pliku stanu rozruchu (%SystemRoot%\Bootstat.dat), aby zarejestrować fakt, że przebiega on przez różne etapy cyklu życia systemu, w tym uruchamianie i zamykanie.

Dzięki temu menedżer rozruchu, moduł ładujący systemu Windows i narzędzie naprawy uruchamiania mogą wykrywać nieprawidłowe zamknięcie lub niepowodzenie czystego zamykania, aby zaoferować użytkownikowi opcje odzyskiwania i rozruchu diagnostycznego, takie jak Ostatnia znana dobra i Tryb awaryjny. Ten plik binarny zawiera informacje, za pośrednictwem których system zgłasza powodzenie następujących faz cyklu życia systemu:

  • Rozruch (definicja pomyślnego rozruchu jest taka sama jak ta używana do określania stanu Ostatni znany dobry, który został opisany wcześniej)
  • Zamknięcia
  • Wznawianie z hibernacji lub wstrzymanie

Plik stanu rozruchu wskazuje również, czy wykryto problem podczas ostatniej próby rozruchu systemu operacyjnego przez użytkownika, a także wyświetlone opcje odzyskiwania wskazujące, że użytkownik został poinformowany o problemie i podjął działania. Interfejsy API biblioteki środowiska uruchomieniowego (Rtl) w ntdll.dll zawierają interfejsy prywatne używane przez system Windows do odczytu i zapisu w pliku. Podobnie jak bcd, nie może być edytowany przez użytkowników.

Informacje o zamknięciu

Po zainicjowaniu zamknięcia system Windows wysyła komunikat WM_QUERYENDSESSION do wszystkich uruchomionych aplikacji, które mają wątek interfejsu użytkownika. Ten komunikat prosi aplikację o zapisanie niezapisanych danych i pomyślne zakończenie działania. Jeśli aplikacja nie odpowiada na komunikat w określonym terminie, system Windows wysyła do aplikacji komunikat WM_ENDSESSION, który natychmiast przerywa działanie aplikacji.

Jeśli wszystkie aplikacje reagują na komunikat WM_QUERYENDSESSION i kończenie pomyślnie, system Windows rejestruje czyste zdarzenie zamknięcia w dzienniku zdarzeń systemu. Jeśli jakakolwiek aplikacja nie odpowiada na komunikat lub kończy się nietypowo, system Windows rejestruje zdarzenie brudnego zamknięcia w dzienniku zdarzeń systemu.

Nieoczekiwane zamknięcia są głównie spowodowane przez składniki spoza systemu operacyjnego.

Brudne zamykanie jest, gdy system komputerowy jest wyłączony bez przechodzenia przez odpowiedni proces zamykania. Może się tak zdarzyć, gdy zasilanie zostanie nagle odcięte lub gdy komputer zostanie zmuszony do wyłączenia, przytrzymując przycisk zasilania. Brudne zamknięcie może powodować utratę lub uszkodzenie danych, a także może prowadzić do problemów z rozruchem.

Rejestr liczby zabrudzonych zamknięć jest kluczem rejestru w rejestrze systemu Windows, który jest używany do śledzenia, ile razy system komputerowy został zamknięty bez przechodzenia przez właściwy proces zamykania. Ten klucz może być przydatny podczas rozwiązywania problemów z rozruchem, aby określić, czy system został wyłączony niepoprawnie.

Możesz również wyczyścić wszystkie wartości (takie jak DirtyShutdown, LastAliveStamp, TimeStampInterval) w następującym kluczu rejestru: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability. Może to zapobiec wyświetlaniu monitora zdarzeń zamykania po nieoczekiwanym zamknięciu.