同事的电脑启动时出现下面提示:“因下面文件损坏或丢失Windows无法启动 %systemroot%\system32\ntoskrnl.exe,请又一次安装以上文件的拷贝”(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损坏或丢失提示无法启动后,首先是想试下安全模式和最后一次正确配置,但都无效,仍是上面的提示。然后用win pe光盘启动,想网上说的方法拷贝ntoskrnl.exe,可是进入C盘的windows目录后,突然发现没有system32目录,不仅如此,windows下还少了不少系统目录,怪不得会提示找不到ntoskrnl.exe呢。
原先想在PE系统下从曾经的GHOST备份文件里提取整个WINDOWS文件夹出来覆盖,但那和重装无异,预计大部分应用软件都得又一次安装。想到system32不见了,可能是硬盘有问题,所以在做下一步决定前先检查下硬盘有无问题。右击C盘-属性-工具-查错-開始检查-勾选“自己主动修复文件系统错误”(还有一个“扫描并试图恢复坏扇区”也能够选上,只是当时想假设到这一步真有坏道还修什么,所以仅仅选了第一项,也省点时间),执行磁盘扫描检查程序。等扫描完毕,再进入c盘,居然发现原先丢失的system32等文件夹都回来了,一个都不少,当然ntoskrnl.exe也在。重新启动电脑,从硬盘启动,正常了。
至此修复完毕,只是还是把网上收集到的有关修复ntoskrnl.exe丢失或损坏的其他方法在以下列一下,以供參考:
0、有关ntoskrnl.exe的文件信息:
ntoskrnl.exe是windows的一个进程文件,在系统经过预启动和启动阶段后进入内核调用阶段时由Ntldr调用Ntoskrnl.exe, 在windows系统中存储了windows启动LOGO画面。调用Ntoskrnl.exe文件时将由Ntdetect.com收集的硬件信息传递给它,同一时候被调用的还有hal.dll文件。假设这个文件丢失或损坏,Windows Xp启动时那个Logo就出不来。
1、方法一:
在 "c:\windows\driver cache\i386"文件夹下有sp2.cab和sp1.cab文件,存放了不同补丁包的一些驱动文件,将sp2.cab中的ntoskrnl.exe解压缩出来:expand sp2.cab -F:ntoskrnl.exe c:\windows\system32 要用光盘启动到修复模式,进入命令行进行操作。
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、方法四:
开机在进入windows系统之前连按F8键,这时会出现一个选单列表,选择“最后一次正确配置”然后回车。
以上来自某站点
5、方法五:发生这样的问题主要可能有下面原因:Boot.ini 文件的 [Boot Loader] 部分中的 Default 值丢失或无效、Ntoskrnl.exe文件丢失或损坏、Boot.ini 文件里的分区路径设置不对。解决:使用Windows XP安装光盘启动电脑,依照屏幕上的提示按下R键进入故障恢复控制台,使用Administrator账号登录系统。在提示符后输入“bootcfg /rebuild”命令然后按下回车。当屏幕上询问“将安装加入到启动列表吗?”时按下“Y”键,出现“输入载入标识符”的时候输入“Windows XP”,到询问“输入OS载入选项”时直接按下回车。完毕后重新启动动电脑到正常模式。 这样做能够修复boot.ini文件。假设是文件本身损坏或者丢失了,也能够在故障恢复控制台下修复。
6、方法六:使用windows的光盘启动,在故障恢复控制台下输入expand (光驱盘符):\I386\NTOSKRNL.EX_ C:\WINDOWS\SYSTEM32\NTOSKRNL.EXE
7、方法七:传输数据出错,没读入初始文件,换个硬盘数据线看看
以上来自:http://www.cnblogs.com/chinhr/archive/2009/01/27/1309525.html
8、方法八:
除了ntoskrnl.exe外,另一个文件ntkrnlpa.exe也要覆盖,解压缩方法同ntoskrnl.exe(见上面,不反复了)
以上来自:http://www.blogjava.net/linhuaimin/archive/2008/11/02/164857.html
注:以上拷贝ntoskrnl.exe修复时,一定要注意与原系统的ntoskrnl.exe同样版本号。