Testing Windows Server 2008 using Virtual PC (step-by-step)

Windows Server 2008 is just around the corner. The Beta 3 bits are publicly available, “release to manufacturing” should happen by the end of the year and the launch event date has been announced: February 27th, 2008.

There are plenty of new things to investigate. The installation process is completely different from Windows Server 2003. Adding and removing components is now done by role and/or feature, in an entirely new tool called Server Manager. There version 3.0 of the MMC is included and Powershell is available as a feature. IIS7 is more modular and includes both 2.0 and 3.0 versions of the .NET Framework. You can now encapsulate all settings in the web application folder itself, you can store the entire server configuration plus all site files in a file share and you can delegate management of an individual sites. Windows SharePoint Services 3.0 is also included. Directory Services has a Read-Only Domain Controller option and you can stop and start the service to performance maintenance without a reboot. Service hardening is taken even further, with the Firewall helping with both inbound and outbound traffic. You can prevent the use of USB storage devices on your server via a simple Policy. The network stack allows IPv4 and IPv6 side by side and your TCP window size changes dynamically. NAP allows you to quarantine clients that don’t comply with policies you set. Failover Cluster setup is now a simple wizard and geographically dispersed servers can be clustered without VLANs. Terminal Services allows seamless execution of remote applications with an HTTPS-based gateway included. And then there’s the Server Core installation, which lets you deploy certain roles without including client-type components like Internet Explorer, Outlook Express or Media Player.

I could keep on and on with the feature list, but you probably already got the point. Unlike Windows Server 2003 R2, which many have simply ignored, this next Windows Server release will make waves. Big waves. That means one thing if you use Windows Server: you have a lot of learning and testing ahead of you. That’s why I decided to put together some step-by-step instructions on what you need to get you’re your virtual lab going. Let’s get started! You have no time to spare…

a) Get a computer

For starters, you’ll need the best computer you can find. It can be running any currently supported version of Windows client or server (Windows XP, Windows Vista, Windows Server 2003 or Windows Server 2003 R2). Ideally you should get a hold of a dual-core, 2GHz box. You can do it with less CPU, but you probably shouldn’t go for anything below 1GHz, since we’re planning to use Virtualization for most of it. You don’t really need a 64-bit system for the testing, but it won’t hurt either.

You will absolutely need at least 1GB of RAM, but 2GB will allow you to test more complex scenarios with multiple servers. You will also need disk space, at least 15GB of it, but again you can do more testing if you have more space. Consider getting yourself an external drive for additional storage and for saving your work on each role. Last but not least, you will need a good internet connection to download a DVD-sized ISO image.

While performing the testing you will end up using all the CPU and memory this computer has to offer. You might also end up using all the disk space as well. However, you can actually do all the testing without wiping this computer clean. In fact, due to the beauty of virtualization, you can actually continue to use the computer for whatever you used it before. At least when you’re not actually performing your Windows Server 2008 testing. If you do intend to run this on a system you already use for other purposes, make sure you are able to close all other applications every time you start your testing. You will need all CPU ad RAM you can get.

b) Create a Folder

While doing your testing, you need to have a folder (actually a few folders) to store all your data. You will be downloading a few software items (including the ISO image) and you will be creating some large virtual disks and tiny virtual machine configuration files. You can put them wherever you have enough free disk space in your C: drive or in an external hard drive. In fact, many recommend using a fast external disk for better performance. But please get organized. You will have enough to keep track already.  One option is to place everything on the default “<my document’s path>My Virtual Machines”. On my Windows Vista machine, that points to “C:usersjbDocumentsMy Virtual Machines”. You could place the the ISO file(s) in one folder and the actual images in a second one. I actually chose to place all my downloaded content on “C:usersjbDocumentsMy Virtual MachinesISO” and all my virtual machines on “C:UsersjbDocumentsMy Virtual MachinesVM”. You should consider creating a subfolder under your virtual machines folder for each set of related images.

c) Get Virtual PC

If you want to get serious about learning Windows Server 2008, you will need to install it several times, in different roles and configurations. You should also keep in mind that after Beta 3 we should have at least one Release Candidate and the final RTM version. To stay on top of things, you will likely need to redo some or most of your work once these new releases become available. Your best shot at being able to do all that testing with the least amount of effort is virtualization. You download the ISO image of the DVD and can try all different kinds of installs and configurations a lot faster. If you manage to get 2GB of ram, you can even run multiple virtual machines at the same time and play with scenarios like two domain controllers with one of them being read-only or a server with a client to test policies. With 4GB of RAM you will be able to try many roles at the same time, like a NAP scenario with a few servers/clients or a DC/DNS server plus load balancing web servers.

