I just finished getting the TFS Codename “Rosario” April 2008 CTP running under Hyper-V. Because Hyper-V is a different animal than Virtual Server, I had some “head scratching” moments. I wound up doing a fair bit of research and asking for help before I was finally able to get it up and running on my Dell Latitude D630.
In this article I’ll give a run down of the steps I used to get it running as well as some of the issues that may be purely due to running this on a laptop using Windows Server 2008 as a workstation. There will be plenty of linked articles. I’ll point out the salient issues from each that helped me get up and running, but I recommend that you read the articles to get the complete Hyper-V picture.
What you will need
- The Visual Studio® Team System Code Name “Rosario” April 2008 CTP (see Step 1 for links)
- A Windows Server 2003 ISO or Disk – any version (see Step 8)
Step 0: Understanding Hyper-V
One of the biggest issues I faced was making the “mental shift” from a Virtual Server based mindset to a Hypervisor based one. Hyper-V does not work like Virtual Server did.
Virtual Server was an application that sat on top of your Windows OS. As such, it had access to a portion of the underlying resources but your Host OS was still directly on top of the hardware.
In a Hypervisor configuration there is no Host OS. Instead, when you installed the Hyper-V role, the OS was altered to make your Windows Server 2008 installation into a VM. This VM is called the Parent partition (see Hyper-V: Not your mother’s Windows Server anymore) and it is responsible for watching out for all of the other VMs created on the machine. Under this new configuration, all of the child VMs talk directly to the Hypervisor layer. This is basically a thin layer that sits directly on top of the hardware. As such, Hyper-V VMs are “closer to the metal” than are Virtual Server ones.
I’m not going to go further into the gritty implementation details of Hyper-V but if you want to know more, check out these articles:
Hyper-V at Wikipedia (of course) – http://en.wikipedia.org/wiki/Hyper-V
Matt McSpirit – Getting my head around Hyper-V – http://blogs.technet.com/mattmcspirit/archive/2008/05/16/getting-my-head-around-the-hyper-v-architecture.aspx
Step 1: Download the VPC from Microsoft.
You can download the 12 parts that make up the VPC image directly from the Microsoft download page. If you want an easier way of managing the download with the ability to “restart” a failed download then I recommend using Free Download Manager. I have a page setup here that has the link to this program along with the links that you can copy and paste into it to download the entire VPC image.
Step 2: Extract the VPC image to a local folder
Once you have all of the image parts downloaded you should run Apr2008RosarioCTP _12PartsTotal.part01.exe to begin the extraction process. I would recommend storing the image in the folder that will house the Virtual Machine.
I have extracted it to C:Virtual MachineRosarioApril08CTP.
Step 3: Start up Hyper-V manager.
Start up the Hyper-V Manager by selecting Start | Administrative Tools | Hyper-V Manager.
This will open the Microsoft Management Console with the Hyper-V snap-in running.
Step 4: Create a new Virtual Machine
We need to create a new Virtual Machine to hold the virtual hard drive that contains the CTP. We do this by selecting New | Virtual Machine… from the Actions menu. The New Virtual Machine Wizard will start up.
Start by giving your VM a name. Next you want to make sure the “Store the virtual machine in a different location” checkbox is checked. This will enable the “Location” textbox. In here you want Browse to or directly enter the location where you extracted the VPC in Step 2. That’s all there is to enter here, click Next.
In the Assign Memory step, enter at least 1.5GB (1536MB). A value of 2GB (2048MB) is better if you have the resources. Click Next.
In the Configure Networking, select a network to connect to. In my case, I use an Internal network that is Bridged to my Wireless card.
Click Next to continue.
In the Connect Virtual Hard Disk step we will be connecting the new VM to the downloaded Rosario virtual hard drive. To do this, we select the “Use an existing virtual hard drive” radio button. This enables the “Location” text box.
Click the Browse… button.
In the “Open” dialog, navigate to the location you stored the Rosario VHD file. As shown earlier, mine is located in C:Virtual MachinesRosarioApr08CTP.
Select the VHD file and click the Open button. This will close the “Open” dialog and put the selected path in the Location text box. Click the Next button to continue.
In the Summary screen check the “Start the virtual machine after it is created” checkbox and review the items in the Description box. If everything looks good, click on the Finish button to create the new VM and start it up.
Once the VM is created and starts, you can click on the Connect entry in the Hyper-V Manager to open the Virtual Machine Connection window. You can also double-click on the VM thumbnail at the bottom left of the Hyper-V Manager screen.
Either of these will open the Virtual Machine Connection window.
Step 5: Login to the VM
Once the VM starts, click the Action | Ctrl-Alt-Delete menu item or press the Ctrl + Alt + End hotkey to open the Login dialog.
In the Login dialog, enter the username and password.
Step 6: Reactivate Windows Server 2003
Once you login, you will be prompted to Activate Windows again. This is due to the significant underlying hardware changes. The original VM was run under Virtual Server which provides virtual hardware. The virtual hardware in Hyper-V is different enough that we have to Activate.
Go ahead and click the Yes button.
If you have a network connection, you can Activate over the Internet. In my case though I didn’t have a connection so I was stuck.
I spent a bunch of time trying to get networking up and running on fresh VMs until I spoke with my colleague, Mike Azocar, who told me that he had to call Microsoft’s Activation line. Now isn’t that a Great Big DUH!!! I never realized that I could call Microsoft for Activation of a Microsoft-provided instance of Windows Server 2003.
In our case, we now want to select the second radio button that says we want to activate by phone with a customer service rep. We then click Next to continue.
On the Activate Windows step you select your country in Step 1. This gives you the phone numbers in Step 2. You then call one of the numbers and give the Microsoft rep the Installation ID from Step 3. They will give you a really, really long string of numbers that you have to type into Step 4.
When I first went to Activate, the Installation ID in Step 3 was blank. If this happens to you, it will be easier to just restart the VM and get back to this screen.
Once the Microsoft rep gives you the Confirmation ID, click Next.
An Activation screen will appear while it confirms your information and then the Thank You! screen appears. Congratulation, you’ve Activated your VM. Click Finish.
Step 7: Uninstall Virtual Machine Additions
The VPC comes through with Virtual Machine Additions installed. This software is used to enhance your experience under Virtual Server. The VM Additions software is not compatible with Hyper-V. Luckily, there is a version for Hyper-V called “Integration Services for Hyper-V.” To install Integration Services, we first have to uninstall VM Additions.
Open up the Add or Remove Programs window from the Control Panel, scroll down to Virtual Machine Additions, and click the Remove button. At the end of the uninstall you will be required to restart the VM.
Step 8 – Install Integration Services for Hyper-V
Once the VM Additions has been uninstalled and the VM restarts, login to the desktop. To install the Integration Services software you need to mount the Setup Disk. Click on the Action | Insert Integration Services Setup Disk menu item on the Virtual Machine Connection menu bar.
The Integration Services install will begin automatically. The first thing you will see is a dialog letting you know that the Hardware Abstraction Layer (HAL) for the VM has to be updated. This is the first real indication that there is a difference between Virtual Server VMs and Hyper-V ones. You will want to click Ok and let the install proceed.
The installer will update the HAL and then let you know that a reboot of the VM is required. Go ahead and reboot. When the VM comes back up the installation will automatically continue until it starts detecting new devices. At this point it wants you to point it to “hidusb.sys” on the Windows Server 2003 CD.
A quick search turned up that hidusb.sys is for a “human interface device” connected via USB. A great piece of the Integration Service pack is that it allows your mouse to slide in and out of the VM windows without having to press CTRL + ALT + Left Arrow. This file update is needed to enable that functionality.
If you have networking up on your VM you could copy in an i386 folder from any version of Windows Server 2003 and the Browse to it. If you don’t have networking up, you can use the Media | DVD Drive | Insert Disk… or Capture D: command to mount an ISO image or capture the physical DVD drive on the machine that contains a Windows Server 2003 DVD.
Once you have captured an ISO or the physical DVD, your files will be available in the VM’s D: drive. Just Browse… to D:i386 and click Ok in the Files Needed dialog.
The installation should complete without further intervention until you see the lovely dialog below. At this point you should be able to move the mouse pointer in and out of the Virtual Machine Connection window without needing to press the mouse capture hotkeys.
A reboot of the VM is now required. Go ahead and let it restart.
When the VM restarts, fire up Visual Studio 2008 and you will be rewarded wit the following screen.
That’s it! Team Foundation Server Codename “Rosario” is up and running and you have access to the full Visual Studio 2008 Team Suite of client tools.
I recommend checking out the “TFS Walkthroughs” folder on the desktop to get a feel for all the goodness in Rosario.