Windows Server 2008 provides an in-place upgrade option for installing the new OS on an existing server. Unlike a clean installation, an in-place upgrade keeps files, settings, and programs intact while the OS is upgraded. In general, an upgrade is a more complex process than a clean installation, and it requires some careful preparation (e.g., reviewing application compatibility information, backing up the server’s data and configuration information, including boot and system partitions and system state data) ahead of time.

The Server 2008 upgrade option is supported from Windows Server 2003 SP1 or later versions of the OS but only in limited scenarios. Cross-architecture upgrades are not supported. For example, you can upgrade a 32-bit Windows 2003 server to 32-bit Server 2008 and an x64-based Windows 2003 server to x64-based Server 2008, but you can’t upgrade a 32-bit Windows 2003 server to x64-based Server 2008. Upgrades from Windows 2003 for Itanium-Based Systems to Server 2008 for Itanium-Based Systems are not supported, and you cannot upgrade from any OS to a Server 2008 Server Core installation; Server Core is always a new installation or an in-place upgrade on itself. No in-place upgrade path exists from Windows Server 2000 or Windows NT Server to Server 2008.

Upgrades are really only practical for Windows 2003 systems running OS components and nothing else. Just because the OS can be upgraded doesn’t mean that the software running on the server will support an OS upgrade process. For example, Exchange Server 2007 SP1 will run on Server 2008, but Microsoft will not support an in-place upgrade of x64-based Windows 2003 to x64-based Server 2008 with Exchange installed. I had an antivirus program that ran fine on a Windows 2003 system cause a problem. After I upgraded to Server 2008, the antivirus software wouldn’t let the server boot because the driver was unsigned.

The reasons for such problems are numerous, but a key reason is that Server 2008 is an image-based installation. With Server 2008, you cannot “upgrade” in the traditional sense of replacing OS files and updating components. Instead, you essentially have to break down the existing system into “the OS” and “everything else” (e.g., files, registry settings, component registration), shove all of it into a backup folder, lay down the Server 2008 image on the system, put back the “everything else,” and finally look at the installed Windows components and work out which Server 2008 roles and features those components equate to.

To further complicate matters, some server roles require special handling. For example, if you want to upgrade a Windows 2003 domain controller (DC) to Server 2008, you must first prepare the Active Directory (AD) forest and domain for the introduction of a Server 2008 DC. To do this, you use the Adprep command-line tool (located on the Server 2008 installation disk in the \sources\adprep folder), which extends the AD schema and updates permissions as necessary so that the domain can support a Server 2008 DC. (For more information about the Adprep tool, see technet2.microsoft.com/windowsserver2008/en/library/aa923ebf-de47-494b-a60a-9fce083d2f691033.mspx?mfr=true.)