If you want to go old style and get a bunch of separate computers and test things without virtualization, you can surely do that. You will also require physical boxes if you need to test the 64-bit versions, which will  not under Virtual PC or Virtual Server. If you're lucky have access to a lab environment with a few spare servers, you should definitely try the pre-release versions there as well. This will give you invaluable information about how your environment will behave, if your devices have the proper drivers available, if your network gear functions properly, etc. But even in this case I would start with some virtual testing to get some experience before moving to the real lab.

These days, both Virtual PC and Virtual Server are free downloads. Windows Server Virtualization, when it becomes available for testing later this year and RTMs next year, will also be available at no additional cost and will include that support for 64-bit (and a lot more). If you’re not familiar with Virtual Server, you can keep it simple and use Virtual PC. That’s what I will be using here:

c1) Go to https://www.microsoft.com/virtualpc and click on “Get free download” and then click on the “Microsoft Download Center” link.
c2) Select between the 32-bit and 64-bit version and click on the corresponding “Download” button. If you’re not sure which one you need, you probably need the 32-bit one.
c3) Click "Save" to download the file. Select your download folder as the destination (that’s the folder you selected in step b).
c4) After you finish the download, you will end up a SETUP.EXE file on your download folder. Run it.
c5) If you are running on Windows Vista with UAC, you will be prompted for elevation. Click “Continue” to confirm.
c6) Click “Next” on the initial wizard page. Click to accept the EULA and click “Next” again.
c7) Enter your name and company, select to install for “All Users” and click “Next” once more.
c8) Keep the default “C:Program FilesVirtual PC” path and click “Install”.
c9) Wait for the install to complete and click "Finish".

d) Get the Windows Server 2008 bits and key

The next thing you need to do is get the actual Windows Server 2008 Beta 3 media (in the form of a single, very large ISO file) and the required key to install it (a 25-character code you will need during the installation). The Beta 3 is available for download at no cost at this point, although you will need to register to get it. Here are the steps:

d1) Go to https://www.microsoft.com/technet/prodtechnol/beta/lhs/default.mspx, select your language under the “Download the Beta 3 software” side and click on “Go”
d2) Enter your Windows Live ID username/password and click on “Sign In”. If you don’t have one, use the “Sign up now” button to get it.
d3) Click on “Continue” next to the line that says “Windows Server 2008 Beta 3 Enterprise”. 
d4) You order will be processed (this could take a while). The resulting page should show your order and the total value should be $0.00.
d5) Review the terms, check the “I agree” box if you do agree :-) and click on “Place Order”.
d6) Finally, you will see the Order Confirmation page, which includes your product key and a link to the download page. Print this page or write down the key.
d7) Click on the “Download Windows Server 2008 Beta 3” to start the download of the ISO file. This will take you to the download page.
d8) Click on the “Download” button next to the x86 file for your language. For English, it will be “wsl_6001.16510.070417-1740_x86fre_server-KB3SFRE_EN_DVD.iso”.
d9) Click "Save" to download the file. Select your download folder as the destination (that’s the folder you selected in step b).
d10) Wait for the download to complete. Be patient… That’s a 1.8 GB file.
d11) You will also receive an e-mail from “service@microsoft.com” with a link to the order confirmation page, where you can review your key and the link to the download page. Save that e-mail.

If you are an MSDN or TechNet subscriber, there is actually a post-Beta3 release already available. That version is not publicly available and you need to be a paying subscriber to get it. If you are a subscriber you already know how to download files and get keys from MSDN or TechNet. You will find it under “Operating Systems”, “Windows Server 2008 June 2007 CTP”,  “Windows Server 2008 June 2007 CTP Enterprise, Datacenter and Standard Editions”, “English”, “Windows Server 2008 June 2007 CTP Enterprise, Datacenter and Standard Editions (x86) - DVD (English)”. The 1.8 GB file name will be “en_windows_server_2008_ids3_enterprise_datacenter_standard_x86.iso”. This IDS3 file is only available for download there in the English language.

