让32位Windows7也能支持4G以上内存




众所周知,微软对于32位的消费级操作系统,内存最大只能支持到4G。而且实际上可以使用的数值是小于4G的,这在任务管理器里面就可以看到。

下面我们来用修改Windows内核的办法来让消费级的32位Windows7也像企业级的Windows一样支持4G以上内存。

1. 首先,要知道自己正在加载哪个内核,可以通过debugging tools for windows来查看。安装软件以后,在命令行下定位到安装目录,依次执行"kd -kl"和"lmvm nt”两条命令,即克制image name中看到内核文件名。如果是Vista或者更高级的操作系统的话,需要运行"bcdedit -debug on",并重启才能进行调试。

2. 复制c:windowssystem32
tkrnlpa.exe到任何一个位置,然后用hex editor打开

3. 在hex editor里面搜索"8b 45 fc 85 c0 74",找到以后观察前面隔开一项是否是7c,也就是形成如7c ?? 8b 45 fc 85 c0 ??。如果是则把找到的东西改为"7c ?? b8 00 00 02 00 90 90"。一共有两处。改完以后换一个文件名另存到c:windowssystem32下面,例如c:windowssystem32
tkrnlpb.exe

4. 用管理员身份打开命令行,然后执行下列命令:

editbin /release ntkrnlpb.exe
makecert -r -ss my -n "CN=my test ca"
signtool sign -s my -n "my test ca" ntkrnlpb.exe

5. 之后给Windows7添加一个启动项,以使用新内核启动系统:

bcdedit /copy {current} /d "Windows 7 Over 4G"
bcdedit /set {id} pae ForceEnable
bcdedit /set {id} kernel ntkr128g.exe
bcdedit /set {id} testsigning on

后面三条指令的ID需要根据第一条命令产生的结果输入

6. 重启之后在菜单里面选择新内核启动,然后再到任务管理器里面核实一下可用内存数目,然后就OK!

PS:

常见的内核文件名有:

ntkrnlpa.exe PAE 单核
ntkrpamp.exe PAE 多核
ntoskrnl.exe 非PAE 单核
ntkrnlmp.exe 非PAE 多核

转自:http://ep.cbifamily.com/2009/24/25/94335.html

附件:ossoft.rar(2291986 Byte)

发表评论?

1 条评论。

  1. 真的假的,32位,如何支持啊!

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Time limit is exhausted. Please reload CAPTCHA.