让 32 位 windows 7 支持超过 4G 内存(PAE)
2009-12-12 17:06
260 查看
该方法由 Geoff Chappell 牛人提供,适用于 Vista 系统。经 Aulddays 测试,这种方法同样适用于目前最新版的 Windows 7 RTM 系统。此方法可以让 32 位 win7 完美支持多至 128G 的内存!(由于涉及到修改系统内核,请慎重考虑后再操作)
具体做法如下:
为避免原始内核被破坏,首先复制系统内核文件 ntkrnlpa.exe,并命名为 ntkr128g.exe(保存在 SYSTEM32 目录下),之后的修改都在 ntkr128g.exe 上进行。
用 hex 编辑器打开 ntkr128g.exe,查找下列两个字符串:
特征串1:7C 11 8B 45 FC 85 C0 74 0a
特征串2:7C 10 8B 45 FC 85 C0 74 09
两个特征串在内核中都出现且只出现一次,虽然特征串内容不同,但修改方式相同:把 0x8B 开始的 7 个字节(即上面标记为红色的部分。最前两个字节不作修改!)修改成:
后7个字节修改成:B8 00 00 02 00 90 90
对于 Vista 和 Windows 7,修改处的文件偏移地址(即 0x8B 字节的位置)分别如下:
版本号 版本 文件偏移地址
6.0.6000.16386 Windows Vista 0x003040B1, 0x003040F2
6.0.6001.18000 Windows Vista SP1 0x00309AA3, 0x00309AE4
6.1.7600.16385 Windows 7 0x0035C243, 0x0035c283
接下来为修改后的内核重新计算 checksum 和生成数字签名:
editbin /release ntkr128g.exe
makecert -r -ss my -n "CN=My Own Testing Authority"
signtool sign -s my -n "My Own Testing Authority" ntkr128g.exe
上述签名过程需要用到三个命令行工具,其中 editbin 在 Visual Studio 中自带,而 makecert 和 signtool 在 Windows SDK 6.0 中自带,如果你机器上安装了 Visual Studio 2008 的话,第一个工具可以在 %VS2008_Dir%/ VC/ Bin/ 中找到,后两个工具可以在 %ProgramFiles%/ Microsoft SDKs/ Windows/ v6.0A/ bin/ 中找到。
最后在系统启动菜单中加入一条新的启动菜单项(需以管理员方式运行命令提示符)
bcdedit /copy {current} /d "Windows 7 PAE"
运行成功后,该命令会返回一个 GUID 值,记录下该 GUID 值,并运行下面三条,用之前返回的 GUID 值替换命令中的 guid(命令中包含 guid 的大括号也要输入):
bcdedit /set {guid} pae ForceEnable
bcdedit /set {guid} kernel ntkr128g.exe
bcdedit /set {guid} testsigning on
由于使用了“自签名的证书”对
新的内核文件执行了数字签名
,因此需要将 bcd 中的 testsigning
选项设置为 on
,这样会使系统桌面上显示
“Test Mode”的提示
。
现在,在启动时选择
Windows 7 PAE
试试。如果一切顺利,可以在系统属性中看到实际使用的物理内存超过了 3.25G。
另外,启用 3G 开关的设置为:
bcdedit /set {guid} IncreaseUserVa 3072
特别提示:经过本人几个月的测试,使用此方法打开 PAE 后,没有遇到任何性能和稳定性问题。
具体做法如下:
为避免原始内核被破坏,首先复制系统内核文件 ntkrnlpa.exe,并命名为 ntkr128g.exe(保存在 SYSTEM32 目录下),之后的修改都在 ntkr128g.exe 上进行。
用 hex 编辑器打开 ntkr128g.exe,查找下列两个字符串:
特征串1:7C 11 8B 45 FC 85 C0 74 0a
特征串2:7C 10 8B 45 FC 85 C0 74 09
两个特征串在内核中都出现且只出现一次,虽然特征串内容不同,但修改方式相同:把 0x8B 开始的 7 个字节(即上面标记为红色的部分。最前两个字节不作修改!)修改成:
后7个字节修改成:B8 00 00 02 00 90 90
对于 Vista 和 Windows 7,修改处的文件偏移地址(即 0x8B 字节的位置)分别如下:
版本号 版本 文件偏移地址
6.0.6000.16386 Windows Vista 0x003040B1, 0x003040F2
6.0.6001.18000 Windows Vista SP1 0x00309AA3, 0x00309AE4
6.1.7600.16385 Windows 7 0x0035C243, 0x0035c283
接下来为修改后的内核重新计算 checksum 和生成数字签名:
editbin /release ntkr128g.exe
makecert -r -ss my -n "CN=My Own Testing Authority"
signtool sign -s my -n "My Own Testing Authority" ntkr128g.exe
上述签名过程需要用到三个命令行工具,其中 editbin 在 Visual Studio 中自带,而 makecert 和 signtool 在 Windows SDK 6.0 中自带,如果你机器上安装了 Visual Studio 2008 的话,第一个工具可以在 %VS2008_Dir%/ VC/ Bin/ 中找到,后两个工具可以在 %ProgramFiles%/ Microsoft SDKs/ Windows/ v6.0A/ bin/ 中找到。
最后在系统启动菜单中加入一条新的启动菜单项(需以管理员方式运行命令提示符)
bcdedit /copy {current} /d "Windows 7 PAE"
运行成功后,该命令会返回一个 GUID 值,记录下该 GUID 值,并运行下面三条,用之前返回的 GUID 值替换命令中的 guid(命令中包含 guid 的大括号也要输入):
bcdedit /set {guid} pae ForceEnable
bcdedit /set {guid} kernel ntkr128g.exe
bcdedit /set {guid} testsigning on
由于使用了“自签名的证书”对
新的内核文件执行了数字签名
,因此需要将 bcd 中的 testsigning
选项设置为 on
,这样会使系统桌面上显示
“Test Mode”的提示
。
现在,在启动时选择
Windows 7 PAE
试试。如果一切顺利,可以在系统属性中看到实际使用的物理内存超过了 3.25G。
另外,启用 3G 开关的设置为:
bcdedit /set {guid} IncreaseUserVa 3072
特别提示:经过本人几个月的测试,使用此方法打开 PAE 后,没有遇到任何性能和稳定性问题。
相关文章推荐
- 让 32 位 windows 7 支持超过 4G 内存(PAE)
- windows 2008使用超过4G大内存启动APE支持
- PAE(物理地址扩展)开启与关闭的方法(32位系统支持4G以上内存)
- 让windows 2003 x86支持4G以上内存
- 32位Ubuntu中支持超过4G的大内存的方法
- 物理地址扩展 (PAE) :Windows Server 2003 和 Windows 2000 提供大内存支持
- 32位ubuntu物理地址扩展(PAE)分页机制及如何开启PAE支持4G以上内存(有时grub里面会让你选择)
- Windows 7 支持4G以上内存 绝对可以让32位WIN7系统和VISTA系统用满4G内存,(有图有真相)
- 让windows 2003 x86支持4G以上内存
- 32位Ubuntu中支持超过4G的大内存的方法
- 让Windows 2003支持4G内存
- 为什么32位的win2003服务器系统支持超过4G甚至更多的内存
- 开启Windows 2003 最大内存支持
- ReadyFor4GB破解win7支持4G内存恢复到原系统
- 如何让linux/Centos 32位支持大于4G内存
- win2003支持4G以上内存
- windows xp 32位系统支持4G内存吗官方说法
- Windows 8.1 4G内存完美破解,能休眠
- [转载] Windows 2K3 Server X86 4G内存测试手记
- Windows_装的是2008R2系统,在电脑属性里显示内存12G(可用4G)