With Windows Server 2008 and 2008r2 nearing their end-of-life dates, upgrading older servers to a modern operating system is a pretty common task.
If installing a new virtual 2019 server from scratch and migrating its data + services across from the old 2008 server isn’t an option, there’s an in-place upgrade path from Windows Server 2008 to Windows Server 2019 – provided the old server is running the 64-bit edition of Windows Server 2008.
The upgrade has to be done in two steps: 2008->2012r2 and then 2012r2 -> 2019. In my experience, the 2nd step is possible only if the 2008 server is not running any IIS workloads.
My strategy is to keep the 2008 server running in production while upgrading a copy of its C: drive VHD. Once the upgrade is complete, we shut down the live 2008 server, replace its C: drive VHD with the upgraded 2019 VHD and start the server again.
The end result is a Windows 2019 server with a D: drive containing all the data from the old 2008 server
In the example below, we make the following assumptions:
- The old server is the only Active Directory Domain Controller.
- The old server is well virtualized with its operating system running in one VHD file and its data sitting in a separate VHD file.
- The Active Directory database resides on the C: drive
- The Hypervisor in use is Hyper-V. The process is very similar in the case of VMWare/Esxi though.
- The old server is running Windows Server 2008 x64 (x32 cannot be upgraded)
In-place upgrade process:
- Make a copy of the live Windows Server 2008 C: drive VHD
- Create a new VM using the 2008 VHD
- Attach the new VM to an internal HyperV switch
- Boot the new VM
- Mount the 2012r2 ISO as a DVD drive in the 2008 server
- If the 2008 server is a Domain Controller – Run adprep /forestprep + /domainprep from the 2012R2 install / support files
- Remove the IIS role (if any). Skipping this step will cause the later 2012r2->2019 upgrade to stop with an error about Windows components.
- Launch the 2012r2 setup and when asked, go with the Upgrade option followed by Keep apps + files
- Boot the recently upgraded 2012r2 VM
- Run Powershell as admin and issue: Remove-WindowsFeature RSAT-NIS (skipping this step will cause the 2019 setup to throw an error about UNIX support)
- Mount the Server 2019 ISO as a DVD drive in the 2012r2 VM
- Run the 2019 adprep /forestprep + /domainprep
- Start the setup.exe from the mounted 2019 ISO and go with the Upgrade + Keep files+app options
- Once the upgrade is complete, shut down both the live 2008 server and the upgraded 2019 server
- Attach the 2019 C: drive VHD to the live 2008 server and boot it up
- Assign the correct IP address to the 2019 NIC
All-in-all, the process takes three to four hours to complete. The only downtime for the users occurs during steps 14-16 and those normally take less than 15 minutes to complete.