• 2009-10-09

    <windows root>system32\ntoskrnl.exe文件被损坏,无法启动windows. - [◈ 电脑相关]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://sayin.blogbus.com/logs/47914125.html

    周末实在是被微软恶心了一把。

    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文件.

    关于这个进程的官方描述是:

    ntoskrnl - ntoskrnl.exe - 进程信息
    进程文件: ntoskrnl 或者 ntoskrnl.exe
    进程名称: Microsoft Boot Up Kernel

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

     

    也就是说,如果这个文件丢失或损坏,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

    网友提供了另外一个更简便的方法
    遇到这个问题,实际上只要取消启动画面就可以了。
    在系统中打开'开始-运行',输入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


    红色字体的方式是我用过的,非常好用,不过我进不了系统,机器也没有光驱,是通过U盘里的winpe进入系统后,更改的系统盘下的boot.ini文件的(更改方法如上,主要新增了蓝色字体部分),重启后就正常启动了,效果很不错,这个方法值得尝试。

     

    当然,这个错误还可能和启动列表损坏或者硬件有关。
    有网友遇到的是内存问题,通过清洁、重新插拔或更换内存得以解决

    -The End-


    历史上的今天:


    收藏到:Del.icio.us