Ntoskrnl.exe
异常或丢失造成系统不能启动,截图如下
造成这个问题的原因是多种多样的,大体有这么
2
种原因
1.
Ntoskrnl.exe
损坏或丢失
2.
硬件损坏或兼容性问题
硬件损坏或兼容性问题比较少见,但确实存在;硬件损坏多见于内存,我们可以将内存更换,来检查是否解决问题;兼容性问题则多见于兼容机,
像
Dell, IBM, HP
的服务器是不会出现此问题。如果此类问题反复问题,则要怀疑兼容性的问题,我就碰见过这样的问题;单个硬件没有任何问题,但组装在一起就会爆发异常。
我们主要讨论第一种情况
Ntoskrnl.exe
文件作用:
1.
系统启动时被
Ntldr
调用,
2.
调用
Windows
的启动
Logo
画面
流程图如下:
注意一点:
RNL.EXE
和
HAL.DLL
文件一样,
NTOSKRNL.EXE
不一定是原始的文件名。对于
multi-processor
系统来说,
NTOSKRNL.EXE
是由
Ntoskrnlmp.exe
改名而来。
方法1
从系统安装光盘修复
1.
插入光盘,开机启动,进入
windows
故障恢复台
2.
假设原先系统安装在
C
盘;光盘盘符为
F
盘;使用
expand
命令进行解压缩,直接复制是不可以的。
Expand sp2.cab �CF: ntoskrnl.exe c:\Windows\System32
3.
解压缩完毕后,重启,应该就可以正常工作
方法2
从系统备份文件夹dllcache
修复
正常情况下,
windows
操作系统会有一个重要系统文件的备份文件夹;路径为
C:\WINDOWS\system32\dllcache
;
我们可以从那里直接还原
1.
插入光盘,开机启动,进入
windows
故障恢复台
2.
ntoskrnl.exe
重命名
将
c:\Windows\System32\ntoskrnl.exe
重命名为
ntoskrnl_bk.exe
Ren c:\windows\system32\Ntoskrnl.exe c:\windows\system32\Ntoskrnl_bk.exe
3
.
复制
4
个文件
将
C:\WINDOWS\system32\dllcache
中的
Ntkrnlmp.exe
,
Ntkrnlpa.exe
,
Ntkrpamp.exe
,
Ntoskrnl.exe
这
4
个文件复制到
Copy C:\WINDOWS\system32\dllcache\***.exe c:\Windows\System32\***.exe
4
.
然后我们一个一个的尝试把它们重命名为
ntoskrnl.exe
Ren c:\windows\system32\****.exe c:\windows\system32\ Ntoskrnl.exe
每尝试一下,您可以重启一下,看是否可以启动。
Mp
表示多
CPU
PA
表示使用了
/PAE
及
4G
以上内存
您可以根据您的机器的硬件配置,来排个优先级。比如如果是小于
4G
内存的多
CPU
服务器,那我们就从
ntkrnlmp.exe
开始改起,如果大于
4G
的多
CPU
,则先改
ntkrpamp.exe
方法三:修复启动项
如果前面两个办法都无法解决问题,我们可以使用第三个办法。
FixMBR
FixBoot
来进行修复
方法四:制作启动盘,进入系统,
修改分区Active
属性
前三个方法,也不可行的话;我们可以猜测可能我们误操作,将操作系统所在的分区,设置成了“非活动分区”,造成的异常
我们可以使用软盘或
WinPE
启动盘
(
启动软盘的制作参照
http://support.microsoft.com/kb/325879
)
,
进入系统;
点我的电脑,右键“
Manage
”,
---
》“
Storage
”
-
à
”Disk Management”,
选中原系统盘,右键;判断“
Make Partition as active
”是否变灰,如果没有变灰,点中它,设置为
active
即可。