Microsoft released Windows 7 Release Candidate today (I'm downloading my copies of it plus Windows 7 server right now). It includes the Windows XP Mode which is essentially a specialized virtualization container. Microsoft provides an informative table that compares Virtual PC 2007 to Windows Virtual PC at...
Windows Virtual PC includes a bunch of features that a lot of people have been clamoring for for years including:
- USB support (finally!)
- Clipboard sharing
- Drive sharing
Note that unlike Virtual PC 2007, Windows Virtual PC requires either AMD-V or Intel VT-x hardware virtualization support. So, old PCs and Atom 270/280 based netbooks can't run it.
And The Windows Blog has a useful item for those of you planning to deploy Windows XP Mode in the enterprise...
I downloaded Ubuntu Linux 8.04LTS and tried to install it on an old Dell Latitude L400 that I've tested previous Ubuntu versions on. The installation seemed to proceed normally. However, it took forever to boot up after the installation completed. And, after the login, the desktop appeared, then disappered leaving only a blank black screen with a blinking cursor in the upper left corner. I guessed that Ubuntu had finally become too bloated for the 256MB RAM notebook. And, yes, I've tried Xubuntu. It didn't work correctly on the L400.
Next, I tried installing it as a Guest OS under Microsoft Virtual PC 2007 on a Dell Latitude D620 notebook. Virtual PC doesn't like current generation Linux distros and 8.04 felt its wrath. So, I searched the web and found this detailed item on the Arcane Code blog...
The steps in the blog body didn't work for me. However, there were comments that provided additional information. The additional instruction was to press F6 to add additional options and add...
noapic nolapic vga=791
...to its option line and before the terminating double dashes (--). Be sure to leave a space between "791" and the terminating "--". The next step is to be very very patient. The installation process (I installed from a physical CD-ROM burned from the ISO) takes a long long time and mostly blank screens (first black and later beige) before anything interesting appears in the Virtual PC window. However, at some point the Ubuntu graphical desktop shows up with the warning window shown above. This is still the Live CD mode. Clicking the Install icon fires up the CD again resulting in another long delay before anything happens.
If you forget to make the changes to the kernel boot options like I did, you can apply them temporarily from the Grub menu and then make them permanent by editing the kernel line in /boot/grub/menu.lst.
I could never figure out which AMD processors have the AMD-V virtualization assist feature. Search AMD's website for this information proved futile. Fortunately, I read a Microsoft newsgroup post where a Virtual Machines MVP provide a link to a Wikipedia entry that provides this information. Here's the link to that Wikipedia page...
I've been using VMware Fusion on a Mac to play with Fedora 8 (Linux). However, I just learned about this blog entry that gives step-by-step instructions (with screen caps) for installing Fedora 8 under Virtual PC 2007.
The important screen cap to pay attention to is the one change during the grub reboot to add i8042.noloop (mentioned in my CentOS/RHEL blog entry) to deal with the mouse problem.
One of the reasons I'm using Virtual PC less and less is that VMware and Parallels does a much much better job of installing and running Guest OSes.
I'm looking forward to trying Hyper-V under Windows Server 2008 as soon as I can get a PC with the specs to run it properly.
Windows Vista is just too big and slow to run comfortably in a Virtual Machine (VM) unless you have a really fast PC with a really fast hard drive. I've found running Vista as a VM on a notebook with a hard drive less than 7200 rpm (which is the norm for desktops) is just a bad idea. It doesn't matter if you have a reasonably decent amount of RAM (2GB on the host) and a fast processor (Core 2 Duo). I've even found Vista slow installed as a VM on a big server (10GB RAM, dual dual-core processors with 10000 rpm RAID-5 drives). The Windows Server 2008 (full GUI, not the Core version) seems to run reasonably well as a VM. But, I will reserve judgement on it until I get the RTM release and install it under both Virtual PC 2007 and Virtual Server 2005 R2 SP1.
If you are looking for a relatively resource friendly version of Windows to run as VM on a relatively slow host PC, take a look at Windows Server 2003 R2. I'm running it on an old PC: Athlon 64 3200+ (2.2GHz) with 2GB RAM. I gave Windows Server 2003 R2 512MB RAM and it is running fast enough for me to feel comfortable when using it. I've run it with 384MB RAM (if you are on a PC with less than 2GB physical RAM) and it felt decent in that reduced configuration too. The base Windows Server feels lighter and faster than either XP or Vista in a virtualized environment. I may even use it as a virtual desktop PC instead of XP or Vista going forward. Since Windows Server 2003 R2 should remain under standard support until February 2010 (two years after Server 2008 debuts), it should be a reasonably secure Windows test environment for at least the next two years.
According to this ZDNet blog item...
...Microsoft is going to formally announce that it is ok (license-wise) to install Microsoft Windows Home Basic and Home Premium Editions as Guest OSes on virtual machines. Home Basic and Home Premium cost less than the Business and Ultimate Editions. So, this is good news for those of us who need to run Vista in a virtualized environment for testing and other needs.
The official Microsoft press release on this topic is found at...
...and the pertinent paragraph is: Increased licensing flexibility with Windows Vista. For businesses, Windows Vista Enterprise Centralized Desktop provides unique licensing and flexibility to run Windows in virtual machines on servers and access them from either PCs or thin clients. The annual subscription to Windows Vista Enterprise Centralized Desktop is now an estimated retail price of $23 per desktop for rich clients covered by Software Assurance for Windows Client. For consumers, Windows Vista Home Basic and Windows Vista Home Premium are now licensed for use in a virtual machine environment, and the updated end-user license agreement is available at http://www.microsoft.com/about/legal/useterms/default.aspx.
Parallels Desktop for Mac and VMware Fusion (Mac)/Workstation (PC) don't seem to have issues with the current generation of Linux distros. But, Microsoft's Virtual PC and Virtual Server do not, unfortunately. And, since most of my work is using Virtual Server, I've been spending a bit of time hunting for information and asking questions. Most of my information has come from reading Ben Armstrong's (Microsoft Program Manager in the Virtual Machines group) blog. But, I haven't seen all the information I've collected there and elsewhere collected in one place to help others trying to run current generation Red Hat Linux distro derivatives (RHEL5, Fedora, CentOS) under Virtual PC and Virtual Server. So, here's what I've found so far to get these Red Hat based distros working. I've tested all these items using CentOS 5.1 and one or two using RHEL5 or Fedora. Make a backup of your working (or semi-working) VM/VHD before trying anything mentioned below.
- Degrade color depth from millions of colors (32-bit) to thousands of colors (24-bit). This is due to an issue with the S3 graphics chip emulation. If you need to make this change after the fact, use SSH to get to your odd looking (display-wise) VM and use system-config-display to change color depth from 24-bit to 16-bit. This change will be reflected in /etc/X11/xorg.conf
- Add the following kernel parameters:
- clocksource=pit (this is to help deal with the clock sync issue)
- i8042.noloop (this is to allow using a mouse in X windows) You can read more about this solution in this article this article and this Red Hat bug thread.
- If you need to apply the two kernel parameter changes after the fact, you can edit /boot/grub/menu.list and add both parameters to the kernel line
The clocksource option helps but does not entirely solve the clock drift issue. I end up having the clock resync with a time source once an hour as an added workaround. I hope this collection of findings help's others run current generation Red Hat related distros under Virtual PC and Server.
Although I have a Core 2 Duo notebook and Dual-Dual Core (4 processors) Xeon and Opteron servers at work, I don't have any dual core Windows PCs at home. So, I found the HP Pavilion a6120n with Core 2 Duo pretty interesting at $400. However, I noticed it used an unfamiliar processor model: E4400. So, I headed over to the Intel Processor Number summary web page to check out the specs for various Core 2 Duo chips. I learned there that the entire 4000 model family does NOT have the Intel Virtualization Technology (VT) feature. I also learned that with the exception of the T5600, the entire 5000 Core 2 Duo model line also lacks VT. Since I run Microsoft Virtual PC and VMware Workstation at home, it is pretty important to have a VT enabled processor. The lesson here is that if virtualization is something you use, check the processor model before buying a new PC or notebook. I know I'm glad that I did before clicking the buy button.
I ran into a weird little issue today on a CentOS 4.5 virtual machine running under Microsoft Virtual Server 2005 R2 SP1. I had configured and compiled Ruby 1.8.6 Patchlevel 110 and su-ed to root to perform a make install. However, I kept getting a make: warning: Clock skew detected. Your build may be incomplete message after a couple of tries. A bit of searching indicated that the clock skew message was what it sound like: A processor related timing issue. Linux VMs tend to have issues with clocks running slow. So, I brought up system-config-time to have it force the clock to sync with an external source. Performing a make install after that resulted in an error free installation.
Microsoft still doesn't quite have quite caught the command line religion bug yet. It still takes a lot of code to perform simple tasks outside of the Virtual Server management web page. In the case of PowerShell, you even have to compile to C# code to create a custom DLL to use (um, ouch!). Fortunately, this freeware utility written by Jin Mao can fill part of this void for a lot of us too lazy to write a lot of code to do simple things (like pause and unpause a virtual machine).