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


37

我知道可以通过PAE将Windows XP 32位配置为支持超过3.5 GB的RAM。在Windows 7 32位上有很好的教程吗?

关于为什么我不只是使用64位Windows 7的原因:用于Internet连接的软件(手机即调制解调器)只能在32位环境中使用。


除非您使用专门设计为利用CPU和AWE API中的36位PAE扩展的应用程序,否则使用PAE开关绝对没有意义。

17
莫莉:实际上,即使对于不了解36位寻址的应用程序,PAE也有其意义。即使每个应用程序只能访问2GB内存,您也可以运行多个应用程序,每个应用程序都有自己的2GB。
davr

@ Molly7244 AWE和PAE彼此无关。还有一点需要在不使用扩展RAM的情况下使用PAE,那就是启用硬件不执行保护。在x86处理器上,没有不带PAE的NX。
杰米·汉拉汉

@JamieHanrahan AWE使用PAE。
ctrl-alt-delor

@ ctrl-alt-delor对不起,但这显然是一个误解,因为AWE在未启用PAE的32位Windows系统上运行。哎呀,AWE甚至可以在甚至无法使用PAE的系统上运行(x64,ARM,Itanium-这些CPU不支持PAE)。的确,在没有启用PAE的32位x86 Windows系统上,支持AWE的应用程序不会找到太多的RAM来打开“窗口”,但是它将在可用RAM内运行。AWE完全不依赖PAE。它只是在x86上,有PAE +超过4 GB的RAM支持将给予AWE工作更多的RAM(和其他一切)英寸
杰米·汉拉汉

Answers:


24

几年前,一群程序员发布了Windows 7内核补丁,以允许在Windows 7下使用超过4 GB的RAM。最近,由于一些病毒扫描程序将补丁检测为误报,因此下载了从网站上删除。幸运的是,我已经保存了补丁程序的副本(使用RTM Windows 7内核),并在此处上传到了我的网站(当我讨论两种方法来修补Windows内核时,请参阅选项#1)。此外,作者还发布了有关如何手动修补内核的说明

即使你有Windows 7 SP1(构建7601),您可以安装包含内核7600.这是因为你的默认内核补丁不会修改; 新的副本将复制到您的系统文件夹中,并添加了一个附加的引导菜单选项,以使用新的修补内核而不是较旧的内核来引导Windows。虽然我没有发现使用较旧的内核运行Windows 7 SP1时会遇到任何问题,但如果您希望使用的内部版本7601 ntkrnlpa.exe,则需要手动修补内核(请参见上面的链接)。


该修补程序基本上将Windows 7内核修改为与Windows Server 2003 Datacenter Edition更相似,后者在32位模式下最多可兼容8 GB RAM。这使您可以将PAE很好地扩展到Windows 7 32位下的8 GB RAM中。有关Microsoft为什么实施此技术限制的详细信息,请参阅32位Windows Vista中的许可内存(要求从www.geoffchappell.com允许JavaScript )。

如上所述,请注意,即使系统可以访问更多进程,单个进程仍将限制为4 GB。尽管如果您具有8 GB的RAM,那么至少您还有4 GB的空间可用于其他进程;)


对于那些对技术方面感兴趣的人,这是由于内存映射的输入/输出(简称MMIO)而发生的。这允许CPU 通过地址总线本身访问外围设备 RAM。通常,这是通过高阶存储器地址完成的,以避免低阶地址冲突。但是,这导致在32位Windows操作系统的所有消费者版本中产生了众所周知的3 GB内存屏障


4
警告:第一个链接包含一些NSFW内容。
乔恩·塞格尔

警告已添加到响应中,谢谢。我什至没有注意到:S
突破

关于此方法是否有效或不可靠的任何信息?
Mark Gibaud

1
@Mark Gibaud我用了一年没有问题。我只有4GB的RAM,但是至少我能够使用整个东西。请注意,该补丁会修改Windows内核,因此在对系统进行补丁之前,我会进行备份。话虽如此,我从来没有遇到过问题(即使在安装完所有组件之后,我也几次将补丁程序同时应用在台式机和笔记本电脑上)。
突破

