After upgrading to 2008 R2 Enterprise and installing more RAM, Windows can only see 4.00 GB

64-bitlicensingmemorywindows-server-2008

(I have also posted this on technet but I'm running out of ideas)

I've upgraded from Windows Server 2008 R2 Standard to Enterprise in order to make use of more RAM. The server previously had 32GB of RAM.

The upgrade from Standard to Enterprise, using DISM, seemed to go OK, so I powered down and installed the RAM. This a Dell Poweredge T710, I was taking it from 32GB to 72GB.

The BIOS recognised the RAM, although I needed to change from "Advanced ECC" to "Optimizer" mode for it to use all of it.

After rebooting, windows can see the RAM but in the system panel will display:

Installed memory (RAM): 72.0 GB (4.00 GB usable)

In the resource monitor, the remainder of the RAM is showing as reserved for hardware. I've tried various RAM configurations, including reverting it to the same chips and same configuration as before the upgrade, but always just 4.00 GB is showing up as usable. Following some threads on these forums I've gone into msconfig and set the maximum memory "by hand" but that doesn't fix the problem. BIOS doesn't seem to have anything that looks like memory remapping which is another suggestion that has come up.

How do I make this RAM available to Windows? It was available before the upgrade, because I could use the full 32GB RAM the server had to start with.

A screenshot (this is after reverting to the original RAM configuration)

enter image description here

I don't know if it's related, but my remote desktop configuration has also disappeared:

screencast.com/t/mYedomeQWS

(the bottom half of this dialog should allow me to configure Remote Desktop, it was working before the upgrade but now it isn't).

UPDATE

I have found a temporary answer – but it gives me another problem. Here's what I just posted on technet, where I also asked this question:

OK, I have temporarily got round the problem – it's not the BIOS – but now I don't know how to fix it permanently.

The clue came from this thread, where C Clarke appears to have done the same things as me:

"We had "updated" these from Standard
to Enterprise, using the DSIM utility
and the generic KMS key available off
of MS web site. We had then changed
the license key, from the GUI to be a
valid license key for Enterprise.
After a reboot RDP was not working."

"Just now I reverted to the "generic"
KMS key and everything is working…"

later on he says:

"Then I used another valid MAK key,
and everything still worked. If I use
the other one (which is now working on
a completely rebuilt server), it
doesn't – also says 4GB usable out of
48GB RAM….?.."

…exactly the same symptoms as me; only 4GB usable RAM, no RDP.

I've just changed the product key on our server to use the generic KMS key for Enterprise – and all is good. I have RDP, and I have 72GB RAM.

But – I'm now using a key for which I don't have a license. This server is purely for development and testing (right now we need to have 20 VMs up at the same time, hence the need for extra RAM beyond 32GB and therefore Enterprise).

Originally, the server came with a Dell OEM key for 2008 R2 Standard, it didn't start off with the MSDN key for 2008 R2 Standard.

So, my question now becomes – how do I apply the MSDN Enterprise key and still retain more than 4GB usable RAM, RDP, and perhaps other features that I didn't spot were missing?

Am I going to have to rebuild the server using the MSDN Enterprise key? Is it not possible to follow this upgrade path (OEM Standard Key -> MSDN Enterprise Key)?

UPDATE

Now I know what the real question is, I have asked it separately:

How do I upgrade Windows Server 2008 R2 Standard (OEM Key) to Enterprise (MSDN Key) using DISM?

Best Answer

While I don't have a "here is your problem" answer, I do have a method of helping identify what may be the problem. Based off of what I'm reading here and what I can see on my own servers, Device Manager should be able to help you identify what's going on.

If you open Device Manager, change the view to "Resources by Connection" (not "Devices by connection"). The "Memory" node in there will give you a list of memory reservations by your hardware. Hopefully, the thing that's eating all but 4GB of your RAM will be listed in there. You'll have to convert the hex to RAM sizes, but it can be done.

Device Manger output

In this case, the first PCI bus entry is reserving 128KB. The second "Motherboard resources" entry is reserving 64MB. The third PCI Bus is consuming 336MB. And so on.

Once you've identified the device, you're further along than you started.