Udostępnij za pośrednictwem


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

Uwaga 16.

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

Jeśli komputer zostanie nieoczekiwanie zamknięty, system Windows rejestruje zdarzenie o identyfikatorze 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 prawidłowe 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 41 zdarzeń.

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

Jak używać zdarzenia o identyfikatorze 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ż rozważyć, co miało miejsce w momencie nieoczekiwanego zamknięcia (na przykład zasilanie nie powiodło się). Skorzystaj z informacji w tym artykule, aby zidentyfikować podejście do rozwiązywania problemów, które jest odpowiednie dla Twoich okoliczności:

  • 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 zostanie uruchomiony ponownie, ponieważ został naciśnięty i zatrzymany przycisk zasilania
  • Scenariusz 3: Komputer nie odpowiada lub losowo uruchamia się ponownie, a identyfikator zdarzenia 41 nie jest rejestrowany lub wpis o identyfikatorze zdarzenia 41 wyświetla wartości kodu błędu zera

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

Po zamknięciu lub ponownym uruchomieniu komputera z powodu błędu zatrzymania system Windows zawiera dane błędu zatrzymania w identyfikatorze zdarzenia 41 w ramach większej liczby danych zdarzenia. Te informacje zawierają kod błędu zatrzymania (nazywany również kodem sprawdzania błędów), jak pokazano w poniższym przykładzie:

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

Uwaga 16.

Identyfikator zdarzenia 41 zawiera kod sprawdzania błędów w formacie dziesiętny. Większość dokumentacji opisujących kody sprawdzania błędów odnosi się do kodów jako wartości szesnastkowych zamiast wartości dziesiętnych. Aby przekonwertować wartość dziesiętną na szesnastkowy, 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 grudzień jest wyróżniony.
  4. Użyj klawiatury, aby wprowadzić wartość dziesiętną kodu sprawdzania błędów.
  5. Po lewej stronie kalkulatora wybierz pozycję Szesnastkowy.
    Wartość wyświetlana przez kalkulator jest teraz kodem szesnastkowym.

Po przekonwertowaniu kodu sprawdzania błędów na format szesnastkowy sprawdź, czy oznaczenie "0x" następuje po ośmiu cyfrach (czyli część kodu po "x" zawiera wystarczającą liczbę zer, aby wypełnić osiem cyfr). Na przykład 0x9F jest zwykle udokumentowana jako 0x0000009f, a 0xA jest udokumentowana jako 0x0000000A. W przypadku przykładowych danych zdarzenia w tym artykule wyrażenie "159" konwertuje na 0x0000009f.

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

Scenariusz 2. Komputer zostanie uruchomiony ponownie, ponieważ został naciśnięty i zatrzymany przycisk zasilania

Ponieważ ta metoda ponownego uruchamiania komputera zakłóca operację zamykania systemu Windows, zalecamy użycie tej metody tylko wtedy, gdy nie ma alternatywy. Na przykład może być konieczne użycie tego podejścia, jeśli komputer nie odpowiada. Po ponownym uruchomieniu komputera, naciskając i trzymając przycisk zasilania, komputer rejestruje zdarzenie o identyfikatorze 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ż wyszukiwanie pomocy przy użyciu słów kluczowych, takich jak "hang", "responding" lub "blank screen".

Scenariusz 3. Komputer nie odpowiada lub losowo uruchamia się ponownie, 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:

  • Należy wyłączyć zasilanie komputera, który nie odpowiada, a następnie ponownie uruchomić komputer.
    Aby sprawdzić, czy komputer nie odpowiada, naciśnij Caps lock na klawiaturze. Jeśli po naciśnięciu Caps lock na klawiaturze nie zmieni się Caps lock, komputer może nie odpowiadać (znany również jako twardy powieszenie).
  • Komputer zostanie uruchomiony ponownie, ale nie generuje zdarzenia o identyfikatorze 41.
  • Komputer uruchamia się ponownie i generuje zdarzenie o identyfikatorze 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 (tak jak w przypadku komputera, który nie odpowiada) lub komputer może zamknąć zbyt szybko, aby zapisać kody błędów, a nawet wykryć błąd.