1
@突破:这太神奇了。您是否碰巧知道如何让XP做类似的事情?
Mehrdad

17

Microsoft MSDN站点上的本文显示了Windows版本的内存限制,并且32位Windows 7 的内存限制被列为4 GB的限制。

您过去曾经能够使用PAE在Windows XP中看到超过4 GB的RAM,但是此选项在Service Pack 2中被禁用

原因是,如果大多数驱动程序最终停留在4 GB边界以上的内存中,则大多数驾驶员并不了解PAE并将其玩具从婴儿车中扔出。

如果/PAE现在在Windows XP上使用该开关,则可以使用DEP,但看不到超过4 GB的RAM。

对于Windows 7 32位,此4 GB限制仍然适用。如果要查看超过4 GB的RAM,则必须使用64位版本的Windows。

(使用PAE来查看超过4 GB RAM的此选项在32位服务器版本的Windows 上仍然可用,我认为这取决于希望在其上运行Windows Server的硬件类型的驱动程序的质量更好。 )


2
我认为服务器支持的减少归因于更好的驱动程序质量,而更多的是因为系统管理员比妈妈能够更好地处理这种情况。
爱丁斯

1
“原因是,如果大多数驾驶员最终记忆在4GB边界以上,他们就不会意识到PAE并将玩具扔出婴儿车。” -这是否同样适用于Windows 7 32位(使用内核破解)?
Mark Gibaud

2
伟大的马克·鲁西诺维奇(Mark Russinovich)在其“推动Windows的限制”系列博客文章中解释了Windows下客户端和服务器内存限制背后的原因。 blogs.technet.com/b/markrussinovich/archive/2008/07/21/…–
ElvisFanTCB

Windows 7的4GB限制是否包括硬件。我已经设置了PAE并获得了约3.15GB的存储空间。是否有大约1GB的(潜在)硬件用完了其余部分,而ms-windows阻止了超过4GB的使用。在Gnu / Linux上,我可以获得全部4GB。
ctrl-alt-delor 2012年

@richard-地址限制包括其他硬件所需的地址空间,其中最著名的显卡可能会占用4GB的大量内存。
戴夫·韦伯

3

根据MSDN文章“ 物理地址扩展”

如果在支持硬件的DEP的计算机上启用了DEP,或者为该计算机配置了内存范围超过4 GB的热添加存储设备,则Windows将自动启用PAE。如果计算机不支持启用了硬件的DEP或未为内存范围超过4 GB的热添加存储设备进行配置,则必须显式启用PAE。

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

bcdedit /set [{ID}] pae ForceEnable

如果启用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

默认情况下,应启用PAE-Windows已在内部将其用于DEP / 不执行功能。

但是,如果Windows重新执行其操作,这些说明可能会有所帮助。


请注意,即使系统可以访问更多进程,单个进程仍将限制为4 GB。


该链接是错误的。Vista 32位仅将PAE用于DEP,不允许看到超过4GB的RAM。 support.microsoft.com/kb/929605
Dave Webb

但是Niphoet(发布者)使用Windows 7,其限制为8 GB(Home Basic;在其他版本中甚至更多)。
grawity

@grawity:是的,如果您使用的是64位Windows 7,则为8GB。在32位Windows 7中,该限制仍为4GB。–
Joshua

2

如果您的系统支持,则可以使用虚拟化来允许访问您的32位电话驱动程序。

设置会稍微复杂一些,但是您可以设置一个虚拟机来建立连接并与主机进行Internet连接共享,这样您就可以获得64位的好处以及能够使用旧版驱动程序。

VMware Workstation(商业),VirtualBox(免费,开源)和Windows Virtual PC(免费)都可以将USB设备直接路由到您的虚拟机中。只需安装32位操作系统(如果需要,甚至可以安装XP),为它提供少量的RAM,您就可以执行所需的操作。我这样做是为了加载不支持Windows 7的旧应用程序,而我的兄弟实际上是加载了他的旧Creative网络摄像头(没有64位驱动程序),并通过他的虚拟机使用了Skype。


