0v3r10rd sub 4.4.2009 15:20

Svakome se dogodio famozni BSOD ( Blue screen of death, Blue screen of doom, iliti najtočnije stop error ). U ovoj temi ću pokušati pojasniti što znači BSOD, zbog čega se događa, te ukratko kako utvrditi razlog rušenja OS-a.

BSOD, iliti rušenje Windowsa (prekidanje izvršenja i prikaz plavog ekrana), dešava se zbog jednog od sljedećih razloga:

  • pokretač uređaja (driver) ili funkcija operacijskog sustava koja se izvršava u kernel modu čini nepodržanu funkciju, kao na primjer kršenje memorijskog pristupa (kada primjera proces, driver ili funkcija pokušavaju pisati u read-only dio memorije ili pokušavaju čitati nemapiranu adresu unutar memorije)
  • hardverska greška
  • pokretač uređaja (driver) izričito pozove sistemsku funkciju KeBugCheckEX zato što utvrdi unutarnje stanje greške (utvrdi kako bi daljnji rad ugrozio podatke)
  • greška u memoriji koja stopira (pauzira) I/O izvršenje (Input/Output) – IRQL crash dumpovi



BSOD koji se događa u navedenim situacijama zaustavlja rad operacijskog sustava i radi (po zadanom u Windowsima 2000, XP, Vista. Windows 7 beta po zadanom ima kernel memory dump) small dump memorije (točnije ispis greške koja je uzrokovala BSOD - izbacuje dio sadržaja memorije u datom trenutku s opisom greške).

Kako je navedeno, greške zbog kojih dolazi mogu biti od strane drivera nekog uređaja, pogrešnog poziva funkcije kernelu (jezgri OS-a) od neke biblioteke (*.dll), sistemske datoteke (*.sys), procesa koji se izvršavaju u kernel modu, pogrešnog pristupa nekoj memorijskoj adresi (ovdje se misli na radnu memoriju).