Informacje w identyfikatorze zdarzenia 41 zawierają pewne wskazówki dotyczące tego, gdzie rozpocząć sprawdzanie problemów:

  • Identyfikator zdarzenia 41 nie jest rejestrowany lub kod sprawdzania usterek wynosi zero. To zachowanie może wskazywać na problem z zasilaniem. Jeśli zasilanie komputera zostanie przerwane, komputer może zostać wyłączony bez generowania błędu zatrzymania. Jeśli wygeneruje błąd zatrzymania, może nie zakończyć zapisywania kodów błędów na dysku. Przy następnym uruchomieniu komputera może nie być rejestrowane zdarzenie o identyfikatorze 41. Lub, jeśli tak, kod sprawdzania usterek jest zerowy. 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 został odłączony lub wystąpiła awaria zasilania.
    • Zasilanie jest zaniżone lub wadliwe.
  • Wartość parametru PowerButtonTimestamp ma wartość zero. To zachowanie może wystąpić, jeśli odłączono zasilanie 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 komputera, który nie odpowiada.
  • Nie można zapisać pliku zrzutu i wszystkie wartości to Zero. Na 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 stronicowania.

    Zrzut ekranu przedstawiający dziennik zdarzeń.

    W związku z tym w przypadku nieoczekiwanego ponownego uruchomienia i identyfikator zdarzenia 41 ma wszystkie wartości jako 0, sprawdź, czy masz zdarzenie o identyfikatorze 46 przez volmgr. Jeśli tak, sprawdź konfigurację pliku stronicowania. Nieoczekiwane ponowne uruchomienie mogło się jeszcze zdarzyć z powodu usterki, ale system nie może zapisać typu czeku w zdarzeniu o identyfikatorze 41 i nie mógł 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 wyizolować problem, wykonaj następujące czynności:

  • Wyłącz przekręcanie. Jeśli na komputerze włączono przekręcanie, wyłącz go. Sprawdź, czy problem występuje, gdy system działa z prawidłową szybkością.
  • Sprawdź pamięć. Użyj modułu sprawdzania pamięci, aby określić kondycję i konfigurację pamięci. Sprawdź, czy wszystkie mikroukłady pamięci działają z taką samą szybkością i czy każdy mikroukład jest poprawnie skonfigurowany w systemie.
  • Sprawdź zasilanie. 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ększej ilości 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ź przegrzanie. Sprawdź wewnętrzną temperaturę sprzętu i sprawdź, czy nie ma żadnych składników przegrzanych.
  • Jeśli komputer jest maszyną fizyczną, mogło zostać uruchomione ponownie przez oprogramowanie automatycznego odzyskiwania serwera (ASR), które wykryło, że maszyna nie odpowiada.
  • Jeśli system jest uruchomiony na maszynie wirtualnej funkcji Hyper-V i nie jest częścią środowiska klastrowanego, system mógł zostać uruchomiony ponownie 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 uruchomi ponownie 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 uruchomionej w środowisku klastra.
  • Jeśli problem występuje z maszyną wirtualną VMWare, może to być związane z funkcją pulsu w programie VMWare lub jest częścią klastra innej firmy.
  • Sprawdź wszelkie podejrzane zdarzenia przed czasem zamknięcia (uzyskanym z identyfikatora zdarzenia 6008) w dzienniku aplikacji i systemu.

Jeśli wykonasz te testy i nadal nie możesz odizolować problemu, ustaw system na jego domyślną konfigurację i sprawdź, czy problem nadal występuje.

Uwaga 16.

Jeśli zostanie wyświetlony komunikat o błędzie Zatrzymaj zawierający kod sprawdzania usterek, ale identyfikator zdarzenia 41 nie zawiera tego kodu, zmień zachowanie ponownego uruchamiania komputera. W tym celu 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ółowe informacje o zdarzeniu o identyfikatorze 41

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

Zdarzenie o identyfikatorze 41 służy do zgłaszania, że wystąpił nieoczekiwany błąd uniemożliwiający prawidłowe zamknięcie systemu Windows. Być może nie ma wystarczających informacji, aby jawnie zdefiniować, co się stało. Aby uzyskać więcej informacji, zobacz Zdarzenie zasilania jądra o identyfikatorze 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ł ponownie uruchomiony bez uprzedniego zamknięcia. Ten błąd może być spowodowany nieoczekiwanym wstrzymaniem odpowiedzi, awarią lub utratą zasilania przez system.

