2009-10-07 14:11:37 +0000 2009-10-07 14:11:37 +0000
37
37

如何在Windows 7(32位)上启用PAE,以支持超过3.5 GB的内存?

我知道Windows XP 32位可以通过 PAE ,配置成支持3.5 GB以上的内存。有什么好的教程可以在Windows 7 32位上实现吗?

至于为什么不干脆用64位的Windows 7:我的上网软件(手机即调制解调器)只能在32位环境下使用。

答案 (8)

25
25
25
2010-01-13 12:28:56 +0000

几年前,一群程序员发布了一个Windows 7的内核补丁,允许在Windows 7下使用超过4 GB的内存。最近,由于一些病毒扫描程序 将该补丁检测为假阳性,网站上的下载被删除。幸运的是,我已经保存了补丁的副本(它使用RTM Windows 7内核),并将其上传到我的网站这里(参见选项1,当我讨论两种方法来修补你的Windows内核时)。此外,作者还发布了关于如何手动修补内核的说明

即使你有Windows 7 SP1(Build 7601),你也可以安装包含内核7600的补丁。这是因为你的默认内核并没有被**修改;一个新的内核被复制到你的系统文件夹中,并且增加了一个额外的启动菜单选项,以使用新的、打过补丁的内核来启动Windows,而不是旧的内核。虽然我没有发现用旧内核运行Windows 7 SP1有任何问题,但如果你想使用ntkrnlpa.exe的7601版本,你需要手动修补你的内核(见上面的链接)。


该补丁基本上修改了Windows 7内核,使其更像Windows Server 2003 Datacenter Edition,在32位模式下兼容高达8 GB的内存。这使得你可以在Windows 7 32位下将PAE很好地扩展到8 GB的内存。有关微软为何实施这一技术限制的更多信息,请参见 32位Windows Vista中的许可内存 _ (需要JavaScript才能从www.geoffchappell.com_)。

如上所述,请注意,即使系统可以访问更多的内存,单个进程仍然会被限制在4 GB的范围内。虽然如果你有8 GB的内存,那么至少你还有另外4 GB的内存用于其他进程;)


对于那些对技术方面感兴趣的人来说,这是因为 内存映射输入/输出(简称MMIO)。这允许CPU通过地址总线本身访问外设_和RAM。通常这是通过高阶内存地址来避免低阶地址冲突。然而,这导致了32位Windows操作系统的所有消费类变体中出现了众所周知的3 GB内存障碍

17
17
17
2009-10-07 14:26:35 +0000

微软MSDN网站上的这篇文章显示了Windows版本的内存限制 ,Windows 7 32位被列为4 GB限制。

在Windows XP中,你曾经可以使用PAE查看超过4 GB的内存 但这个选项在Service Pack 2中被禁用

原因是大多数驱动程序没有PAE意识,如果他们结束了超过4 GB边界的内存,就会把他们的玩具扔出婴儿车。

如果你现在在Windows XP上使用/PAE开关,你会使 DEP 可用,但你将无法看到超过4 GB的内存。

这个4 GB的限制在Windows 7 32位上仍然存在。如果你想看到超过4 GB的RAM,你将不得不使用64位版本的Windows。

(使用PAE查看超过4 GB的RAM的这个选项在32位服务器版本的Windows上仍然可用,我认为这是对你会运行Windows服务器的那种硬件预期的更好的驱动程序质量。)

3
3
3
2013-05-06 10:57:05 +0000

根据MSDN文章物理地址扩展

如果在支持硬件启用DEP的计算机上启用了DEP,或者计算机配置了内存范围超过4GB的热添加内存设备,Windows会自动启用PAE。如果计算机不支持支持硬件的DEP,或者没有为超过4GB的内存范围中的热添加内存设备配置,则必须明确启用PAE。

要显式启用 PAE,请使用以下 BCDEdit /set 命令来设置 pae 引导条目选项。

bcdedit /set [{ID}] pae ForceEnable