Analiza samog crash dumpa može nam dati približan odgovor što je točno prouzročilo neku grešku ( http://support.microsoft.com/kb/315263 ).

Dump se može analizirati posebnim alatima kao što je Microsoftov debugging tools (http://www.microsoft.com/whdc/devtools/debugging/default.mspx ). Osnovni prikaz greške (sam plavi ekran) NE MOŽE nam dati odgovor što je prouzročilo rušenje, jer je za jedan tip greške (primjer DRIVER_IRQL_NOT_LESS_OR_EQUAL) moguć veliki broj različitih rješenja (može biti do neispravne memorije, neispravnog pristupa funkciji kernela od primjerice antivirusnog softvera, vatrozida, mrežne kartice, ili čak i od virusa, rootkita, trojanca – you name it...)

Kako bi analizirali crash dump potrebno nam je imati minidump od samog rušenja. Minidump (postoje i drugi tipovi, no ovaj nam najviše može koristiti, a i najčešći je oblik dumpa – postavljen je po zadanom u windowsima) ako nam nije postavljen podešavamo na slijedeći način:

Start > run > sysdm.cpl klik na OK
Dobijete applet system properties, odaberete tab Advanced, pod odjeljkom Startup and recovery kliknete na Settings, dobijete applet Startup and recovery (vidi slika 1.)
Kako bi dobili memory dump potrebno je pod write debugging information odabrati Small memory dump (64 KB) (na 64-bitnim operacijskim Small memory dump (128 KB) ).
Po zadanom memory dump se zapisuje u mapu %SystemRoot%\Minidump (što označava obično C:\WINDOWS\minidump )

Kako bi napravili analizu dumpa potrebno je imati instalirane Windows debugging tools ovisno o operacijskom sustavu kojeg imate, i simbole za windowse koje koristite. U mom primjeru to su debugging tools 64-bitna verzija (Native – postoji i posebna verzija za Intel Itanium arhitekturu), te simboli za Windows XP 64-bitnu arhitekturu (Windows Server 2003 with Service Pack 2 x64-based retail symbols – Windows XP 64-bit je zasnovan na Server 2003 jezgri). Napominjem da je simbole moguće zadati i da se učitavaju sa Microsoftovih stranica, daklem simbole skidajte opcionalno (vidi pojašnjenje kako koristiti Windows symbol server dolje)

Nakon što ste instalirali debugger i simbole potrebno je debugger podesiti Pokrenete Windbg (Start > Programs > Debugging Tools for Windows > Windbg).

Po pokretanju programa odaberete opciju File > Symbol File Path (slika 2.), te ako ste instalirali simbole s tipkom Browe ih nađite (zadano C:\WINDOWS\Symbols ), ili u slučaju da ih niste instalirali već želite koristiti Symbol server koristite slijedeći primjer SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols -  (Primjer putanje C:\WINDOWS\symbols je proizvoljan i označava lokalno mjesto gdje želite spremiti simbole, i da zvjezdice su obavezne) detaljnije pročitajte ovdje (http://support.microsoft.com/kb/311503)

Kliknite na OK. Spremni ste za debugiranje crash dumpa... U windbg kliknite File > Open Crash dump, minidump nađite u mapi C:\WINDOWS\minidump i otvorite ga. Windbg će napraviti osnovnu analizu dumpa. Primjetite u Windbg prozoru !analyze -v opciju (Slika 4.) kliknite na nju, ili ručno upišite !analyze -v, te pritisnite Enter. Pojaviti će Vam se verbose ispis minidumpa (opširniji). Na osnovu opširnijeg ispisa moguće je utvrditi razlog minidumpa. U datom primjeru je BSOD (IRQL_NO_LESS...) prouzročio web modul Avasta (aswMon2.SYS – Slika 5.).

Prilikom analize minidump datoteka potrebno je otvoriti par dumpova te ih usporediti, te u konačnici korištenjem iskustva i dedukcije TOČNO utvrditi problem.

Situacija iz primjera je konkretno bila vezana uz usb ADSL modem zbog kojeg je dolazilo do rušenja, što se manifestiralo kroz Avastov web modul i (analizom i drugih crash dumpova) kernel OS-a.

Nadam se da je ova tema bar donekle (teško je dati kratki i jednostavan opis što je BSOD) pojasnila detalje vezane uz BSOD i kako utvrditi razloge zašto do njega dolazi.

 

EDIT1: Za pojednostavljeno gledanje dumpa koristite Blue screen view kako je ekipa u postovima već napomenula.

 

EDIT2: Za rješavanje problema oko BSOD-a OBAVEZNO stavljate info o konfiguraciji pod Moj PC ili stavite u post tu informaciju. Nemoguće je dati dobru analizu problema bez informacija o konfiguraciji (sa svim priključenim perfierijama molim), te OBAVEZNO opišite i u kojem trenutku vam se dogodio BSOD, točnije, što ste u tom trenutku radili na računalu, u kojem programu... Također ako je računalo overclockano taj info je također vrlo značajan...

Kristyans ned 5.4.2009 18:12

Odlican tutorial,stavio u bookmark,nadam se da mi nece tako skoro trebati,mozda u top5 tekstova na ovom forumu po konkretnoj primjeni jer BSOD smo svi vec vidjeli .

Obicno probleme s BSOD rjesavam "napikavanjem" i "od oka",ovo je nesto konkretno sto moze pomoci,premda sam i do sada ima srece s popravcima.

Uglavnom hvala na trudu sto si ovo sastavio,kada bi bar ostatak foruma bio ovako konkretan,od spama ne mozes disati.

F1-IVO ned 5.4.2009 18:14
0v3r10rd kaže...

Svakome se dogodio famozni BSOD (Blue screen of death, Blue screen of doom, iliti najtočnije crash dump). U ovoj temi ću pokušati pojasniti što znači BSOD, zbog čega se događa, te ukratko kako utvrditi razlog rušenja OS-a.

Odlicno objasnjeno.Svaka castCool
Mitch sri 6.5.2009 21:19
0v3r10rd kaže...

Nadam se da je ova tema bar donekle (teško je dati kratki i jednostavan opis što je BSOD) pojasnila detalje vezane uz BSOD i kako utvrditi razloge zašto do njega dolazi.

 Super si objasnio ali imam pitanje
Kako riješiti BSOD ?
0v3r10rd sub 9.5.2009 15:54

Najkraće rečeno - analizom crash dumpa...

 

Kako ti je objašnjeno u tutorijalu, tako analiziraj minidump, vidi koji driver, proces ili ino ti radi problem i eksperimentiraj. BSOD-ovi se uglavnom dešavaju zbog greške u driverima ili u programima. BSOD se zna pojavljivati i zbog virusa. Greška može biti i u hardveru.

 

Ako imaš problema s analizom (nisi siguran što se tu zbiva), postaj minidump, daj link na njega, pogledam ga, pa ti možda mogu pomoći kojim savjetom.

Mitch uto 19.5.2009 12:58
0v3r10rd kaže...

Najkraće rečeno - analizom crash dumpa...

 

Kako ti je objašnjeno u tutorijalu, tako analiziraj minidump, vidi koji driver, proces ili ino ti radi problem i eksperimentiraj. BSOD-ovi se uglavnom dešavaju zbog greške u driverima ili u programima. BSOD se zna pojavljivati i zbog virusa. Greška može biti i u hardveru.

 

Ako imaš problema s analizom (nisi siguran što se tu zbiva), postaj minidump, daj link na njega, pogledam ga, pa ti možda mogu pomoći kojim savjetom.

 THX
Stvarno dobar tutorijal treba ga stavit u BUG ;-)
xilC sri 20.5.2009 20:15
0v3r10rd kaže...

Najkraće rečeno - analizom crash dumpa...

 

Kako ti je objašnjeno u tutorijalu, tako analiziraj minidump, vidi koji driver, proces ili ino ti radi problem i eksperimentiraj. BSOD-ovi se uglavnom dešavaju zbog greške u driverima ili u programima. BSOD se zna pojavljivati i zbog virusa. Greška može biti i u hardveru.

 

Ako imaš problema s analizom (nisi siguran što se tu zbiva), postaj minidump, daj link na njega, pogledam ga, pa ti možda mogu pomoći kojim savjetom.

 Gdje mogu pronaći minidump?

EDIT: Našao.
Programko pon 25.5.2009 18:38
Mitch kaže...
0v3r10rd kaže...

Nadam se da je ova tema bar donekle (teško je dati kratki i jednostavan opis što je BSOD) pojasnila detalje vezane uz BSOD i kako utvrditi razloge zašto do njega dolazi.

 Super si objasnio ali imam pitanje
Kako riješiti BSOD ?
 Nekoliko godina u assembleru i win32 apiju, da se  nauči  čitati dump u debbageru.Smijeh e onda se možete sami riješiti BSOD. Inaće Dump služi da bi se poslao progrmerima na analizu. Prosječan korisnik s njime ne može am baš ništa.
s1m0n uto 26.5.2009 09:53

Programko kaže...
 Nekoliko godina u assembleru i win32 apiju, da se  nauči  čitati dump u debbageru.Smijeh e onda se možete sami riješiti BSOD. Inaće Dump služi da bi se poslao progrmerima na analizu. Prosječan korisnik s njime ne može am baš ništa.
 Može se i bez toga riješiti neke BSOD-ove. Sve što treba je malo znanja engleskog i koji se driveri i aplikacije koriste.
Inaće odličan tekst! Uz analizu dumpa velika pomoć je i pregledavanja evenata...

0v3r10rd uto 26.5.2009 11:30

Programko kaže...
 Nekoliko godina u assembleru i win32 apiju, da se  nauči  čitati dump u debbageru.Smijeh e onda se možete sami riješiti BSOD. Inaće Dump služi da bi se poslao progrmerima na analizu. Prosječan korisnik s njime ne može am baš ništa.
 I prosječan korisnik se može poslužiti minidumpom kako bi riješio problem. Nije mu nužno znati pročitati dump u potpunosti, dovoljno je (u 99% slučajeva), vidjeti koji procesi su prouzročili dump, i uz malo analize i korištenja mozga i točno utvrditi u čemu je problem. Samo na ovom forumu sam već riješio desetak BSOD-ova na vrlo jednostavan način, korištenjem osnovne informacije iz dumpa.
Istina dump služi i programerima, kako bi utvrdili koji dio njihovog programa je prouzročio problem... Al to je dio neke druge priče...

Baotica uto 2.6.2009 09:39

napravio sam sve po tvojim instrukcijama, ali debuger mi stalno javlja da koristim krive simbole, iako sam za svoju verziju windoza isprobao oba dostupna paketa sa microsoftovih stranica (win7 7100 RC 64bit).I povrh toga mi javlja da ne može loadati ntoskrnl file jer stamp ne valja.

Baotica sri 3.6.2009 08:59
0v3r10rd kaže...

Pretpostavljam da si skinuo pravu verziju debugging toolsa (http://msdl.microsoft.com/download/symbols/debuggers/dbg_amd64_6.11.1.404.msi) i simbola za Windows 7 x64 RC (http://download.microsoft.com/download/8/7/6/876ECDEA-C26F-4540-A97C-52A5A7861448/Windows_Winmain.7100.0.090421-1700.AMD64FRE.Symbols.msi) ?!

 

Nisam još radio debugging na sedmici... no sve bi trebalo raditi kao i na ostalim operacijskim...

 ma skinuo sam točno te fajlove.I ne, ne radi.Stalno mi javlja da su krivi simboli.
kemal_r uto 23.6.2009 01:41
macak kaže...
kemal_r kaže...

Mozete li mi pomoci sa mojim plavim ekranom ? (slika)

Da sam na tvom mjestu, prvo bih napravio Full scan sa Spyware Doctorom i nekim antivirusom (ako nemaš nijedan instaliran, instaliraj Aviru).

Već sam to uradio sa KIS 2009, Spyware Terminator i Ad-Aware 2008 i nema ništa...

Lazarus Long uto 23.6.2009 02:03
kemal_r kaže...

Mozete li mi pomoci sa mojim plavim ekranom ? (slika)

  Moze

 

Prvo pronadi i disejblaj MS Windows Live update for Messenger Live (ako je u autorunu,iskljuci ga privremeno) run--msconfig...potrazi

 

Drugo uzrok moze biti Family Safety Filter Driver (TDI) (dobije se u paketu zajedno sa messingerom) to se desava kada ne pazis sta taj messinger nudi kada hoce da se instalira po prvi put.

 

Trece,ako ovo ne pomogne onda deinstaliraj Messinger ili komponentu Family Safety (ili kako se vec zove)

kemal_r uto 23.6.2009 02:18
Lazarus Long kaže...
kemal_r kaže...

Mozete li mi pomoci sa mojim plavim ekranom ? (slika)

  Moze

 

Prvo pronadi i disejblaj MS Windows Live update for Messenger Live (ako je u autorunu,iskljuci ga privremeno) run--msconfig...potrazi

 

Drugo uzrok moze biti Family Safety Filter Driver (TDI) (dobije se u paketu zajedno sa messingerom) to se desava kada ne pazis sta taj messinger nudi kada hoce da se instalira po prvi put.

 

Trece,ako ovo ne pomogne onda deinstaliraj Messinger ili komponentu Family Safety (ili kako se vec zove)

A po čemu si zaključio da je do messengera?

xilC pon 20.7.2009 15:19

Evo crash dump...

 


Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\WINDOWS\Minidump\Mini072009-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available

Symbol search path is: C:\WINDOWS\Symbols
Executable search path is:
Unable to load image ntoskrnl.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntoskrnl.exe
Windows XP Kernel Version 2600 (Service Pack 2) UP Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Machine Name:
Kernel base = 0x804d7000 PsLoadedModuleList = 0x805531a0
Debug session time: Mon Jul 20 08:52:17.859 2009 (GMT+2)
System Uptime: 0 days 1:54:48.429
Unable to load image ntoskrnl.exe, Win32 error 0n2
*** WARNING: Unable to verify timestamp for ntoskrnl.exe
Loading Kernel Symbols
...............................................................
................................................................
.....................
Loading User Symbols
Loading unloaded module list
.............
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 10000050, {bad0b148, 0, 805af54f, 2}


Could not read faulting driver name
Probably caused by : hardware ( nt!KiUnexpectedInterrupt+9 )

Followup: MachineOwner
---------

kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced.  This cannot be protected by try-except,
it must be protected by a Probe.  Typically the address is just plain bad or it
is pointing at freed memory.
Arguments:
Arg1: bad0b148, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: 805af54f, If non-zero, the instruction address which referenced the bad memory
    address.
Arg4: 00000002, (reserved)

Debugging Details:
------------------


Could not read faulting driver name

READ_ADDRESS:  bad0b148

FAULTING_IP:
nt!KiUnexpectedInterrupt+9
805af54f 833800          cmp     dword ptr [eax],0

MM_INTERNAL_CODE:  2

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0x50

PROCESS_NAME:  System

MISALIGNED_IP:
nt!KiUnexpectedInterrupt+9
805af54f 833800          cmp     dword ptr [eax],0

LAST_CONTROL_TRANSFER:  from 805afa1e to 805af54f

STACK_TEXT: 
b5886d60 805afa1e 887b5da0 00000001 80558920 nt!KiUnexpectedInterrupt+0x9
b5886d64 887b5da0 00000001 80558920 8055a1c0 nt!KiSwapProcess+0x86
WARNING: Frame IP not in any known module. Following frames may be wrong.
b5886dac 805c4a28 00000000 00000000 00000000 0x887b5da0
b5886ddc 80540fa2 80533cd0 80000000 00000000 nt!ExpSmallPagedPoolLookasideLists+0x928
00000000 00000000 00000000 00000000 00000000 nt!MiDeleteValidAddress+0x712


STACK_COMMAND:  kb

FOLLOWUP_IP:
nt!KiUnexpectedInterrupt+9
805af54f 833800          cmp     dword ptr [eax],0

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  nt!KiUnexpectedInterrupt+9

FOLLOWUP_NAME:  MachineOwner

IMAGE_NAME:  hardware

DEBUG_FLR_IMAGE_TIMESTAMP:  0

MODULE_NAME: hardware

FAILURE_BUCKET_ID:  IP_MISALIGNED

BUCKET_ID:  IP_MISALIGNED

Followup: MachineOwner
---------

kd> lmvm hardware
start    end        module name

0v3r10rd pon 20.7.2009 17:10

Nešto nisi dobro podesio u debuggeru. Možda krivi simboli?! Ako koristiš XP SP2, moraš skinut simbole za tu verziju, isto za SP3. Ne vidi se koji driver je napravio BSOD.

 

Ili stavi minidump datoteke negdje na web (rapidshare primjera) pa bacim oko...

0v3r10rd pon 20.7.2009 18:23

Hm,

 

dešava se zbog greške u sistemskoj datoteci (ntkrnlpa.exe). Ne mogu te uputiti direktno na problem, no on ti je u smjeru greške u memoriji, možda neki noviji hardver, ili greška na disku. Pokušaj provjeriti disk s chkdsk /f /r opcijama (otvori command promt, upiši "chkdsk C: /f /r" bez navodnika naravno).

 

Dodatno - jesi li instalirao neki novi komad hardvera u zadnje vrijeme? Koji antivirusni softver koristiš? Provjeri računalo na malware (malwarebytes je dobar izbor).

 

Pokušaj eksperimentirati s memorijom - ako imaš više od jednog modula ispitaj svaki sam - vidi kako računalo reagira. Testiraj memoriju s memtestom. Ako imaš jedan modul memorije, pokušaj ga staviti u drugi slot...

 

Windowsi su ti SP2? Možda je i do toga.

 

Eto, možda pomogne.

 

 

Hyperion pet 31.7.2009 00:15
JaKakam kaže...

Probably caused by : nvlddmkm.sys ( nvlddmkm+e1140 )

Followup: MachineOwner..............

 

to su driveri grafičke kolko znam... e sad kak to popravit ?

Unninstaliraš drivere, restart, pobrišeš ostatke sa driver cleanerom ili driver sweeperom, instaliraš najnovije.

JaKakam pet 31.7.2009 00:28
Hyperion kaže...
JaKakam kaže...

Probably caused by : nvlddmkm.sys ( nvlddmkm+e1140 )

Followup: MachineOwner..............

 

to su driveri grafičke kolko znam... e sad kak to popravit ?

Unninstaliraš drivere, restart, pobrišeš ostatke sa driver cleanerom ili driver sweeperom, instaliraš najnovije.

al najnoviji i jesu

Hyperion pet 31.7.2009 00:36
JaKakam kaže...
Hyperion kaže...
JaKakam kaže...

Probably caused by : nvlddmkm.sys ( nvlddmkm+e1140 )

Followup: MachineOwner..............

 

to su driveri grafičke kolko znam... e sad kak to popravit ?

Unninstaliraš drivere, restart, pobrišeš ostatke sa driver cleanerom ili driver sweeperom, instaliraš najnovije.

al najnoviji i jesu

Svejedno napravi ovo.

 

Ako opet bude downloadj starije ili neke pouzdane koji su ti radili.

 

 

BTW: koja grafička u pitanju? Provjeri temperature u loadu, može biti i zbog toga ili lošeg napajanja,ram-a...