Uwaga 16.

Czas wyświetlany w pliku evtx jest dostosowywany do czasu systemu. Sprawdź strefę czasową serwera.

  • Identyfikator zdarzenia 41: To zdarzenie wskazuje, że system Windows został uruchomiony ponownie 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 Ctrl+Alt+Del.
  • Identyfikator zdarzenia 6006: To zdarzenie wskazuje, że system Windows został odpowiednio wyłączony.
  • Identyfikator zdarzenia 6008: To zdarzenie wskazuje nieprawidłowe lub zanieczyszczone zamknięcie. Jest rejestrowany, gdy ostatnie zamknięcie było nieoczekiwane.

Tuż przed zamknięciem shutdown.exe komputera zapisze zdarzenie zamknięcia w dzienniku systemu Windows ze źródłem=Użytkownik32 i identyfikatorem zdarzenia 1074 wraz z dowolnym niestandardowym kodem komunikatu i przyczyny.

Dziennik zdarzeń jest jedynym sposobem, aby poinformować, że ponowne uruchomienie wyzwalane z shutdown.exe oczekuje. Zdarzenie rejestruje również nazwę użytkownika oraz datę i godzinę wystawienia shutdown polecenia.

W przypadku ponownego shutdown.exe uruchomienia serwera proces zamykania zwykle umożliwia 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 NET STOP lub SC może być nieco szybsze.

Plik stanu rozruchu (z wewnętrznych okien 6)

System Windows używa pliku stanu rozruchu (%SystemRoot%\Bootstat.dat), aby zarejestrować fakt, że przechodzi 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 do naprawy uruchamiania wykrywają nietypowe zamykanie lub nie można zamknąć w sposób czysty, w celu zaoferowania opcji odzyskiwania i rozruchu diagnostycznego użytkownika, takich jak Ostatnie znane dobre i tryb awaryjny. Ten plik binarny zawiera informacje, za pomocą których system zgłasza powodzenie następujących faz cyklu życia systemu:

  • Rozruch (definicja pomyślnego rozruchu jest taka sama jak ta, która została użyta do określenia ostatniego znanego stanu dobrego, który został opisany wcześniej)
  • Zamknij
  • Wznawianie z hibernacji lub wstrzymanie

Plik stanu rozruchu wskazuje również, czy problem został wykryty podczas ostatniej próby uruchomienia systemu operacyjnego przez użytkownika i pokazano opcje odzyskiwania wskazujące, że użytkownik został poinformowany o problemie i podjął akcję. 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żna go edytować przez użytkowników.

Informacje o zamykaniu

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 jej zakończenie w sposób bezproblemowy. Jeśli aplikacja nie odpowiada na komunikat w określonym limicie czasu, system Windows wysyła do aplikacji komunikat WM_ENDSESSION, który natychmiast kończy działanie aplikacji.

Jeśli wszystkie aplikacje odpowiadają na komunikat WM_QUERYENDSESSION i zakończą się bezpiecznie, system Windows rejestruje czyste zdarzenie zamknięcia w dzienniku zdarzeń systemu. Jeśli jakakolwiek aplikacja nie odpowiada na komunikat lub kończy się nieprawidłowo, system Windows rejestruje zdarzenie zamknięcia brudnego w dzienniku zdarzeń systemu.

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

Brudne zamknięcie jest wtedy, gdy system komputerowy jest zamykany bez przechodzenia przez właściwy proces zamykania. Może się to zdarzyć, gdy zasilanie jest nagle odcięte lub gdy komputer jest zmuszony do wyłączenia, przytrzymując przycisk zasilania. Brudne zamknięcie może spowodować utratę lub uszkodzenie danych, co może również prowadzić do problemów z rozruchem.

Brudny rejestr liczby zamykania jest kluczem rejestru w rejestrze systemu Windows, który jest używany do śledzenia liczby 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 w celu określenia, czy system został nieprawidłowo wyłączony.

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 pomóc zapobiec pojawieniu się monitora zdarzeń zamknięcia po nieoczekiwanym zamknięciu.