All of the major hypervisor vendors support Windows operating systems running within a virtual machine, but typically...
support only very specific versions. Even Microsoft does not support every version of Windows running as a guest OS, because support for legacy versions of Windows such as Windows Server 2003 and Windows XP has officially been discontinued.
Even though some legacy Windows OS versions are no longer officially supported, there are numerous organizations that are still running unsupported operating systems. Very often there is a legitimate business need to run such operating systems inside a virtual machine (VM). Unfortunately, not all legacy Windows versions work well with every hypervisor.
So, what can you do if you need to install an unsupported legacy Windows OS into a VM, but find that the OS is problematic? The most obvious thing to do is to look online for a solution. Someone out there has probably already figured out how to make the OS in question work with your hypervisor. It is worth noting, however, that online searches can sometimes turn into a wild goose chase. Tech message boards often contain misleading or inaccurate information, so the solutions that you find online may or may not work.
If you are having trouble getting the legacy OS to work properly within a VM, there are a few things that you can do that may get things working for you. One possible option is to temporarily accept poor experience and press onward. For example, if you attempt to install Windows XP into a VM, you will very often find that the screen resolution leaves a lot to be desired and that there is no mouse support whatsoever (the actual experience depends on your hypervisor). If you can complete the setup using nothing but the keyboard (which is possible to do), you can install the VMware Tools or the Hyper-V Integration Services, which will enable mouse support and a higher display resolution, and may fix a variety of other issues.
Another thing that you might be able to do is to create a slipstreamed installation source. Just for the sake of example, let's pretend that you need to install Windows XP and keep getting errors when you attempt an installation. Slipstreaming the installation media may make those errors go away. Slipstreaming is a technique by which service packs are added to installation files. You might, for example, use slipstreaming to create a Windows XP SP3 installation DVD (or ISO file). Keep in mind that I am only using Windows XP as an example. Most Windows operating systems allow the installation files to be slipstreamed. The exact procedure varies from one Windows OS to another, but the instructions are widely available online.
Modify the VM
One last thing that you might be able to do is to simplify your VM's hardware configuration. In some cases, the VM's virtualized hardware is incompatible with the operating system's hardware abstraction layer. It is sometimes possible to get around these problems by creating a first generation VM and removing any unnecessary hardware components (such as floppy drives, LPT ports, etc.).
In some cases, using hardware emulation will help to resolve compatibility issues. For example, Hyper-V will allow you to use an emulated network adapter rather than a virtual network adapter.
You can also check the VM's CPU mode. Hyper-V exposes the CPU mode as a live migration setting. It is normally impossible to live migrate a VM to a host server that has a CPU architecture different from the current host. However, Hyper-V provides a CPU compatibility mode that you can use to enable live migrations for the VM. The reason why this works is because enabling compatibility mode disables advanced CPU features. It is possible that you may be able to use this feature to run a legacy Windows OS that would otherwise have trouble with the virtual CPU.
There are any number of things that you can do to force a legacy Windows OS to run within a VM. The real key is remembering the OS's hardware limitations. For example, you shouldn't allocate an excessive number of virtual CPUs to a VM running a legacy OS that was never designed to handle more than two CPUs. Similarly, don't make the mistake of allocating more than 4 GB of RAM to a VM that will be running a 32-bit OS. It may even be a good idea to avoid using dynamic memory when running an outdated OS.
Is the public cloud the best place for legacy apps?
When and when not to virtualize legacy apps
Guest OS support and Microsoft conflicts
Legacy OS and virtual server migration challenges
Extend the life of outdated applications with application refactoring