IF DEP被启用,PAE不能被禁用。使用以下 BCDEdit /set 命令禁用 DEP 和 PAE:

bcdedit /set [{ID}] nx AlwaysOff
bcdedit /set [{ID}] pae ForceDisable

Windows Server 2003 和 Windows XP: 要启用 PAE,请使用 boot.ini 文件中的/PAE开关。要禁用PAE,请使用/NOPAE开关。要禁用 DEP,请使用 /EXECUTE 开关。

2
2
2
2009-10-07 14:28:06 +0000

PAE应该是默认启用的–Windows已经在内部使用它来实现DEP No-Execute 功能。

但是这些说明可能会帮助Windows再次做它的事情。


请注意,即使系统可以访问更多的资源,单个进程仍然会被限制在4GB以内。

2
2
2
2013-01-29 16:55:38 +0000

不要使用这个补丁,它只是一个德国测试版的windows,会把你的启动记录弄得一团糟。

我刚刚花了一个小时在另一台机器上下载easybcd来解决这个问题。

请注意!

2
2
2
2009-10-07 17:14:24 +0000

如果你的系统可以支持,你可以使用虚拟化来允许访问你的32位手机驱动程序。

这将是一个稍微复杂的设置,但你可以设置一个虚拟机,建立连接,并做互联网连接共享到你的主机,这样你就可以得到64位的好处,以及能够使用传统的驱动程序。 VMware Workstation (商业)、 VirtualBox (免费,开源)、 Windows Virtual PC (免费)都可以将usb设备直接路由到你的虚拟机。只要安装一个32位的操作系统(如果你想的话,甚至是XP),给它一个边际数量的内存,你就可以做你需要的事情。我已经这样做了,加载不支持Windows 7的传统应用程序,我的兄弟实际上加载了他的老Creative网络摄像头(没有64位驱动程序),并通过他的虚拟机使用Skype。

1
1
1
2013-06-06 22:53:43 +0000

问题是 “如何在Windows 7(32位)上启用PAE,以支持超过3.5 GB的内存",答案是在命令提示符中输入 "bcdedit /set [{ID}] pae ForceEnable"。

但是,可能这个问题值得改写,如何在W7 32位系统上启用并能够使用超过3.5(或3.25)GB的内存。

我在2个相同系统的不同桌面主板上试过PAE。英特尔®桌面主板D945GNT,配备英特尔®奔腾®D处理器3.4GHZ和3.00GB可用内存;英特尔®桌面主板DG41WV,配备英特尔®E7500 2.93GHZ和3.25GB可用内存。都是64位能力,4GB Ram。

这2个系统都启用了PAE;然后,使用 http://www.jensscheffler.de/using-gavotte-ramdisk-in-windows-7 我安装了Gavotte Ram磁盘,在第一个系统上恢复了16MB Ram(什么都没有),但在第二个系统上恢复了整个775MB未使用的内存。

于是,在第二个系统的Ram盘中,我给它分配了一个可移动的pagesys文件,从16MB到700MB,在系统的另一个物理盘的分区上分配了一个16MB到3300MB的可移动pagesys。

我证明了2个事实。1. 系统更喜欢Ram交换文件,而不是硬盘中的文件。我看到它在移动、增长和缩小。2. 用PC Pitstop做的基准测试(图片附在 http://www.pablomolina.net/bench700.png )显示系统磁盘速度有很大的提高,系统运行速度相当快。在基准测试中,我将Ram盘中的700MB页面文件与同一系统盘的另一个分区中的700MB页面文件进行了比较。

你需要用微软kb/314834程序设置系统在关机时清理页面文件。

对我来说,PAE在32位系统上是有意义的,而且是有效的。我不会去用64位系统,因为我专业使用Windows,多年来积累了450个程序,这需要我花几个月时间重新安装。

1
1
1
2013-12-26 18:47:27 +0000

如果你不想使用补丁文件,你可以使用boot loader。这个Bootloader可以安装在当前的系统上,也可以安装在U盘上。所以你可以在不影响系统的情况下轻松测试。