Please keep in mind that you need the x86 version, not the x64 version, for your testing with Virtual PC. Even if your host OS (the OS where you installed Virtual PC) is running a x64 version of Windows and you’re using the 64-bit version of Virtual PC, the guest OS (the virtualized environment) is not. You will need the x64 version only if you’re running on real hardware that supports 64-bit or when you get your hands on the new Windows Virtualization Services that will become available later. In our case, we’re using Virtual PC with 32-bit guests, also referred to as x86 environments.

e) Create a Virtual Disk

The next thing you need to do is create a Virtual Disk. You can actually do it while you create the Virtual Machine, but I wanted to address this separately since there are many options there. Keep in mind that you will need at least one Virtual Disk for each server. You might use more than one, as you can many times do in a real computer. For your initial testing you can start with a simple, dynamically expanding disk. As you get used to this, you can try more sophisticated combinations like multiple Virtual Disks (say one for the OS+apps, one for logs, one for data) or differencing disks.

Virtual Hard disks are basically files with the VHD extension which emulate a physical hard disk. You could pre-allocate space for them, but you typically use the option to start with a blank disk that grows as the guest OS writes to it. VHD files created with Virtual PC work fine with Virtual Server and you should also be able to use them in the future Windows Virtualization. In 2006, Microsoft provided access to the VHD Image Format Specification Document as a part of the Open Specification Promise (OSP). You can read more about it at https://www.microsoft.com/technet/virtualserver/downloads/vhdspec.mspx.

Now, here are the steps to create your first Windows Server 2008 virtual hard disk:

e1) Open the Virtual PC Console application (In Windows Vista, click Start, All Programs, Microsoft Virtual PC).
e2) If you’re running Virtual PC for the very first time, click “Cancel” to exit the “New Virtual Machine” wizard.
e3) On the “File” menu, select the “Virtual Disk Wizard”. Select “Create a new disk virtual disk” and click “Next”. Select “Virtual Hard Disk”, click “Next”.
e4) Specify the filename for the new VHD, including the folder name (as specified on step b). On my configuration, I entered “C:usersjbDocumentsMy Virtual MachinesVMWS2008A.VHD”. Click “Next”.
e5) Select “Dynamically Expanding” as the hard disk option, click “Next”. Accept the default size of 16384 MB and click “Next”.
e6) Click “Finish” and then “Close” to conclude the Wizard.

Just to check on things, you should open the folder where you created the VHD file and check its size. It should be around 34.5 KB in size now. This file will obviously grow as your deploy the OS. After a default Windows Server 2008 Enterprise Beta 3 installation, my VHD size was about 5.9 GB. On another VM where I chose the Server Core installation of Windows Server 2008 Enterprise Beta 3 , I got a 1.6 GB VHD file at the end. The resulting VHD file sizes for the IDS3 post-Beta3 release (as known as the June CTP release) were smaller: the Server Core, Enterprise VHD was slightly under 1.4 GB and the Full Enterprise was around 4.5 GB.

f) Create a Virtual Machine

Next, you need to create the Virtual Machine. This step will basically take trough another wizard that will define the guest OS configuration (memory, disk, network, etc) and save it as an XML-formatted file with the VMC extension. Follow the steps:

f1) On Virtual PC’s “File” menu, select the “New Virtual Machine Wizard”. Select “Create a virtual machine” and click “Next”.
f2) Specify the filename for the new VMC, including the folder name (as specified on step b). On my configuration, I entered “C:UsersjbDocumentsMy Virtual MachinesVMWS2008A.VMC”. Click “Next”.
f3) You now need to specify the OS you intend to run. Since “Windows Server 2008” is not on the list, select “Windows Server 2003” and click “Next”.
f4) Next you specify how much memory the guest will need. Click on “Adjust the RAM”. If your host has 1 GB, specify at 640 MB for the guest. If you have 2 GB or more in the host, specify 1024 MB for the guest. Click “Next”.
f5) Now you will use the Virtual Hard disk you already created. Click on “An existing virtual disk”, click “Next”, then enter the VHD filename you used on step e4. Keep “Enable Undo disks” unchecked for now. Click “Next”.
f6) Click “Finish” and then “Close” to conclude the Wizard.

You new Virtual Machine will show in Virtual PC’s main screen. To check your configuration file, run Notepad and open the newly created VMC file to check its contents. You should be able to make sense of the several configuration options there. Try finding your setting for the amount of RAM you specified on step f4 hidden in the XML.

