Sometimes it’s necessary to install an old Operating System, but you really cannot (or don’t want to) get the old hardware out, even if it would still work.
I was in such a position that I had to install Windows 2000 Server. After locating the installation media, I decided it was a good idea to get it running on the 2019 Hyper-V cluster. This actually can be done, but there are a few hoops to jump through.
Update: This was written with Windows 2000 Adv. Server in mind, but I’ve since discovered the same procedure works for Windows NT4 with SP6a slipstreamed.
– The base VM must be setup with a legacy network card.
– Also the vCPU must be set to legacy mode for this VM.
– The Windows 2000 installation media must have SP4 slipstreamed. (For NT4, SP6a is necessary)
If SP4 is not slipstreamed into the installation media, setup will not even properly start, but will Blue Screen with:
STOP: 0x0000001E (…) KMODE_EXCEPTION_NOT_HANDLED on the driver acpi.sys
If you don’t have the original installation media with SP4 installed, you can download SP4 from WinWorldPC and slipstream yourself as explained here.
Creating the VM
This part is pretty much the standard process. I’ve named my VM: Windows 2000 Adv En, Generation 1 VM type, Startup Memory of 3072MB and make sure Dynamic Memory is turned off. Also leave the network card as Not Connected. (We’ll connect the NIC in a later stage)
Note: I’ve put the RAM to 3GB as Windows 2000 is a 32bit operating system and is not capable of addressing much more without some PAE trickery)
Create a new virtual hard disk. For Windows 2000 you don’t really need a lot, so I gave it 20GB. A lot more than it needs, but it doesn’t really matter. A fixed size seems to be the fastest for the installation, as the formatting of the disk during setup seems faster. Make sure you create a VHD and not a VHDX. The OS intermittently Blue Screens after the installation of the storage drivers when a VHDX is used.
Next remove the SCSI controller. Windows 2000 does not support this SCSI controller and will Blue Screen with:
STOP: 0xC0000263 {Driver Entry Point Not Found} The \SystemRoot\system32\DRIVERS\storvsc.sys device driver could not locate the entry point ZwQueryFullAttributesFile in driver ntoskrnl.exe.
On the install options tick the box to install an operating system from a bootable CD/DVD-ROM, select Image File and browse to where the Windows 2000 iso is stored and click finish.
Enable legacy settings
The following step is to enable the vCPU legacy compatibility for Windows 2000. So open up Powershell in administrator mode and enter:
Set-VMProcessor <VM Name Here> -CompatibilityForOlderOperatingSystemsEnabled $true
So in my case I type:
Set-VMProcessor “Windows 2000 Adv En” -CompatibilityForOlderOperatingSystemsEnabled $true
(Notice the quotes. These are mandatory if you have spaces in your VM name)
If you need network access, you need to setup a legacy network adapter. In the Hyper-V manager select Settings for your VM and select Network Adapter. Click the Remove button. Now click on Add Hardware and add a Legacy Network Adapter. The NIC will stay disconnected if you don’t specifically connected to the virtual switch in the settings of the Legacy Network Adapter. If you have any further network configuration, like named vLANs, you can set these there.
Note: Since Windows 2000 (and this goes for Windows NT3.51, NT4 and 2003 as well) has not had any security patches for years (or decades) and these were not known for a robust security to begin with, be very careful connecting a legacy VM like this one to the internet. Take extra steps to protect your network in these times of ransomware and other malicious software.
From here you can follow the normal setup process for Windows 2000 and this should succeed. During the setup of the operating system, the mouse is not going to be available. You will not be able to immediately add the server to a domain during setup either. The reason for this is that Server 2019 does not offer Windows 2000 compatible integration services. These will have to be installed manually after setup completes.
The latest installable integration services that will install most drivers on Windows 2000 are the vmguest.iso is for Windows Server 2008R2 (Linked below), but the 2008 version will work. Unfortunately Microsoft no longer officially hosts these on their webpage.
Various versions of the VM Guest tools:
Hyper-V2008-vmguest.iso.zip
Hyper-V2008R2-vmguest.zip
Hyper-V2012R2-vmguest.zip
Note: These are zipped .iso files
Product Keys for Windows 2000 (Taken from WinWorldPC):
Professional: RBDC9-VTRC8-D7972-J97JY-PRVMG
Server: H6TWQ-TQQM8-HXJYG-D69F7-R84VM
Advanced Server: WY6PG-M2YPT-KGT4H-CPY6T-GRDCY
Some side-notes for Windows NT 4
For Windows NT there are quite a few limitations. For example there are no plug ‘n play capabilities, there is no Hyper-V video driver available (this means 800×600 in 16 colors) and calling the disk performance sub-par would be a compliment, though this gets slightly better when the SP6a URP is installed, DMA mode for the IDE adapter is activated and write-caching is enabled.
For the video driver within NT there is a work-around. You can install the Universal VBE Video Display Driver (for Windows NT Architecture) from this link. Also, Windows NT doesn’t do SMB Signing, only supports up to SMB 1.0/CIFS (which is now phased out) and you won’t be able to connect to any file-share on more modern OS-es.