如何修改Windows XP系统的内核类型
(yanlb2000, 2006.05.19, yanlb2000.blogcn.com)
公司给我配了台新电脑,HP compaq dc7600c,配置是Pentium 4 650的CPU,1G 内存,160GB SATA2硬盘。另配20英寸的液晶显示器(1600*1200)。这个配置应该说是不错的。
但电脑到手之后,却发现一点不爽的地方。这个CPU是支持超线程Hyper Threading的(电脑外壳上还贴着Pentium 4 HT标贴呢),但是,在Windows XP的任务管理器中,在其性能图表显示中,却只显示一个CPU在活动。
这是什么原因呢?
按照公司IT策略,所有电脑必须由IT HelpDesk来安装操作系统,其实就是将预安装好的操作系统映像还原到硬盘上,就是类似通过ghost的还原操作。这种标准映像中安装了很多公司要求必须安装的标准软件,并做了很多调整,以符合公司管理策略。私自安装操作系统并接入公司网络的行为是不允许的。
而Windows NT/2000/XP等操作系统,其系统内核根据对支持的CPU的数量的不同,是有区别的。如果安装的时候是单CPU环境,那么安装出来的Windows就是单处理器内核的。以后即使升级到了多CPU(包括双核心、超线程等情况),该系统仍然只能按单CPU模式工作,因为内核是单CPU的。除非,重装系统,或者修改系统内核为多CPU的。
现在,我重装系统显然不行,自己装是不允许的。只能试试修改系统内核了。但怎么修改呢?NT架构的系统内核,主要就是ntoskrnl.exe这个文件。其实单内核系统就是原本的这个文件,而多内核系统,则是将安装文件中的ntkrnlmp.exe复制并替换掉系统中的ntolkrnl.exe。当然,除了这个文件,还有其他一些文件,某些注册表项目也要做修改。
而修改内核的方法其实也很简单,只要下面这条命令就可以:
rundll32.exe setupapi,InstallHinfSection %1 131 %windir%infhal.inf
其中,参数%1代表了新内核的类型,计有以下一些类型和相应的参数(一些“罕见”类型就不列出了):
Standard PC: E_ISA_UP_HAL
ACPI PIC-based PC Uniprocessor: ACPIAPIC_UP_HAL
ACPI PIC-based PC Multiprocessor: ACPIAPIC_MP_HAL
Advanced Configuration and Power Interface [ACPI] PC : ACPIPIC_UP_HAL
在"启动、运行"中输入以上命令就可以了。
关键,是要选择适当的内核类型。如果不匹配,轻则不能软关机或不能发挥全部功能,严重的就是蓝屏,根本不能启动。
比如,对于现在大多数单CPU且不含超线程技术的电脑,一般都可以选择ACPIAPIC_UP_HAL;对于多CPU或具备超线程CPU的电脑,可以选择ACPIAPIC_MP_HAL。
我这里,当然应该选择ACPIAPIC_MP_HAL了。所以,具体的命令是这样的:
rundll32.exe setupapi,InstallHinfSection ACPIAPIC_MP_HAL 131 %windir%infhal.inf
输入以上命令,系统马上开始安装相应文件,然后重新启动两次,正常的话就可以了。这时再打开任务管理器,可以看到已经显示两个CPU活动的图表了。(要在菜单中选择每个CPU显示单独的图表。)
最后还是总结一下。
当用ghost还原了一个操作系统,但还原出来的系统内核不是最匹配当前硬件,比如不能认出多个CPU、双内核CPU、超线程CPU的时候,可以用这个方法来方便地修改内核,而不用重装系统;
当然,当系统从单CPU升级为双核CPU或超线程CPU的时候,也可以这么操作,避免重装系统;
另外,有些人偷懒,喜欢用所谓万用Winxp的ghost映像来克隆还原出Winxp,速度是快了,但在某些主板上可能导致不能实现软件关机,关机只能按电源按钮。这其实也是克隆出来的映像(往往是Standard PC类型的)与当前硬件类型(应该是ACPI Uniprocessor或Multiprocessor)不匹配,不兼容当前的ACPI模式。也可以用这个方法解决。
Tags: CPU, Windows XP, 内核类型
你好,中国博客势力榜在评选博客!邀请你来参加。
加入地址:http://www.blogcn.com/u/53/67/topooo123/blog/30704422.html
重在参与!