Speaking of memory, you might be able to allocate more than 640 MB of RAM to your guest on a host with 1 GB of RAM, depending on your configuration. 512 MB is the absolute minimum required and 640 MB is still far below the recommended 1 GB. However, be careful if you decide to use all your available memory for the virtual machine. Virtual PC will show you how high you can go, but using that number might lead to problems if you start additional applications on the host. Keeping some memory available on your host is a good idea. 

g) Configure your Virtual Networks

Another important aspect of the Virtual Machine configuration that needs special attention is the network. You will probably want to have Internet access in your guests. However, to configure some of the server roles (like DNS, DHCP, AD) you need a static IP address. Luckily, Virtual PC has very flexible options here. The simplest solution is to configure two network adapters: one that will use your external network to get to the Internet and another one that can be configured with a fixed IP just to communicate with other virtual machines on your box. Here’s how to do it:

g1) On Virtual PC console’s main screen, select the Virtual Machine we created on step f. Click on “Settings” to open the configuration window.
g2) On the list of settings on the left, click on “Networking”, which at this point should show “Network Adapters: 1”.
g3) The Network configuration panel will show on the left. Change the number of network adapters to 2.
g4) On Adapter 1, the settings should already point to your external network. Keep it that way.
g5) On Adapter 2, change the setting from “Not connected” to “Local only”.
g6) Click “OK” to save your settings.

You can use this process to adjust any other settings of the Virtual Machine, like memory, disks, etc. Make sure your Virtual Machine is not running, since this will make some settings, including network, to become temporarily grayed out (read-only).

It’s also very common to need a network configuration where your host (and only your host) can talk to your guests. That means you should not use the external network (which will expose the network to the outside) or the Local only (which your host can't see). This can be easily accomplished by setting up a “Loopback Adapter” in the host and using that as one of your guests’ network adapters. You could also have multiple loopback adapters in the host to allow for multiple of these host+guest networks, with the ability to selective connect guests to them. This would allow you to simulate more complex networks, like your typical External, DMZ and Internal scenario. For now, our two networks should be enough.

h) Mount the ISO image

After that, you should have a fully functional virtual machine that you could just start working on. There is only one last step, which is to mount the ISO image of the Windows Server DVD. To do this, follow the steps.

h1) On Virtual PC console’s main screen, select the Virtual Machine we created on step f. Click on “Start”.
h2) You will see a new window where your virtual machine will boot. The virtual machine will initially not have where to boot from, unless your external network has some PXE boot infrastructure.
h3) On the virtual machine window, select “CD” from the menu and then click on “Capture ISO Image…”
h4) Specify the ISO file you downloaded on step d9. Click OK.
h5) On the virtual machine window, select “Action” from the menu and then click on the “Ctrl-Alt-Del” menu option to reboot the virtual machine. You can also do this by holding the right ALT key and pressing DEL.
h6) The virtual machine should now boot from the ISO file you mounted, starting the Windows Server 2008 setup.

If you never used Virtual PC before you will probably enjoy the ability to mount ISO files. With this, you actually never need to burn those images to a physical DVD. However, if you’re running really low on disk space, you might consider burning the image to physical media and using “Capture Physical Drive” instead of “Capture ISO Image”. But only do that as a last resort, since using an all-hard-disk process will significantly improve your installation performance.

That trick with the right ALT key is alto very important. In addition to “Right Alt-Del” for Ctrl-Alt-Del” you will also need “Right Alt-Enter” to enter/leave full screen mode and “Right Alt-E” for changing configuration settings (keep in mind you won’t be able to change some settings while the virtual machine is running). You can learn more shortcuts by looking at the menu options.

Conclusion

Well, that’s pretty much it for now. You should now be staring at the first step of the Windows Server 2008 setup. That’s where I leave you to your thoughts. There’s a lot more to learn about Virtual PC and you should read up on things like Saving State and Undo Disks, which will make your life a lot easier in many situations.

Once you get your virtual environment ready to go, there's plenty of documentation out there on how to perform the actual install of Windows Server 2008, some of them including step-by-step instructions. For a good place to start, download the Windows Server 2008 Beta 3 Step-by-Step Guides from https://www.microsoft.com/downloads/details.aspx?FamilyID=518d870c-fa3e-4f6a-97f5-acaf31de6dce.

Good testing to you!