Monday, January 27, 2014

Poor Man’s Test Lab + Windows Server 2012 R2 & Intel 82579 Gigabit NIC: Some Magic Required…

The nerd and a big pile of computers…
In the old days, being single and not having to care for anyone but myself, I had many computers running. Yes, the bill I paid to the company delivering the so much required juice for all those machines was happy with me being their customer. I ran almost all the software published by Microsoft back in those days, allowing me to learn a lot and also to know what I didn’t like at all.

All these computers, switches and so on were to be found in the whole house: the living room, a separate room and even in the bed room. Guess I was a geek in those days…

Single > living together > married > kids
Yes, that happened to me. And I am happy with it. But something had to give. So the Omni presence of the computers was reduced. Step by step it happened. First the computers retreated to the dedicated computer room.

When that was done, it wasn’t the end of it all but the start of the second phase. So soon the number of computers was reduced to only a few, stripping down the labs I had running to the bare essentials and sometimes even less.

But I didn’t care since my life was changing a lot and room had to be made for the kids

Loving Moore’s Law
Back in those days multiple computers were required in order to build yourself a proper test lab. But now, thanks to the ever speeding developments (hard- and software wise) this isn’t needed anymore.

Powerful processors have become cheap, same goes for high speed memory and SSD drives. So even for a relatively small budget one can build him/herself a very decent test lab running on a single computer. Combined with a proper hyper visor and you’re in business.

Desktop as a poor man’s test lab
Some time ago I purchased myself a powerful computer running a good CPU, 32 GBs of high speed RAM and two 256 GB super fast SSD drives. This PC became my test lab, running Windows Server 2008 R2 SP1 with Hyper-V, allowing me to run many VMs.

WS 2012 > WS 2012 R2 and no network!
Soon the upgrade to Windows Server 2012 happened and some time ago, the upgrade to Windows Server 2012 R2. Even though Windows Server installs great on a huge set of different hardware, I had issues.

Actually, the same issue I experienced when installing Windows Server 2008 R2 SP1 and upgrading it to Windows Server 2012 RTM.

And now, upgrading to Windows Server 2012 R2 I was bitten by the same issue again: the NIC didn’t install!

NOT a Windows issue but Intel is a bit unfriendly…
However, as it turned out, it’s not a Windows issue at all. The system I use is meant to be a desktop. The Intel mobo has an onboard NIC, the Intel 82579 V Gigabit LAN. Even though the drivers are updated to support Windows 8.1 x64, these drivers DO NOT work with any Windows Server OS version. Simply because the driver blocks it!

Along came the community
However, I am not the only one, ‘pushing’ desktop systems to their limits and even beyond. So soon I found this posting by Ivo Beerens – which aided me in the past – all about getting this NIC to work on Windows Server 2012 RTM.

However, for Windows Server 2012 R2 things have changed slightly. I have adjusted the required steps in order to get it working for Windows Server 2012 R2. None the less, without Ivo’s posting I couldn’t have ake it work, so a BIG thanks to Ivo Beerens!

Taken directly from HIS posting. In RED are the changes required for Windows Server 2012 R2:

  1. To be able to modify the drivers you need to run the the following commands:
    • bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
    • bcdedit -set TESTSIGNING ON
  2. Reboot the system
  3. Download the Intel drivers from the motherboard vendor or from Intel
  4. Extract the files to a temporary folder
  5. Open the folder PRO1000
  6. Open the folder Winx64
  7. Open the folder NDIS64
  8. Open the e1d64x64.inf file, I used Notepad++  to edit the file
  9. In the [ControlFlags] section delete ALL the 3 lines
  10. Select and copy the three E153B lines found under the header [Intel.NTamd64.6.3.1]
  11. Paste the 3 lines in the [Intel.NTamd64.6.3] section below the %E155ANC lines
  12. After the modifications the e1d64x64.inf file must look like this:
  13. Save the file
  14. Install the driver. This is where I used another method:
    1. Device Manager > select the disfunctional network device > Properties > Driver > Update Driver > choose Let me pick from a list of device drivers on my computer > Have disk > Browse > and select now the modified file (e1d64x64.inf).
    2. You’ll get the warning about installing an unsigned driver, ignore it. Follow the wizard and soon the NIC is in working condition!
  15. Enable the driver integrity checks and disable test signing again by using the following commands:
    • bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
    • bcdedit -set TESTSIGNING OFF
  16. Reboot the system.

And now your poor man’s lab is ready to ROCK!!!

Again, all credits go to Ivo Beerens since his posting pointed me in the right direction.


Unknown said...

It’s worked!
Thank you very much.

Eirik Norum said...

Hello, I get the 82579LM driver up when I do what you described. What have I done wrong? Have the same network card as you, the V.

Eirik Norum said...

I get the 82579LM card driver when I follow your guide, but it works. Is that correct?

Marnix Wolf said...

Hi Eirik.

When the result is that you've got yourself a working system, you're in good shape I guess.

Only wondering where you got that driver from :).

My appologies for my late answer, but I've been busy lately.


Unknown said...

This was excellent and saved me big time. Except one problem, I found that Hyper-v doesn't work well with this workaround. If you install the Hyper-v role on Windows 2012 and use this workaround then, when you attempt to stop and start a VM or do anything with it the machine will go into a critical state. If you disable the networking capabilities of the VM then it can be easily stopped and started, no problems at all. It would be spectacular if you had a fix for that!