none
ntoskrnl.exe 关机蓝屏 RRS feed

  • 问题

  • 修改ip地址和计算机名后关机蓝屏,windbg分析发现好像是ntoskrnl.exe导致的,我用md5验证一下,从\i386\sp2.cab中解出来的ntoskrnl.exe和system32\ntoskrnl.exe的md5值不一样,求助是那里出了问题,原因是什么,希望高手帮助,windbg分析如下:


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


    Loading Dump File [E:\Mini070908-01.dmp]
    Mini Kernel Dump File: Only registers and stack trace are available

    Symbol search path is: E:\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
    Kernel base = 0x804d5000 PsLoadedModuleList = 0x80558620
    Debug session time: Wed Jul  9 23:45:59.421 2008 (GMT+8)
    System Uptime: 0 days 0:01:39.011
    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 1000000A, {0, 2, 1, 804d9c9a}

    Probably caused by : ntoskrnl.exe ( nt!KiReadyThread+38 )

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

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

    IRQL_NOT_LESS_OR_EQUAL (a)
    An attempt was made to access a pageable (or completely invalid) address at an
    interrupt request level (IRQL) that is too high.  This is usually
    caused by drivers using improper addresses.
    If a kernel debugger is available get the stack backtrace.
    Arguments:
    Arg1: 00000000, memory referenced
    Arg2: 00000002, IRQL
    Arg3: 00000001, bitfield :
     bit 0 : value 0 = read operation, 1 = write operation
     bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
    Arg4: 804d9c9a, address which referenced memory

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


    WRITE_ADDRESS:  00000000

    CURRENT_IRQL:  2

    FAULTING_IP:
    nt!KiReadyThread+38
    804d9c9a 8916            mov     dword ptr [esi],edx

    CUSTOMER_CRASH_COUNT:  1

    DEFAULT_BUCKET_ID:  DRIVER_FAULT

    BUGCHECK_STR:  0xA

    PROCESS_NAME:  wmiprvse.exe

    LAST_CONTROL_TRANSFER:  from 804e26b5 to 804d9c9a

    STACK_TEXT: 
    ec7b1ce0 804e26b5 00000001 00000000 00000000 nt!KiReadyThread+0x38
    ec7b1cfc 805666ff 85d1f448 00000001 00000000 nt!KiInsertQueue+0xad
    ec7b1d54 804dc7ec 00000220 00000000 00a3fd88 nt!CmpRemoveFromDelayedClose+0x33
    ec7b1d64 7c92eb94 badb0d00 00a3fd80 05000000 nt!KiUnexpectedInterrupt65+0x2
    WARNING: Frame IP not in any known module. Following frames may be wrong.
    ec7b1d68 badb0d00 00a3fd80 05000000 00000020 0x7c92eb94
    ec7b1d6c 00a3fd80 05000000 00000020 00000000 0xbadb0d00
    ec7b1d70 05000000 00000020 00000000 00000000 0xa3fd80
    ec7b1d74 00000000 00000000 00000000 00000000 0x5000000


    STACK_COMMAND:  kb

    FOLLOWUP_IP:
    nt!KiReadyThread+38
    804d9c9a 8916            mov     dword ptr [esi],edx

    SYMBOL_STACK_INDEX:  0

    SYMBOL_NAME:  nt!KiReadyThread+38

    FOLLOWUP_NAME:  MachineOwner

    MODULE_NAME: nt

    IMAGE_NAME:  ntoskrnl.exe

    DEBUG_FLR_IMAGE_TIMESTAMP:  45e54711

    FAILURE_BUCKET_ID:  0xA_W_nt!KiReadyThread+38

    BUCKET_ID:  0xA_W_nt!KiReadyThread+38

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

    望高手给予解决,

    2008年7月10日 13:30

