Make Windows 7, 8, 10 and Vista 32-bit (x86) Support More Than 4GB Memory
As you’ll know, there has been 2 versions of each Windows starting from XP which are 32-bit and 64-bit editions. Sometimes a Windows 32-bit is referred as x86 and 64-bit as x64. We won’t go into details on what are the differences between x86 and x64 are, but one of the major differences is a 64-bit Windows can support more than 4GB of RAM. If your computer has 4GB of RAM and you’re using a 32-bit Windows, you’ll notice that only about 3GB – 3.5GB is being recognized and the remaining memory is gone. Weirdly, Windows 2003 and 2008 can already address more than 4 GB of memory so why can’t we do that with Vista and newer operating systems?
The answer is: Microsoft doesn’t want that and it’s all just a licensing matter. Contrary to popular belief, there is no physical reason why a 32-bit Windows cannot access memory above 4GB, but it’s more a case of Microsoft opting not to allow it. Read the findings of software analyst Geoff Chappell to find out more.
We can of course go for a 64-bit version of Windows, but even today, there is still quite a lot of software which cannot run properly on x64, which can be inconvenient if you’re someone like us who installs and tests a lot of software. Not only that, Windows 64-bit doesn’t accept unsigned drivers unless you disable driver signature enforcement manually every time you boot. Quite frustrating… Well, here is good news for Windows 8, 7 and Vista users because we have some patches here to make your 32-bit Windows support more than 4GB of memory.
There have been a few 4GB patchers available, but unfortunately most of them haven’t been kept up to date. For example, the RamPatch tool over at unawave.de works quite well on Windows 7 RTM, but was never updated to reflect the changes to the kernel files in Service Pack 1. Also the program was removed from the website due to many false positives from antivirus software.
We have tracked down the program and you can download and try it out on Windows 7 if you wish. Although some users have reported no issues running the patched kernel file from SP0 on an SP1 install, we suspect there may be stability or compatibility problems that will arise as a result of this at some point. Consider this program a useful tool to test with and perhaps not something to use permanently.
Luckily, there is a method which has been kept more up to date, and although it’s not quite as easy to implement as the RamPatch tool above, it’s still not that difficult. PatchPae2 is by Wen Jia Liu, also known as “wj32” who is behind the excellent Process Hacker task manager software. This is a small command line tool that will patch the needed system files to enable 4GB and more of memory in Windows Vista SP2, Windows 7 RTM and SP1, and Windows 8 RTM 32-bit. Follow the steps below to enable a patched system, the core system files ARE NOT overwritten meaning you can revert back without too much fuss.
1. Download the PatchPae2 command line tool and extract the zip file to a folder of your choice. For our example, we’re extracting to the root of the C drive.
2. Open a Command prompt with Administrator privileges by pressing the Win key, typing cmd into the search box and then simultaneously pressing Ctrl+Shift+Enter. Then type the following:
cd C:\Windows\system32
3. Now, Windows Vista and 7 users type:
C:\PatchPae2.exe -type kernel -o ntkrnlpx.exe ntkrnlpa.exe
Windows 8 users type:
C:\PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe
This makes a copy of and then patches the Windows kernel file to enable the extra memory of 4GB and above.
4. Type the following to make a copy of and disable signature verification in the Windows loader file:
C:\PatchPae2.exe -type loader -o winloadp.exe winload.exe
5. Enter this to create an entry in the Window boot menu, you can change the text in quotes to what you want:
bcdedit /copy {current} /d “Windows Vista/7/8 (Patched)”
This should give you a “successfully copied to…” message with a number of BCDID characters returned in brackets, make a note of them as you will need to enter them in the following commands.
6. Enter the following commands in turn, pressing enter after each. Replace BCD_ID with the ID you got from step 5:
bcdedit /set {BCD_ID} kernel ntkrnlpx.exe (for Win 8 use ntoskrnx.exe)
bcdedit /set {BCD_ID} path \Windows\system32\winloadp.exe
bcdedit /set {BCD_ID} nointegritychecks 1
Now reboot your computer and you should get a new entry on the Windows Boot Manager to run the patched operating system.
The good thing here is if you have problems, you can simply switch to the unpatched normal system by rebooting because the kernel files were copied and not overwritten. When you boot the patched system, a quick check should show that your amount of memory is now fully utilized. Do note that you still might not get access to all memory if some of it’s shared with the video adapter, e.g. 512MB onboard graphics.
As you can see from the image above, we now have a 32-bit Windows 7 showing there is 6GB of installed RAM available.
This next image shows that Windows Resource Monitor confirms there is 6GB of memory installed and ready to be used, with over 5GB still available for use.
If you want to uninstall this patch again from your system, simply boot into the unpatched Windows, press the Win key, type msconfig and press enter. Then select the boot tab and highlight the patched boot entry, click Delete. This screen can also be used for reducing the timeout and selecting the patched install as the default o/s to boot into if you plan on keeping it permanently.
Also optionally go into C:\Windows\System32 and delete the ntkrnlpx.exe and winloadp.exe files. If after a Windows update you find the patch no longer works, re-run the command from step 3 to patch the kernel file again.
Important Note: Do be aware that PatchPae’s developer offers no support of any kind for this tool and if it works, fine, if it doesn’t, forget about it and move on. It’s also important that you make full backups of your system prior to trying PatchPae. Even though it does not overwrite any system files, that does not stop users from being unable or unwilling to follow the guide correctly, which could stop the system from booting into Windows.
It worked for me, just follow the instructions. In step 4 if you get “Failed” just ignore and proceed with the steps, you can disable signature verification at startup by pressing F8 and selecting the last entry.
Intel Core i5 760 @2.8GHz with 8GB RAM, running Windows 7 Ultimate.
This f***ed up my windows. Now i have to install windows again. Only makes copy? LIE . Does not affect your current windows ? LIE
If you have had so much trouble you likely have not followed the guide properly or you tried to cut corners. Had you followed the guide correctly you would have had a separate boot menu entry for the 4GB patch and your original boot entry that can be used to boot normally without the patch.
The whole point of this tool is it does NOT overwrite any system files and instead makes a copy of a couple and then uses them to boot the system. So I’m afraid they are not lies and you are mistaken. Whether your files were overwritten or not, it would have been entirely possible to get your system back up and running without too much trouble.
The patchpae2.exe file from Wen Jia Liu (wj32.org/wp/2016/02/01/pae-patch-updated-for-windows-10/) does not work with an up to date Windows 7 SP1 installation due to a new loader from Microsoft. However, Jarek has modified the patcher to work correctly with the new loader: jurasz.de/en/jarek/patchpae2.
If you attempt to boot using the steps outlined above with the original patcher from wj32 then Windows 7 will detect a problem and “attempt to fix it” (however, you can just reboot and select the non PAE boot entry to get back into Windows). Which may be what the OP was talking about, albeit poorly explained.
As was mentioned by Zaltko, In step 4 it “Failed”. And as was mentioned by RoboCop, “”attempt to boot using the steps outlined above with the original patcher from wj32 then Windows 7 will detect a problem and “attempt to fix it” “”. Rather than do a hard shut down I let it proceed, eventually it said it could not be fixed. After reboot I was able to boot to the unpached version successfully. I then proceeded to the download @ jurasz.de/en/jarek/patchpae2. It is just the executable .exe. I saved it to disk and copied it to C:\. Rather than removing the previous patch I followed the steps mentioned at the bottom of the above Instructions regarding updates, “” If after a Windows update you find the patch no longer works, re-run the command from step 3 to patch the kernel file again””. I figured being in the system32 directory would still apply so ran step 2, 3 and 4 using the executable from jurasz.de/en/jarek/patchpae2.
I have successfully booted using the patch! Thank you very much for your hard work. And thank you to those of you with positive comments. As mentioned above some of your comments were key to success! Thanks again!
After successful boot, system appears to be much faster, Firefox seems to be loading in about 1/3rd the time it was before and is less laggy, Microsoft Word just pops! No wait! Truly Awesome! Someone mentioned something about instability.. Cannot comment on that at the moment as posting this comment is one of the first things I have done since the successful boot only about 40 minutes runtime since boot but so far looks great
System Config: Sun Ultra 40, 2x Opteron Dual Core 280, 16Gig RAM, AMD ATI Radeon 7870, on Windows7 Ultimate SP1.
It worked for me, but Windows 7 became unstable. My computer rebooted randomly twice before I decided to delete it. Windows isn’t as fast as before, and my hard drive works harder when I open my browser.
Acer Aspire 4720Z Pentium Dual T2310 1.5Ghz ,Vista Home Prem SP2,
with (2) 1 Gb ram =2 Gb
now (2) 2 Gb ram with PAE Patched = 3 Gb ram
Using current setup, until solution for 3Gb to 4Gb is found
Hello, it works for Windows 7 starter? thanks.
It also failed to me in step 4, using Windows 7 Pro and 16GiB of RAM installed.
I patched mine and the signature override failed, but I completed the patch and made it default boot os in msconfig. when i start my comp i press f8 and select the option at the bottom to ignore signature verification. my comp is now using the full 8gb installed and super fast