In-place upgrade of Windows Server 2008 to Windows Server 2019

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:

  1. Make a copy of the live Windows Server 2008 C: drive VHD
  2. Create a new VM using the 2008 VHD
  3. Attach the new VM to an internal HyperV switch
  4. Boot the new VM
  5. Mount the 2012r2 ISO as a DVD drive in the 2008 server
  6. If the 2008 server is a Domain Controller – Run adprep /forestprep + /domainprep from the 2012R2 install / support files
  7. Remove the IIS role (if any). Skipping this step will cause the later 2012r2->2019 upgrade to stop with an error about Windows components.
  8. Launch the 2012r2 setup and when asked, go with the Upgrade option followed by Keep apps + files
  9. Boot the recently upgraded 2012r2 VM
  10. 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)
  11. Mount the Server 2019 ISO as a DVD drive in the 2012r2 VM
  12. Run the 2019 adprep /forestprep + /domainprep
  13. Start the setup.exe from the mounted 2019 ISO and go with the Upgrade + Keep files+app options
  14. Once the upgrade is complete, shut down both the live 2008 server and the upgraded 2019 server
  15. Attach the 2019 C: drive VHD to the live 2008 server and boot it up
  16. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>