答案

  • 引用:
    /*
    每次都会突然重启,没有系统提示,接着就是蓝屏,上面说电脑有问题,让重启,结果重启好多次都不行,还提示说系统缺少<Windows root>/system32/ntoskrnl.exe,求各位大哥们帮帮忙啊!!!!!
    */

    进程信息
    [编辑本段]
    进程文件: ntoskrnl 或者 ntoskrnl.exe
    进程名称: Microsoft Boot Up Kernel

    描述:
    ntoskrnl.exe是保护性的进程,在你计算机反复启动的情况下出现。在正常情况下,在任务管理器是不会有该进程的。注意:ntoskrnl.exe也可能是w32.bolzano病毒。请使用杀毒软件进行查杀。



    出品者: Microsoft
    属于: Microsoft Windows Operating System

    系统进程: 是
    后台程序: 是
    使用网络: 否
    硬件相关: 否
    常见错误: 未知N/A
    内存使用: 未知N/A
    安全等级 (0-5): 0
    间谍软件: 否
    Adware: 否
    广告软件: 否
    木马: 否


    丢失处理方法1
    [编辑本段]
    周末实在是被微软恶心了一把。
    Julia的电脑在一次开机后无法启动,XP提示:

    Windows could not start because the following file is missing or corrupt:
    \system32\ntoskrnl.exe.
    Please reinstall a copy of the above file.

    ntoskrnl.exe文件找不到了,那么这个文件是干什么的?哪里去了呢?
    ntoskrnl.exe是winows的一个进程文件,在系统经过预启动和启动阶段后进入内核调用阶段时由Ntldr调用Ntoskrnl.exe, 在WINXP系统中存储了WIN XP的启动LOGO画面。
    调用Ntoskrnl.exe文件时将由Ntdetect.com收集的硬件信息传递给它,同时被调用的还有hal.dll文件.
    也就是说,如果这个文件丢失或损坏,Windows Xp启动时那个Logo都出不来,也就没有下一步可以看了。
    昨天尝试了很多方法,光盘上的copy、解压覆盖,系统上的备份覆盖还是不管用。
    最后放弃了,修复安装,结果今天打补丁到某次重起后,问题再次出现。
    现在我不能忍受再次重装了,于是反复研究,终于还是找到了一个合适的版本。
    在 "c:\windows\driver cache\i386"目录下有sp2.cab和sp1.cab文件,存放了不同补丁包的一些驱动文件,我将sp2.cab中的ntoskrnl.exe解压缩出来,终于恢复了系统:
    expand sp2.cab -F:ntoskrnl.exe c:\windows\system32
    当然首先要用光盘启动到修复模式,进入命令行进行操作。
    看来是微软的某个Patch有问题,覆盖之后会导致系统无法启动。
    目前的怀疑对象是:KB890859

    丢失处理方法2
    [编辑本段]
    网友提供了另外一个更简便的方法:
    遇到这个问题,实际上只要取消启动画面就可以了。
    在系统中打开'开始-运行',输入MSCONFIG点击'确定'后即打开了系统配置实用程序。
    点击切换到BOOT.INI选项页,在'启动选项'功能区域中选中'/NOGUIBOOT.INI'复选项。
    这个选项使得启动时不显示启动画面,从而可以跳过这个错误。但是一个问题是,如果你的系统已经无法启动,是无法来使用MSCONFIG的。
    那么我们可以将计算机通过光盘启动到命令行修复模式,编辑boot.ini文件,加入该选项:

    [operating systems]
    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /noguiboot
    这个方法值得尝试。

    丢失处理方法3
    [编辑本段]
    当然,这个错误还可能和启动列表损坏或者硬件有关。
    有网友遇到的是内存问题,通过清洁、重新插拔或更换内存得以解决

    丢失处理方法4
    [编辑本段]
    我今天在修复一台电脑的系统时,使用一个GHO文件,恢复后,显示ntoskrnl.exe丢失,无法启动。重新复制gho文件,还是照旧,可以确定,gho没问题。或是使用另外一个gho文件,也可以使用。
    上网查找。
    在pcshow中找到,可以使用的gho文件是单系统,
    有问题的gho文件,是因为我为了恢复系统方便,使用了dos+2K双系统。
    找到问题所在,我的gho文件中是使用fat32位的,故
    在c:\winnt\system32中找一edit.com,使用它编辑c:\boot.ini文件,问题解决。
    问题补充:这实际上是由boot.ini文件中的错误所引起的。NT部分或者丢失或者存在错误。
    例如:对IDE的磁盘该部分类似于
    multi(0)disk(0)rdisk(0)partition(2)\winnt="Windows NT workstation"
    检查磁盘和分区是否正确。如果您近期新添加了硬盘,或改变了分区,试着改变disk()和partition()的设置值。如果您确信没有错误,则可能是实际的文件损坏,从安装CD上将NTOSKRNL.EXE文件复制到%systemroot%/system32目录中。
    系统安装了Linux后您需要编辑boot.ini文件。安装过程中,DiskDruid (Red Hats磁盘配置工具)会新建一个基本分区(取决于磁盘配置),尽管扩展NT分区先被创建(并列于磁盘前端),可是基本分区还是影响boot.ini文件中partition()中的参数。将参数作适当调整(如从“1”改成“2”)便可以使NT正常引导。
    2008年7月14日 1:35

