众所周知,微软对于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)
真的假的,32位,如何支持啊!