他安装了Windows 7 ...您完全忘了提到“ XP模式”,这是Windows 7中包含的新免费虚拟化功能
。– davr

我没有直接提到XP模式,因为他们没有说他们运行的是7 Professional还是Ultimate(其他SKU均不可用):)
Joshua,

2

Windows 7 32具有PAE,不允许访问超过4 GB的标记。有关详细信息,请参见http://msdn.microsoft.com/zh-cn/library/aa366778(VS.85).aspx

对于那些坚持使用64位的人-有些事情在64位环境中不起作用,这可能会受益于可以在32位环境中访问超过3.25的ram磁盘的性能提高-特别是该页面的应用程序经常。您也可以将页面文件放在所说的ramdisk中。此外,VM很棒,但是仿真的效果从来没有像真实的东西那么好-它实际上完全取决于应用程序及其实现方式。仍然有许多硬件设备无法在64位环境中工作,需要实时访问才能使其正常运行(尽管有加速器可以帮助实时访问,但仍然可能会出现问题。)

因此,尽管64位在技术上是优越的,但32位是一个遗留问题,需要一段时间才能消失,并且人们有很多理由希望人们通过PAE访问内存。

PS:对此帖子有回复,指出将页面文件放在RAM磁盘上没有任何意义。让我解释。如果系统具有4GB RAM,并且您制作了2GB RAM磁盘并将页面文件放在此处,则可以,此配置没有任何意义。但是,如果系统具有8GB RAM,并且您制作了4GB RAM磁盘(访问32位Windows无法达到的额外内存),然后放入页面文件(和temp文件夹,然后打开“ ReadyBoost”并添加其他常用的文件)文件),然后是的,速度非常可观。答案是“是”,您可以获得可以在32位系统上创建超过4GB限制的RAM磁盘的软件。


5
将页面文件放在RAMdisk上没有任何意义。
ElvisFanTCB 2011年

仅当系统中的RAM正常可用时才将页面文件放在RAMdisk上是没有意义的,不是这种情况。
Vojtěch多纳尔

2

请勿使用补丁程序,它只是Windows的德语测试版本,并且会破坏您的启动记录。

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

被警告!


“补丁程序”非常容易实现,您不需要“ easybcd”即可修复启动记录::使用bcdedit.exe修复启动记录非常简单…… RTFM
Eddie B

1

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

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

我在具有相同系统的2种不同台式机主板中尝试了PAE:具有英特尔®奔腾®D处理器3.4GHZ和3.00GB可用Ram的英特尔®台式机主板D945GNT,以及具有英特尔®E7500 2.93GHZ和3.25GB可用Ram的英特尔®台式机主板DG41WV 。均支持64位和4GB Ram。

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

因此,在第二个系统的Ram磁盘中,我为其分配了一个从16MB到700MB的可移动pagesys文件,并在系统的另一个物理磁盘的分区上分配了一个16MB到3300MB的可移动pagesys文件。

我证明了两个事实:1.系统首选Ram交换文件而不是硬盘中的交换文件。我看到它在移动,增长和缩小。2.带有PC Pitstop的基准测试(显示在http://www.pablomolina.net/bench700.png中)显示了系统磁盘速度的极大提高,并且系统运行速度相当快。在工作台上,我比较了Ram磁盘中的700 MB页面文件和同一系统驱动器另一个分区中的700MB页面文件。

您需要使用Microsoft kb / 314834过程将系统设置为在关闭时清除页面文件。

对我来说,PAE在32位系统上有意义,并且可以工作。我不会使用64位系统,因为我专业地使用Windows,并且在过去的几年中积累了450个程序,这将使我花费数月的时间来重新安装。


1

如果您不想修补文件,则可以使用引导加载程序。该Bootloader可以安装在当前系统或USB随身碟上。因此,您可以轻松测试它而不会影响您的系统。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.