|
Provide Feedback on this Broadcast
Microsoft Support WebCasts
Troubleshooting common problems in Microsoft Virtual PC 2004
March 23, 2004
Note This document is based on the original spoken Support WebCast transcript. It has been edited for clarity.
Kurt Schmucker: The subject of today's session is troubleshooting Microsoft® Virtual PC 2004. My name is Kurt Schmucker. I'm a program manager on the Virtual PC team here at Microsoft. Another presenter for today's session will be David Bullock, who is a support engineer on the Microsoft Product Support Services (PSS) team that supports Virtual PC.
Today our goal is to provide troubleshooting information to people who are either using or evaluating Virtual PC in their corporate environment (slide 2). This is a level 200 WebCast, so I'm assuming some experience with using Virtual PC and, most importantly, some knowledge of terms like guest OS, drive image, virtual machine, and things like that.
So what we'll be doing today is talking about common issues (slide 3) related to configuring, using, deploying, licensing, and so on, on Virtual PC. We will also be giving you some best practices related to both security and performance for making the best use of Virtual PC in your environment.
Now it's useful to remember that Virtual PC, from the perspective of the host operating system, is just another application (slide 4). A useful analogy is to remember that, just as Microsoft Word is an application whose documents are text files and Windows Media® Player is an application whose documents are movies, Virtual PC is an application whose documents are operating systems. So, it's really not as radical as you might think when you first hear about the kinds of things you can do with Virtual PC. It's just an application from the host perspective.
However, it is a bit of an unusual application is it does things at a very low level in the operating system (slide 5). In particular, as we'll talk about a little bit later, Virtual PC's virtual machines look like full, first-class citizens on the network. This is because our network interface driver is an NDIS (Network Driver Interface Specification) filter. That means that virtual machines have their own unique MAC (Media Access Control) address.
Unfortunately that means that virtual machines can get viruses and experience other issues, and there is nothing you can do on the host machine that will protect them. What you have to do, and the way of thinking that we encourage, is that you consider virtual machines to be additional computers on your corporate network that have to be protected, managed, and so on. When you install an application in a virtual machine, that application is installed there. It's not installed on the host. It's not installed on another one of the virtual machines.
So, with that background and that sort of setting, let's begin a "laundry" list of common issues and help that we can provide you today. When you're setting up Virtual PC (slide 6), because it does install two drivers, it does require Administrator credentials. One of these drivers, as I mentioned, deals with network services. So, we'll momentarily disrupt networking on the host computer, and you should have to worry about that or be concerned with that when you do deployment.
It's also the case that, in some circumstances, you will have to reboot the host in order to get the Virtual Machine Network Services driver to load. The circumstances that require this depend on a variety of issues related to whether you've installed previous versions of Virtual PC, what exact host you have, what things you've been doing with your network, network drivers, and so on. It's a little hard for me to give you an exact predictor of when you'll have to do this. So you should take this into account in your setup.
If you've been using earlier versions of Virtual PC from Connectix (slide 7), the company that Microsoft acquired Virtual PC from last year, you probably will have to deal with two special issues. One is that you'll almost certainly have to reboot your host after you install Microsoft Virtual PC 2004.
In addition, to move virtual machines that were created with an earlier version of Virtual PC, you have to do that movement manually. So, you'll have to re-create the virtual machine configurations for those virtual machines. In many cases, the guest OS will have to go through some sort of hardware detection to deal with the changes that are made internal to the Virtual PC.
If you've been using very old versions of Virtual PC or if you're moving drive images in virtual machines from Virtual PC for Macintosh to Microsoft Virtual PC 2004, we recommend that you uninstall the Virtual PC editions from the drive images prior to moving them to Virtual PC 2004.
When you go to create these new virtual machines (slide 8), we recommend that you use the wizard that's part of Virtual PC. This will ask you a series of questions related to what OS you're running and so on. From that, the wizard can infer various things and give you default values for memory and hard disk settings and so on. We really recommend that you use these wizards for this configuration. You can change these values later.
The wizard don't do too much more today than memory and hard disk settings, but in the future we hope to make even greater use of them. So, we encourage you to use them. Also, remember that Virtual PC, other than this kind of a setting in the wizard, doesn't really know what guest OS you're running in a virtual machine until much later in the boot cycle. It's just booting off a virtual hard drive. So this information will help Virtual PC in the configuration, if you use the wizard.
When you build a new virtual machine (slide 9), whether you use the wizard or not, if you happen to be using a machine that has multiple network cards, the so-called multi-homed machine, the only thing we can do is connect the virtual machine to the first available physical networking card.
There is no other sort of default we could think of to put in. So, if you have multiple cards, you might want to change certain things for virtual machines that have the host use one, have virtual machine A use another card, virtual machine B use yet a third card, or whatever. If you do this, you probably want to do this adjustment to the virtual machine configuration prior to booting that virtual machine.
When you build virtual machines with Virtual PC (slide 10), licensing can become a complicated issue. The best way to think about it, as I said earlier, is to consider a virtual machine to be a separate additional machine on the network. Separate additional machines on the network require licenses for the OSs, for the applications, for special fonts you install, and so on. We recommend this as the best overall way of thinking.
Then look at the individual vendors licensing policies for the piece of software you're installing in the virtual machine. If you're a Microsoft volume licensing customer for the Windows® license, you can get two Windows licenses now per physical machine. So, you could use one as the host OS and one on the virtual machine. Applications, fonts, and other things that you would put on a virtual machine, you'd have to deal with the individual licensing requirements for those components yourself.
When you use Virtual PC, you have the notion for the first time of having multiple operating systems running simultaneously on a host (slide 11). For many people this is a totally new experience and that's why we had to invent the terms host operating system and guest operating system. Virtual PC can execute most Intel-based operating systems.
However, the ones that Microsoft PSS supports are the ones you see listed here, basically Windows 95 and later, plus Microsoft MS-DOS 6.22 and certain versions of OS/2 for guest operating systems. For host operating systems, the ones that are supported are Windows 2000 Professional, Windows XP Professional, and Windows XP Tablet Edition.
That's not to say that Virtual PC won't work with some other hosts or that a Virtual PC guest couldn't be some other operating system, in particular an operating system that wasn't from Microsoft. These may, in fact, work, but they haven't been extensively tested here at Microsoft, and they aren't supported by our products support group.
For those of you that will be deploying Virtual PC across your organization, it can be deployed in an unattended manner with setup commands (slide 12). You see the parameters listed here. One important thing to remember is that, because of the network services driver that Virtual PC installed on the host computer, network connectivity will be momentarily disrupted. You need to take that into account when you go through this operation.
In addition (slide 13), when you deploy Virtual PC, you need to deploy basically two files — the virtual hard drive or .vhd file, which is essentially the boot volume for the guest OS, and the .vmc file. This is the file that stores the configuration information for the virtual machines, how much memory it has, what the networking configurations are, and other parameters like that. Each of these files must be moved to the destination computer.
Just as when you image on OS to a remote device, you have to worry about network name conflicts and so on. One way to take care of this is to "Sysprep" (use the System Preparation tool Sysprep.exe) or to otherwise appropriately prepare the guest operating system before deployment. The .vmc file that you move around, you're probably going to want to edit that slightly to remove the physical Ethernet card addresses that are inside it.
You also should remember that .vhd files, the virtual hard drive files used in Virtual PC, are essentially the C drive of the guest OS. They can be very large. If you do just an install on Windows XP into a virtual hard drive, it's about a gigabyte or a gigabyte and a quarter (1.25 GB), something like that inside. If you now begin adding lots of apps, it's getting bigger and bigger and bigger. So, these files can be multi-gigabyte files and you should take that into account as you plan your deployment to large numbers of host computers in your enterprise.
After you do this (slide 14), and you have Virtual PC running on these hosts throughout your company, you've now got a larger number of machines out there. Some are physical, some are virtual. If you want to monitor how things are being used in Virtual PC, you can look at the .vhd files to see when they were last modified. Almost all operating systems, when you boot them or use them, write to the boot volume; so that'll be recorded as a modification date for the .vhd file.
If you want to do much more fine-grained monitoring and maintenance of virtual machines, again, think of them like additional computers on your corporate network and tools like SMS (Microsoft Systems Management Server), can be installed in the virtual machine. It can report back information to you about things that are installed and things that are being used on those virtual machines.
We are now in the process of getting together some of the information from this WebCast and other things, and putting together a white paper on deployment (slide 15). That document will assist you in making use of the best practices and all the knowledge we've gained up until now to help you in deploying Virtual PC. This will be available at the Web site you see listed here (http://www.microsoft.com/windowsxp/virtualpc/default.asp).
Now I'd like to "turn the floor over" to David, who will talk about some common problems and some common solutions with Virtual PC. David.
David Bullock: Thanks, Kurt. This is David Bullock. I am a Virtual PC support lead with Microsoft Product Support Services. We are going to talk in this portion of the presentation about some common problems and troubleshooting and solutions for these problems in Virtual PC 2004 (slide 16). These are problems that we've identified since the product released just a few months ago. The first issue that we note here is the Windows Installer or Isscript.msi errors during the installation of Virtual PC 2004.
The most common cause of these problems, if you're receiving the error noted on the slide, the install script engine on this machine is older than the version required. The most common resolution for that problem is to run the Setup.exe file rather than the Windows Installer file that is in the root of the installation package or is on the CD.
If installation still fails with that same error message after running Setup.exe there is a Knowledge Base article that covers .msi installer issues. That KB article is 315353. We've had great success with using that article to resolve these issues.
Other common problems that we've seen are issues with installing Virtual PC and receiving a Virtual Machine Network Services driver error (slide 17). The error indicates that the driver cannot install or, after installing Virtual PC and not seeing that error, that possibly guest or host networking is unreliable (meaning that it goes down from time to time). Some of the most common resolutions for this issue are listed on this slide.
Number one: if any offloading setting is set for the physical network adapter on the machine (that would be a TCP offloading setting within the properties for the physical network adapter), it should be disabled. Then the installation of Virtual PC should be tried again.
The second possible cause for that issue is that there are some personal firewall products on the market including Sygate Personal Firewall (an older version, not the current release of Sygate). The cause of this issue is simply a conflict with the Virtual Machine Network Services driver that causes the installation to fail. If that appears to be the case, if Sygate Personal Firewall is installed, the best resolution for that issue would be to contact Sygate, and discuss the latest version of their product, which does resolve this issue.
{Additional information: The current released version of the Sygate product does exhibit the problem behavior, however Sygate has a newer version that is currently in a pre-release phase that corrects the problem. If you experience this specific problem, contact Sygate to receive a copy of the newer pre-release version. Specific version and build information:
- Sygate version that displays the problem: Sygate Personal Firewall version 5.5, build 2516 (and anything earlier)
- Sygate version that fixes the problem: Sygate Personal Firewall version 5.5, build 2522 (and theoretically anything later).
You can contact Sygate through their Web site at http://www.sygate.com/support/.}
The problem also exists if a user installing Virtual PC is a member of the Network Configuration Operators group, because that Operators group denies specific permissions required to modify NDIS filters installation of the VMNS driver might fail also. Resolution in that case, obviously, would be to remove the user from the Network Configuration Operators group. Of course, the user must be a member of the Local Administrators group or the Administrators group on a domain controller to perform the installation.
Finally, regarding that issue, if Windows Installer is corrupted or has a problem, the Virtual Machine Network Services driver may fail to install also. Again, the Knowledge Base article that I mentioned on the last slide will resolve this issue. That's 315353.
Moving on to (slide 18). We have seen some issues with installation of Windows NT® 4.0 virtual machines, namely Stop A (Stop 0x0000000A) error message during the installation of NT 4.0 in a virtual machine. That problem can be resolved or worked around at least, by setting the virtual machine to use less than 256 megabytes (MB) of RAM and then reinstalling Virtual PC. After installation, the RAM can be set to 256 MB and won't cause any problems.
We are investigating this problem right now. We're not sure exactly why the issue was occurring, but that is a fairly simple workaround. Again, just "knock down" (set) the virtual machine's memory usage below 256 MB, reinstall the NT 4.0 guest, and after installation you can set the RAM back to 256 or whatever you prefer.
Windows 95 does not contain the Intel 440BX chipset drivers (slide 19). That is because this chipset was released after Windows 95. I wouldn't necessarily say this is a Virtual PC issue per se, but we'd want to note that it is a good idea to install the Intel drivers for the 440BX chipset on a Windows 95 guest machine.
The Intel.com site, just www.intel.com, does contain those drivers. We do recommend installing those drivers for several reasons; not the least of those is improved disk I/O performance. In fact, installing these chipset drivers from Intel will dramatically improve I/O performance on the disk.
You may see an issue where the physical computer (the host machine) stops responding when a virtual machine is started (slide 20). If that machine contains an AMD K7 processor and is using a PIC HAL, the resolution for that is actually a hotfix that's in the works. It is an update for the Vmm.sys driver file, which is the Virtual Machine Monitor or Application Services driver. We do not currently have a KB article out in the Knowledge Base, but one is being written at this time.
{Editor’s note: Microsoft KB article 833506 is expected to be available to the public by around April 20, 2004).}
However, you can contact Product Support for the updated Vmm.sys. There is no charge for calling in and getting an updated driver or a hotfix, anything of that nature. We can get that fix to you. There is another route to get this that's been widely reported in the newsgroups.
The trial version of Microsoft Virtual PC 2004 actually contains the updated Vmm.sys, and the download of the trial version can be grabbed, installed to a test machine let's say, and then the new version of the driver can be placed over the old version of the driver on the problematic machine. The old version of that driver, again, which causes problems only on AMD K7 machines with the PIC HAL, is 1.0.0.582. The new version of that driver or the update is 1.0.1.582.
Let's go into some security best practices (slide 21). It's very important to note that virtual machines, as noted in the slide, must be treated in exactly the same manner as physical machines when we're talking about security. Virtual machines are no less prone to virus attack or hack or any other sort of compromise.
All virtual machines should have the latest services packs and latest security patches installed. They should be maintained on a regular basis. It's also very important to have the appropriate antivirus and network security software, firewall, etc. installed on virtual machines just as it would be on a physical box.
Let's go into a little more detail on this subject (slide 22). When a virtual machine is connected to a virtual network, in other words, when it has external connectivity to the outside world, it's not necessarily protected by any kind of firewall or antivirus software on the host operating system. In fact, it's not protected at all by any software installed on the host and the virtual machine is prone to infection by virus. It can also infect other machines as long as it's externally connected.
If possible, when you first bring up a virtual machine, it's very critical, very important to either turn off networking altogether or to use the Shared Networking NAT setting. That allows the virtual machine to access the network to get the patches and security updates from Windows Update, for example, without leaving it exposed to virus infection or any sort of an attack.
Now it's important to note that, by default when you start a virtual machine or create a virtual machine, the networking setting is set to the external network. So, it's a very good idea to go in immediately before starting that virtual machine, before performing a guest operating system installation to go into the network settings, and change that to NAT or Local only.
Some performance best practices (slide 23). There is a Knowledge Base article covering a lot of performance best practices soon to be released. That'll be out within the next week or two. We're going to cover some of those items here.
Because many of the virtual machine subsystems are emulated, a faster CPU will improve speed. Now we require a 400-megahertz (MHz) processor. We recommend a gigahertz or faster and, of course, that's going to have a huge impact on performance. The faster the processor, the better performance you're going to get. In particular with multiple virtual machines running, they each take their own time slice from that processor. Of course performance will suffer if you don't have an adequate processor to run the virtual machines. Also, a very critical piece of the performance puzzle is having enough memory (enough RAM on the physical machine) available for the active virtual machine.
Now typically we recommend not using more than 50 percent of the host's RAM for all active virtual machines at any particular time, all concurrently running virtual machines. If we take away too much RAM from the host computer, overall performance of all VMs and the host computer will suffer. So, it's important to note that the RAM has to be adequate for the host machine, and also for the virtual machines.
Continuing with performance best practices (slide 24), the Performance option within Virtual PC, one of those options is to set virtual machines to run at maximum speed. We do recommend setting this option unless there is an intensive application that needs to run simultaneously with Virtual PC. The "run at maximum speed" option is going to allow the virtual machines to exhibit much better performance on the host machine.
One incredibly important time to do this is when you're first installing a guest operating system. We have a package called the Virtual Machine Additions, which does dramatically improve performance in Microsoft operating systems that are installed as guest operating systems. However, when you're first installing a virtual machine, installing a guest operating system, the additions cannot be installed.
Those are applications that are installed on top of the guest operating system. So, at the beginning of guest operating system installation or virtual machine creation, it's critical to set the Performance option to run at maximum speed. Without that option set, I have seen some installations of operating systems take an extremely long time, longer than I would expect on physical hardware.
With the option set, a good CPU with a good amount of RAM, an installation of an operating system should be about the same as you would expect to see on a physical box. Now as we note on the slide, the last bullet point there, with the option set to run at maximum speed, it is possible that you might see performance degradation in other applications that are running on the host computer.
Fixed-size virtual hard disks in our testing do show to be significantly faster than dynamically expanding virtual hard disks for some operations (slide 25). The drawback to that, of course, is that the fixed-size virtual hard disk, for example, if it's created at 4 GB, that file will be initially 4 GB and will always be 4 GB.
The advantage to the dynamically expanding disk, of course, is that it starts out with a very small size of at least 35 kilobytes (KB) and grows as you add operating systems, applications, etc. to the virtual machine. So, that's kind of a subjective point depending on whether you need the disk space or you need the slightly better performance. That might be a consideration to take into account.
Now for MS-DOS, Windows 95, Windows 98, and OS/2 VMs, the host disk cache command-line parameter can be used to start Virtual PC and that will improve performance on those operating systems. Again, I mentioned earlier, the most significant increase in performance will come from installing the Virtual Machine Additions.
That's all I have on specific troubleshooting topics. I believe we're going to open this up to questions.
Otto Cate: Thank you very much for the presentation there. Before we jump into the Q&A section here, I would like to share a couple of quick program notes with our listeners.
If you do find that you need some more complex technical assistance that might be outside the scope of today's discussion, feel free to visit support.microsoft.com or call Product Support Services directly, and speak to a support professional. If you'd like more information on future Support WebCasts or to review any of our sessions on demand, visit our Support WebCast site there at support.microsoft.com/webcasts.
For this particular session, you'll be able to find the downloadable version of the slides and the on-demand streaming media within 24 hours of the live session. We'll post a full written transcript there within three weeks time.
So, with that, let's go ahead and answer some questions here. The first question: You had mentioned the VMD fix file. Do we happen to know what the file name is on that?
David: The updated file is actually Vmm.sys. It's just the Virtual Machine Monitor or Application Services driver. Again, we do not have that officially packaged into a QFE, but it is possible to call Product Support Services and get that fix. There is no charge for that call.
{Editor’s note: QFE refers to a quick fix engineering solution and is also called a hotfix.}
Otto: Next question: Does Virtual PC support Linux as a guest?
Kurt: Virtual PC will run almost any Intel-based operating system and, in particular, it will run many of the Linux distributions. What we can't tell you, though, is if a particular distribution runs in Virtual PC, because we haven't tested them all. So, I suspect it will. Please go ahead and try. Remember that when you do so this is not an OS that is supported by Microsoft, but we have had many of our customers and many of our Virtual PC users use non-Microsoft OSs with Virtual PC successfully.
Otto: Next question: What does the Offloading network adapter setting provide?
David: I would hate to make something up here. I'm not a networking expert, but I do know that there is a TCP offloading setting, which can conflict with the installation of the Virtual Machine Network Services driver.
Now in some tests that I've done when I disabled that Offloading setting, performed the Virtual PC installation, and then went back in and set that setting, again, I was able to continue to use Virtual PC. Apparently, and this is just based on my own testing, apparently this setting only conflicts with the installation of the driver, but can coexist with the driver after the fact.
Otto: Next question: I am currently having some problems installing any guest OS older than Windows 2000. I've set up a DOS partition, formatted a second physical hard drive with Windows 95 and Windows 98 with no luck. This question itself might be a little general, but are there any general pointers you might be able to provide?
Kurt: There shouldn't be any extreme measures needed to install a DOS virtual machine, for example. We want to make sure that all of the rules for installing a DOS operating system are followed here as they would on a box.
Now if we're talking about DOS 6.22, for example, we'll need a FAT16 partition, and we'll need to simply mount either the physical floppy disks or the floppy disk images for the DOS operating system installation. I haven't seen any particular problems with that. We might need to go into more detail about the errors that are being seen, or something like that, to be able to answer that effectively.
Otto: That user may want to go ahead and contact Product Support directly as well, if problems persist or if there are any specifics you'd be able to provide as well.
David: I should mention on that note, we do have a public forum, a newsgroup for Virtual PC. That is microsoft.public.virtualpc.
Otto: Okay. That's a great reference. Thank you. Is there any value in backing up the virtual disk while the virtual machine is running, or should the backups be run when the virtual machine is not running?
Kurt: I'll start that and I'll let David give you any more specifics. When you turn off the virtual machine and you're using the host and backing up that file, what you have to remember is that it is a huge file. It might have only a tiny bit of changes in it and then you're going to back up a 1.5 GB or 2 GB or 3 GB file. That's because, from the host perspective, that's just a huge file and it has no idea of what's going on internally.
If you do backups from the guest OS, the guest OS backup utility, whatever is running in there can look at the internal file modification dates inside the OS, and back up only those things that have changed. The amount of data you're backing up is much, much lower. David, do you have anything to add on that?
David: I just want to add our two recommended methods of backing up. They are, number one, to back up within the virtual machine. In other words, boot the virtual machine, install a backup application, or use NT backup, and then actually back up to a file, and then copy that file out of the virtual machine. That's probably not my preferred method of backup.
My preferred method is since we are talking about single files. The entire machine is encapsulated in one file. The simplest method of backing up, in my opinion, is just to back up that file, the .vhd file. Now doing that requires that the virtual machine be shut down not in a safe state, unless you want to back up the safe state file also. But I find that to be the most elegant solution personally for backups just to make sure that I have, at least several copies of those .vhd files available.
Otto: I've noticed a huge performance issue using the NAT setting. What should I be looking for in this instance?
David: Honestly, I don't know of any specific issues with performance and using NAT. Some things that you might want to consider are a firewall, if a firewall product is installed on the host machine. You might try disabling that firewall product just temporarily to see if the performance issues are alleviated. Any other applications on the host machine that might be accessing the network, now that wouldn't be specific to a NAT setting necessarily, but is something to check on — if your network bandwidth is being used by another application.
We have seen some issues with antivirus utilities causing performance issues, if they are scanning the virtual machine files .vdh, .iso, .vmc, for example, and the Virtual PC process, Virtualpc.exe. Another thing that you might want to try there is excluding those files from the antivirus scanning. Again, that could be done temporarily just to test and see if that resolves the issue.
Otto: The next question here: How many virtual machines can be installed on a physical machine? Is there a limitation?
Kurt: The only limit when you install virtual machines on a host computer is basically disk size. So, we tell people that you can install as many guest OSs as you have disk space for. You can run as many simultaneously as you have RAM for. So, a virtual machine that's not running consumes only disk.
A virtual machine that's running, of course, has disk space and it's consuming RAM. RAM that you allocate to a guest OS in Virtual PC is unavailable to the host for other applications and is unavailable to other guest OSs. You should consider that memory as being locked down and used only by that virtual machine during the time the virtual machine is running. David, anything to add?
David: No. I think you've covered it.
Otto: Are there any plans or is this available now? Can you allow more than two COM ports within a virtual machine?
David: That is not available now. We do only address two COM ports on the physical machine now. It's important to note that we can address any two COM ports on the physical machine with VPC 2004. In other words, if you have 16 COM ports on your physical box, we can choose any of those 16 to be COM1 and COM2 in virtual machines. Now as far as plans for the future, I might have to defer to Kurt on that.
Kurt: No. I'm not ready to announce any features of future versions today, but I will take your request back to the rest of the VPC team. Thank you for your feedback.
Otto: Great. Thank you. Often it seems that Virtual PC is limited not by CPU, but sometimes by disk speed. For instance, I'm seeing little CPU usage on the host or the guest OS. Any tips on how we can speed up the disk access maybe in general or specifically for an XP host?
David: That's an excellent question. The best single method of improving disk I/O, and that is the bottleneck a lot of times with virtual machines, that single method of improving that may not be the answer everyone wants to hear, but the answer is to put the .vhd file, the virtual hard disk, onto a separate physical disk, a separate spindle.
Once they are placed on a separate physical disk, the virtual machine, the I/O is taking place on that separate disk. The host operating system is taking place on the initial disk. That has dramatically improved performance on my machines and that's how I do everything now with virtual machines.
Otto: Where would I go to set a fixed disk as opposed to a dynamic one?
David: Fixed disk can be created; fixed or dynamic are options when you're creating a virtual disk through the Virtual Disk Wizard. Now if you go through the virtual machine, the New Virtual Machine Wizard and select there to create a virtual disk. That's always going to be created as a dynamically expanding disk. If you, however, go through the Virtual Disk Wizard (on the File menu, click Virtual Disk Wizard), you'll have the option to create dynamically expanding or fixed or a number of other options there also.
Otto: How does virtual machine differ from remote desktop?
Kurt: Virtual PC, when it's executing a guest OS, is using the CPU of the host for all its computations. So, for example, if I'm running on my XP host machine, Windows 2000 and Windows 95 simultaneously as guest OSs, the CPU in my host machine is executing all of those operating systems simultaneously. The memory of my host machine has been allocated to those guest OSs.
When you're running remote desktop, you're accessing another CPU somewhere else on the network, that CPU's processing power, the memory in that remote device, and so on. You're basically just sharing the screen of your host OS. So, it's a question of where execution is taking place, what resources are being shared, and things like that. When you shut down a guest OS, it stops executing. When you close a remote desktop connection typically that remote desktop does not stop executing. David, anything to add?
David: No. I think you've hit it on the head. It's really two totally separate technologies.
Otto: Can we provide a resource for licensing requirements for Virtual PC?
Kurt: Virtual PC itself, of course, is an application that you can purchase and license from Microsoft. The licensing complications in using Virtual PC have to do with the guest OSs, with the applications that are installed in the guest OSs, and any other software you want to install in the guest OS.
Unfortunately, you're going to have to look at the licensing requirements from the manufacturer of that OS or those applications or whatever. Each of them can be different. For operating systems from Microsoft, I think there is information on the Virtual PC Web site about licensing, but I'll have to check that to be sure. David, you might know better than I.
David: That is true. I believe there is information on the Microsoft.com/virtualpc site. However, the information there is simply that just as on a physical machine, licenses are required for any operating systems, Microsoft operating systems that are installed within Virtual PC. Now another problem, if you want to call it that, to address along with that question is about Microsoft Windows XP. With Windows XP, for example, when hardware changes dramatically, when XP is installed to a new machine or a large number of hardware components are changed in that machine, activation is required again. Now this is the case with Virtual PC also when upgrading from the old Connectix products to the Microsoft Virtual PC 2004 product, activation may need to take place again on the XP guests.
Otto: This question might be better handled directly via a support incident, but I'm going to go ahead and throw it out just in case we have any suggestions: I'm currently using an ADSL USB cable modem to connect to the Internet. I am using Windows XP. I've created a virtual Windows XP machine, and want to be able to connect to the Internet from that virtual machine. However, my ADSL modem is detected as an Intel network card within the virtual machine OS. I can't seem to configure that machine to connect to the Internet as normal. Is that something that you may have seen?
David: I think we can address that very quickly actually. There is bad news and there's good news. The bad news being that Virtual PC 2004 does not recognize USB devices on the physical computer, excepting keyboards and mice.
So, the USB ADSL adapter is not going to be recognized by the virtual machine, but if you use the NAT option, the Shared Networking NAT option in the Network settings, we should be able to connect directly to the Internet through the virtual machine. It doesn't matter what type of adapter, modem, or network adapter is being used in the host, if we use the NAT setting.
Otto: What is the current Intel processor that Virtual PC 2004 is emulating and does it take advantage of a dual-processor host?
David: The processor is not actually emulated with Virtual PC. We're directly using the processor from the host. So, in other words, if you have an Intel P4 on the host, the guest is also going to recognize and use the Intel P4. I'm sorry; what was the second part of the question?
Otto: Does it take advantage of dual-processor hosts?
David: The answer to that is simply no. It does not.
Otto: I'd like to set up clustering within Virtual PC, although I realize that this is not supported, but can you actually add multiple virtual network cards, for example, maybe like in a crossover configuration?
David: You can add multiple virtual network cards. The settings interface in VPC 2004 allows adding up to four virtual network adapters, which can be connected to, they can be multi-homed, so to speak. They can be connected to different physical adapters or all to the same physical adapter. Now clustering in Virtual PC is not sported, as mentioned in the question.
We do not emulate a SCSI device in Virtual PC. Just to throw it out here, again, this is not a supported configuration. It's not something that we necessarily recommend, but we've had some users report success with using iSCSI to set up clustering with Virtual PC. Now if you're going to do that, I would recommend only doing that on a test or a development-type scenario and not trying to use that in any kind of production environment.
Otto: We currently have Windows 2000 installed as our host machine and have also installed Windows 2000 as a guest. The host network interface card is an Intel PRO/100+ Server Adapter. The virtual machine happens to show an Intel 21140-based PCI Fast Ethernet adapter. The host machine is not currently using DHCP and I cannot seem to join the domain. Are there maybe any known issues with that particular network card or is it perhaps some settings?
David: There are not any specific known issues with that network card that I'm aware of. Kurt, correct me if you know of anything that I'm not aware of.
Kurt: No. I don't on that particular card. Virtual PC does do emulation of the network card, so you won't necessarily see exactly the same card from the guest OS's perspective, as you would have installed on the host. I routinely join virtual machines to the domain from my office machine and it certainly is possible. You might want to consider a support incident on this issue.
Otto: Great. Thank you. Next question: Can Virtual PC run locally on a host machine if the machine is running Windows 2000 Server or Windows Server™ 2003?
Kurt: Virtual PC can be used with Windows 2000 Server, Windows Server 2003 as the host. It's not a supported configuration. It wasn't extensively tested. As you probably are aware, there is a kind of companion product to Virtual PC called Virtual Server, which is focused on the execution of server OSs on a server OS. That would be the better and the supported configuration to use. But that being said, I've seen people use this successfully many times. David, do you have anything to add?
David: No. No. I think you've hit it.
Otto: Regarding Virtual Server, is there any public information available on a release date and do you know if you need XP as the base OS for that install?
Kurt: As you probably know, Virtual Server is still in development. There was a public beta released a few weeks or so ago. You can access that via the Microsoft.com Web site. The focus of Virtual Server, as I mentioned, is the execution of server guest OSs on a server host OS. So, that's going to be the preferred and the supported configuration. I don't believe there is an announced release date other than it being the first half of this [calendar] year. I do not anticipate that date being missed, so you should expect to see Virtual Server released soon.
David: As far as XP as a host operating system for Virtual Server, that is, in certain circumstances, going to be supported. The primary host operating system is going to be 2003 Enterprise standard, etc. However, XP is planned to be supported as a development or test scenario.
Otto: I'm currently using Virtual PC as a Web server with IIS (Internet Information Services), accessing it from the host PC, which is running XP. I'm finding that the network connection tends to be a little bit unreliable, often needing the Virtual PC to be rebooted. Any suggestions?
David: The slide that we covered earlier (slide 17) with, I guess you can call it flaky network connections, all of those suggestions apply here. I would definitely check for a personal firewall product and, you know, take that out of the picture temporarily to see if that resolves the issue. And also check for any TCP offloading settings and any possible problems with the installations, if there were any errors or pop-ups during the installation of Virtual PC. Those could be important clues as to what might be going on. Typically something like that is going to be a problem with the Virtual Machine Network Services driver or something that's conflicting with the NDIS filter.
Otto: Is it possible to deploy Virtual PC through Group Policy objects (GPOs)? Currently when we attempt to select an .msi file, when you try to deploy, we're receiving some error messages like "unable to extract deployment information."
David: That's a good question and I'm not certain that I have an effective answer for that. We do need to either run the setup executable to update the install by using the Windows Installer or we need to update the installer manually before running the .msi package. So, that could be related to the problem here.
Otto: I'd like to isolate the guest OS from our network. I installed an MS Loopback Adapter with a virtual IP network address, and then changed the guest OS configuration from shared NAT to bind to the MS Loopback. The guest OS is now configured on the same virtual network, but we're wondering how we access local resources, such as an IP-based printer, on the host. The guest is actually able to ping the host, and then the host is also able to ping the guest.
David: Now if the printer is IP-based, you should be able to access it in the configuration that you're talking about there. The host should be accessible through the loopback adapter and, of course, to get external connectivity through that loopback adapter, you could bridge that through the physical adapter on the host. I'm not sure what might be going on there, but that should work the way you've described it.
Otto: Is that something that might be better handled via support incident there?
David: It might be a good one to call in on. Yes.
Otto: I'm currently having some memory allocation issues when trying to run more than one virtual machine. I can only run one VM and the host simultaneously. I've got 2.8 GHz machine with 2 GB of memory and a 40-GB hard drive for VM use. I've checked Task Manager and seemed to have plenty of available memory. Is there an easy fix for this type of scenario?
David: This is something we've seen a few times in the last few months. Now I hate to point fingers or anything like that, but we have seen a particular product (and it's an older version of a particular product) that has a tendency to consume a large amount of memory and not necessarily report that correctly to the OS or to the Virtual PC.
There is an easy way to find out what that application might be, if there is such an application on your box. That would be to run the Msinfo32 report. Let me see if I have the exact steps that you'd need to take to confirm that, but with the Msinfo32 report you can look at the processes and determine which process might be, so to speak, hogging a large amount of memory.
Now one of the applications we've seen causing an issue like that in the past or using a large amount of memory was the InCDSrv.exe service, which is a Nero Burning ROM service. There is a specific outdated version of that service that does cause problems, but there are much newer versions of the product that will alleviate the problem.
Otto: I've noticed that it's much faster to install from an ISO image rather than from a real CD. Is that normal?
Kurt: That's been my experience also. I just think it works better. You're reading the data off of the hard drive, in effect, rather than off a CD. So, my preferred method for installing an OS in Virtual PC is to use an ISO file. It's so convenient and much faster, although CD installation still certainly works.
Otto: Are there any tricks to getting Longhorn to run within a Virtual PC environment?
Kurt: The Virtual PC team worked closely with the Longhorn folks prior to PDC, when they released a build of Longhorn externally, to make sure that it works it Virtual PC and it does. I use it routinely. What you have to remember, the suggestions that David gave during the presentation of "run at maximum speed when in the background" makes a tremendous difference for a Longhorn install, so that's the good news.
The bad news is, it's going to take a while. So, when I do a Longhorn install on my main machine, that's a three-hour, four-hour job. So, it takes a little bit of time. You definitely will want to install the Virtual PC editions into Longhorn. It makes a huge difference in Longhorn both in terms of video and in terms of speed.
Virtual PC has support for Longhorn built in the editions. But that being said, it runs, I think, pretty well. It's a little slower than we'd like and we're working on making that faster. We're working with the Longhorn team to continue to increase the ability of Virtual PC to use Longhorn, but it will run fine. We have reports internally in the company, and externally from people who attended PDC, that they were very pleased at the experience of using Longhorn in VPC.
Otto: While the virtual machine is running, can you dynamically manage the resources of a virtual machine, for example, RAM?
David: There are many settings that can't be changed in a running virtual machine, but some that can. The networking settings can be changed while the virtual machine is running, for example. A good way to think of it is, if you had a physical machine that was currently running, you wouldn't want to "hot swap" the RAM, so to speak, or try to pull out cards and add new cards. This is much the same for a virtual machine and for Virtual PC. As a side note to that, many settings can also not be changed if the virtual machine is in a save state. Typically, the VM needs to be shut down completely.
Otto: How are the MAC addresses assigned to a virtual machine when they're created? We're currently not using NAT. Will Virtual PC duplicate a virtual MAC address?
David: We have seen some isolated issues where that's happened. The MAC addresses are randomly generated; portions of a MAC address are randomly generated. It is possible. The odds are very, very slim at any given environment that there would be duplicate MAC addresses, but it has happened in I'd say a couple of cases that I've seen. Now if that does happen, Kurt mentioned earlier that the .vmc file can be edited to zero out the MAC address. The next time that virtual machine is started, the MAC address will be regenerated.
Otto: I reviewed the "run Virtual PC at maximum speed" setting and found that it is actually in the section of when running VPC is running in the background. We're wondering, how does this background setting affect the foreground speed?
Kurt: You're certainly correct. That's exactly where this setting is. I was surprised, too, when I heard that this would make a difference for things like OS installation, but I can absolutely guarantee that it does. The development team is looking into this to see why this would make a difference. In theory, you're right; it shouldn't make any difference if Virtual PC is the foreground atop the entire time, but it absolutely does. So, we're looking into the details why, but we're passing on the tip that you want to use the setting especially for OS installations.
Otto: A follow-up question regarding clustering support: Where does Virtual PC fit in versus Virtual Server?
David: Virtual Server is going to have clustering support and that's going to be simple. We're not really here to discuss Virtual Server, but just very quickly. Virtual Server will support simple two-node, guest-to-guest failover clustering. That's not intended for production usage in the first release of Virtual Server.
Now the reason for that support is that we have emulated SCSI adapters in Virtual Server, and we do not in Virtual PC. Of course, as I mentioned earlier, we've had some reports and some testing has been done to show that iSCSI actually allows clustering within Virtual PC, although, again, that is not a supported configuration.
Otto: Okay, great. Thanks for the clarification there. Are there any plans to support CD burners?
Kurt: CD burning is a particular tricky thing to support from a virtual machine. The reason is that it's extremely timing critical. If you're not pumping out data at a particularly constant rate to the CD that's being burned, you can end up ruining the CD. So if while this data is being poured out to this CD from a virtual machine, if some particular instructions are being executed that require Virtual PC to go through a little bit of extra work and that puts a slight delay in for just a moment, it wouldn't affect most operations or you wouldn't notice it, but when burning of a CD you will.
So, this has been problematic. We don't recommend it. Some customers have found that they can do it certain circumstances. Some have found that they can't. We don't recommend things like that from Virtual PC, because of the variability in the timing. David, anything to add there?
David: No. You've covered it.
Otto: I currently have an application that changes screen resolution on startup that seems to cause a problem within my VM. Any suggestions there by any chance?
David: That is, I guess we can call it, a known issue. It's by design is more likely the way I should put that. It happens when an application tries to resize or change the resolution in a virtual machine, particularly one that's been dynamically resized. In other words, if you have the Virtual Machine Additions installed and drag the corner of the virtual machine to resize the window. A good way to see this in play is, after resizing a virtual machine window, to start a screen saver.
You'll note that the virtual machine window changed to 640 × 480 as the screen saver starts. That's because that screen saver is actually changing on a physical machine you wouldn't see the change in the displaced size. You would just see the resolution change. In the virtual machine, we actually change the size of the window. I'm not sure if I'm clarifying that very well, but that is expected behavior. Now as soon as the application stops, you should be able to resize that window again.
Otto: Is Virtual PC 2004 compatible with the new 64-bit processors?
David: Actually it is not at this time. Now if you have 64-bit processor and you've installed a 32-bit operating system, we can install Virtual PC on that 32-bit operating system. So, the operating system is the key factor there.
Otto: Can you expand a little bit on the Virtual PC connectivity? We're wondering how the networking connectivity should actually be set up between the guests and the host.
David: That's very subjective. Now if you need connectivity between the guest and the host, the current options do that and do allow external connectivity. In other words, choose the networking option that represents the physical network adapter on the host.
There is another way to do that and that would be to install the Microsoft Loopback Adapter on the host, and then bridge that loopback adapter to the physical adapter on the host. Actually, that step might not be necessary, depending on your configuration. Then connect the virtual machines to the MS Loopback Adapter. Of course, all the recommendations we've made earlier regarding security apply here.
It's very critical to bring out the virtual machines for the first time without external connectivity or with shared network set before they're patched and antivirus installed, etc. But after doing that, the best method would be to either use the MS Loopback Adapter, which will allow you connectivity to the host machine, or to use the external network (physical) adapter setting.
Otto: Is there any utility available that would allow us to shrink the .vhd files? The built-in compact utility doesn't seem to produce enough compact results essentially for us.
Kurt: There are some additional steps required. The Virtual Disk Wizard compact option doesn't compact on its own. It needs a couple of additional factors. The first is within the virtual machine the defragmentation tool needs to be run, and the virtual hard disk needs to be defragmented from within the VM. The second step is to run a utility that will zero the hard drive. There are several third-party utilities that will do this. Eraser is the one I've used quite a bit. That's downloadable; I believe it's a 30-day trial software.
If the Eraser utility is used to zero out the outlying space on the drive in a 3-byte pattern of zeros, then after the virtual machine is defragmented, erased, and then shut down, the Virtual Disk Wizard can be used to compact the disk. If any of those steps are left out, in my testing at least, in other words, if I forget the defragmenter of forget to use the Eraser utility, and then I go into the compact, I end up with one of two things: either, number one, the disk is the same size as when I started out or the disk is slightly larger than when I started out. So, all three of those steps are critical.
Now there is one additional way to compact disks. This is not something that we've documented because, again, it entails using a third-party utility, but if you actually image the drive using Ghost or PowerQuest or some other similar utility from one virtual disk to another virtual disk, the second virtual disk, the one you image to is going to be compacted. That will be as compacted as it can get.
Otto: Both the host and the guest were running XP. The guest is configured to use shared networking. If I copy the guest OS to four systems, also running XP, on the same subnet, could response time be an issue if I didn't actually Sysprep the guest OS?
Kurt: Well, if we're copying any virtual machines and these virtual machines are going to be on the same subnet in particular, they would need to be Sysprepped to avoid any duplicate names, duplicate GUIDs, and so on. Just like if you were cloning a physical box and deploying that clone or that image to other physical boxes on the same network. So Sysprep is definitely a critical factor in that scenario.
Otto: You had mentioned a little earlier some of the limitations of USB. Are there some plans to expand the USB limitations to support like DiskOnKey and printers, etc?
Kurt: USB support in Virtual PC is certainly one of the more frequent requests we're hearing from both internal and external customers and users. So, we're well aware of the need for it. I can't make any promises what will happen to future versions, but it's certainly very high on my personal list.
Otto: Should the virtual machines be considered the same as the host machines and have service packs and critical updates installed, of course, software firewall and antivirus software. Should all that be implemented and installed if the host already has all of that installed? Let's say if the host is infected with a virus, does the virtual guest automatically inherit that virus as well?
Kurt: It's definitely the case that virtual machines have the same vulnerabilities as physical machines and need similar protections. As a general rule of thumb, nothing you do on the host in terms of antivirus software, firewalls, and so on will protect the guests in any way. So you need to protect each of those guests individually.
With the exception of the virtual machines and the host all being on the network as full network citizens, and knowing that any virus on one machine on the network can also infect another machine on that network, there is nothing particular and there is no additional vulnerability if the host has a virus. It won't cause the guest to get the virus other than going through the normal network communications that you would between two machines. But it's extremely important for your guests to have the latest service packs, to have firewalls on them, to have antivirus software, and so on. Think of it just as another machine on your network that needs to be protected. David, did I miss anything?
David: Well, one of the most frightening things that, I think, we see in my opinion at least, very frightening, is virtual machines that are shut down and left in storage for a while and then brought back up a few months later. It's very, very critical in those situations. If you're not bringing that machine up frequently and checking to make sure that it's patched with the latest patches and security fixes, it's very critical when you first bring it up after a few weeks or a few months, that you bring it up off the network and verify that it's fully patched; or, again, bring it up with shared networking and check Windows Update for recent patches.
Otto: We are looking at the last few questions here and I'll leave the message queue open for another couple of minutes, in case you are typing in last minute questions. Can I use Virtual PC to simulate a network between a host and a guest without actually having a physical network card installed?
David: Absolutely. The MS Loopback Adapter is the perfect fix for that scenario. If you installed the loopback adapter on the host, it can be selected as a physical network adapter from within the virtual machine settings. With the loopback adapter installed and the virtual machine connected to that loopback adapter network, you will actually have connectivity between the host and the guests.
Otto: We got a follow-up to one of the previous questions that we had addressed regarding GPOs: Overall, what would you say is the best practice to deploy virtual machines? Today we're deploying them through Group Policy objects as .msi packages, but the installation takes a while, because of the size of the .vhd files. Do you have any other ideas?
Kurt: Well, that's going to be very dependent on the exact situation here. Now there are some other possibilities, again, depending on the situation. We have a type of virtual disk called the differencing disk. If images are being frequently deployed, for example, we have some customers. I had a customer who has come up with a very ingenious solution for deploying or sending our images via DVD.
Rather than sending out a whole new image with new applications installed every week to his remote sites, he actually creates differencing disk images, which only contain the differences between the original operating system and any changes that he's made in the meantime. He can send out 10 or more of those differencing images on one DVD. Now if it's a situation like that where updates are being made or applications are being installed and the base operating system is staying the same, differencing disks might be a much quicker way to deploy across the network.
Otto: Excellent. Thank you. With that, we've addressed all the questions submitted to the queue today, so I'm going to go ahead and wrap up our session. I certainly wanted to thank you guys for coming out and giving us a great presentation here. Of course, as always, we'd like to thank you, our listeners, for attending today's event.
We certainly welcome any feedback on the sessions that we produce and the topics that you'd like to see covered in the future. Feel free to visit our "Contact Us" page there at support.microsoft.com/servicedesks/webcasts/feedback.asp, and click the link under "WebCast Comments/Suggestions/Feedback." We hope that this presentation has been helpful to you and your business. We look forward to your participation in upcoming WebCasts. Thanks, everyone, and have a great day.
|