全部回复

  • 请确认 Windows\system32 与安装程序中的 NTOSKRNL.EXE 是相同的版本(都是 SP2),在此前提下确认 MD5 是否相同。

     

    通过故障恢复控制台等方式将 NTOSKRNL.EXE 恢复为与安装程序相同的版本。

    2008年7月11日 2:54
    版主
  • 我的都是xp sp2,补丁也自动打全了,现在文件已经恢复出来了,现在还在测试,不知道还有没有蓝屏的现象,对了。请教下,是什么原因使ntoskrnl.exe改变了呢,

    2008年7月11日 11:04
  • 引用:
    /*
    每次都会突然重启,没有系统提示,接着就是蓝屏,上面说电脑有问题,让重启,结果重启好多次都不行,还提示说系统缺少<Windows root>/system32/ntoskrnl.exe,求各位大哥们帮帮忙啊!!!!!
    */

    进程信息
    [编辑本段]
    进程文件: ntoskrnl 或者 ntoskrnl.exe
    进程名称: Microsoft Boot Up Kernel

    描述:
    ntoskrnl.exe是保护性的进程,在你计算机反复启动的情况下出现。在正常情况下,在任务管理器是不会有该进程的。注意:ntoskrnl.exe也可能是w32.bolzano病毒。请使用杀毒软件进行查杀。



    出品者: Microsoft
    属于: Microsoft Windows Operating System

    系统进程: 是
    后台程序: 是
    使用网络: 否
    硬件相关: 否
    常见错误: 未知N/A
    内存使用: 未知N/A
    安全等级 (0-5): 0
    间谍软件: 否
    Adware: 否
    广告软件: 否
    木马: 否


    丢失处理方法1
    [编辑本段]
    周末实在是被微软恶心了一把。
    Julia的电脑在一次开机后无法启动,XP提示:

    Windows could not start because the following file is missing or corrupt:
    \system32\ntoskrnl.exe.
    Please reinstall a copy of the above file.

    ntoskrnl.exe文件找不到了,那么这个文件是干什么的?哪里去了呢?
    ntoskrnl.exe是winows的一个进程文件,在系统经过预启动和启动阶段后进入内核调用阶段时由Ntldr调用Ntoskrnl.exe, 在WINXP系统中存储了WIN XP的启动LOGO画面。
    调用Ntoskrnl.exe文件时将由Ntdetect.com收集的硬件信息传递给它,同时被调用的还有hal.dll文件.
    也就是说,如果这个文件丢失或损坏,Windows Xp启动时那个Logo都出不来,也就没有下一步可以看了。
    昨天尝试了很多方法,光盘上的copy、解压覆盖,系统上的备份覆盖还是不管用。
    最后放弃了,修复安装,结果今天打补丁到某次重起后,问题再次出现。
    现在我不能忍受再次重装了,于是反复研究,终于还是找到了一个合适的版本。
    在 "c:\windows\driver cache\i386"目录下有sp2.cab和sp1.cab文件,存放了不同补丁包的一些驱动文件,我将sp2.cab中的ntoskrnl.exe解压缩出来,终于恢复了系统:
    expand sp2.cab -F:ntoskrnl.exe c:\windows\system32
    当然首先要用光盘启动到修复模式,进入命令行进行操作。
    看来是微软的某个Patch有问题,覆盖之后会导致系统无法启动。
    目前的怀疑对象是:KB890859

    丢失处理方法2
    [编辑本段]
    网友提供了另外一个更简便的方法:
    遇到这个问题,实际上只要取消启动画面就可以了。
    在系统中打开'开始-运行',输入MSCONFIG点击'确定'后即打开了系统配置实用程序。
    点击切换到BOOT.INI选项页,在'启动选项'功能区域中选中'/NOGUIBOOT.INI'复选项。
    这个选项使得启动时不显示启动画面,从而可以跳过这个错误。但是一个问题是,如果你的系统已经无法启动,是无法来使用MSCONFIG的。
    那么我们可以将计算机通过光盘启动到命令行修复模式,编辑boot.ini文件,加入该选项:

    [operating systems]
    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /noguiboot
    这个方法值得尝试。

    丢失处理方法3
    [编辑本段]
    当然,这个错误还可能和启动列表损坏或者硬件有关。
    有网友遇到的是内存问题,通过清洁、重新插拔或更换内存得以解决

    丢失处理方法4
    [编辑本段]
    我今天在修复一台电脑的系统时,使用一个GHO文件,恢复后,显示ntoskrnl.exe丢失,无法启动。重新复制gho文件,还是照旧,可以确定,gho没问题。或是使用另外一个gho文件,也可以使用。
    上网查找。
    在pcshow中找到,可以使用的gho文件是单系统,
    有问题的gho文件,是因为我为了恢复系统方便,使用了dos+2K双系统。
    找到问题所在,我的gho文件中是使用fat32位的,故
    在c:\winnt\system32中找一edit.com,使用它编辑c:\boot.ini文件,问题解决。
    问题补充:这实际上是由boot.ini文件中的错误所引起的。NT部分或者丢失或者存在错误。
    例如:对IDE的磁盘该部分类似于
    multi(0)disk(0)rdisk(0)partition(2)\winnt="Windows NT workstation"
    检查磁盘和分区是否正确。如果您近期新添加了硬盘,或改变了分区,试着改变disk()和partition()的设置值。如果您确信没有错误,则可能是实际的文件损坏,从安装CD上将NTOSKRNL.EXE文件复制到%systemroot%/system32目录中。
    系统安装了Linux后您需要编辑boot.ini文件。安装过程中,DiskDruid (Red Hats磁盘配置工具)会新建一个基本分区(取决于磁盘配置),尽管扩展NT分区先被创建(并列于磁盘前端),可是基本分区还是影响boot.ini文件中partition()中的参数。将参数作适当调整(如从“1”改成“2”)便可以使NT正常引导。
    2008年7月14日 1:35