Thursday, July 12, 2007

Running WinXP Pro in a VMWare Virtual Machine on Ubuntu

I had been interested in having a virtual system since the early days of Windows 95, when my system was crashing far more often than it had done under DOS or OS/2. I had hoped to reduce the severity of those crashes by running Windows inside a virtual machine on OS/2. To that end, I bought a copy of VMware in the late 1990s. I never got around to trying it out, though. As I recall, there were performance and complexity issues. Moreover, I wasn't prepared to take the plunge into Linux, which seemed likely to involve a relatively steep learning curve. Now, much later, Windows had become much more stable. I was running Windows XP Professional. But crashes could still happen. Frankly, I still found that I had to reboot the machine daily, and completely shut it down for a minute or so every couple of days, to insure that the system would not begin to behave in some squirrely fashion right in the middle of a project. Ubuntu Linux had emerged; it seemed to be something I could become functional in without too much of a time investment; I had acquired hardware that could run virtual machine software more easily; and I also had a brief window in which to explore the matter. I was ready to try running a Windows virtual machine on a Linux (Ubuntu) platform. Stability was one reason, then, for my interest in using virtual machines. A more important reason was that I wanted to gain access to more than 2.7GB of RAM. As I have described in more detail in another post, I was experiencing a lot of system slowdowns in running various processes, and was therefore interested in making greater use of RAM, possibly in the form of a RAM drive, instead of waiting for the Windows system to swap things in and out of a pagefile located on a physical hard drive. To use more RAM, I would need a 64-bit operating system. In another post, I have presented the concerns that led me to choose Ubuntu instead of Microsoft's x64 flavor of Windows XP Professional, and also instead of the new Windows Vista operating system. (It developed, in the course of the research presented in this post, that Vista would also have been an inferior choice for purposes of implementing VMware.) I had been looking at several different virtual machine products, including VirtualBox, XenSource, Microsoft's Virtual PC 2007, and VMware. I don't remember all of my reasons for deciding to start with VMware. (VMware's FAQs provide some.) Generally, it seemed that people were quite positive on it, and that it was the most industrial-strength virtual machine product available. Virtual PC 2007 ran on Windows only, which was not what I wanted; besides, I really wanted to get away from a scenario in which I would continue to be dependent on Microsoft. VMware offered several free products. It seemed that I should begin with the VMware Converter -- the Starter version, that is, as distinct from the Enterprise version. The purpose of this product was to "convert your physical machines to virtual machines in minutes." That is, I would turn my desktop computer's sprawling Microsoft Windows XP Professional installation into a nice package that I could open up and run from inside Ubuntu. I would thus have simultaneous access to both operating systems. While continuing to do things in Windows, I could also begin to learn how to do them in Linux, toward the goal of transitioning away from Windows over the long haul without losing my ability to get things done in the meantime. It appeared that I would still be able to add new programs to Windows XP. If I added them to my physical dual boot system, they would not be part of a virtual machine until I created another virtual machine that contained them. If, instead, I added them to my virtual Windows setup, they would exist only in there, and not on the virtual machine. This was OK, for two reasons: (1) I didn't want to have to keep rebooting my Ubuntu system every time I wanted to do something in Windows, and (2) I wanted to begin doing more things in Ubuntu and fewer in Windows, so hopefully I would be adding some of my new capabilities in Ubuntu rather than adding them to a Windows installation. One long-term advantage of the Ubuntu and VMware combination, as I saw it, was that I might be able to avoid devoting the large amounts of time that it could take to reinstall and reconfigure Windows, Office, and all my other software, every time I made a substantial change to the hardware in my machine, or wanted to upgrade my operating system, or needed to eliminate the creeping slowdowns that seemed to accumulate in every Windows installation. Instead, from VMware's introduction to virtualization, it appeared that I would be able to install Windows and all that other stuff once, import it into a VMware virtual machine, and then run it on my laptop and on any other computer I might be using. I intended to use VMware to convert my physical machine -- my desktop computer's Windows installation -- to a virtual machine. I noticed that VMware would also convert some nonphysical assets to virtual machines. The list of convertible items, presented in VMware's FAQs, included virtual machines created by other programs. Specifically, for Microsoft's Virtual Server and Virtual PC, and for Symantec's LiveState Recovery program (now known as Backup Exec) you would use VMware's Virtual Machine Importer. VMware would also convert drive images created in Norton Ghost, version 9 or higher. That was interesting because Ghost 9.0 was backward-compatible with PowerQuest's Drive Image 7.0. (According to a post I read somewhere, Ghost 9 essentially gave up on Norton's old approach and adopted PowerQuest's superior technology instead, now that Symantec had acquired PowerQuest.) DI 7.0 was the next step newer than Drive Image 2002, which I used. It seemed very likely that DI 7.0 would work with images saved in DI 2002. In that case, it seemed that I could image any machine, using my Drive Image CD, and could then create a virtual machine out of it, using VMware. Moreover, my old Drive Image backups might thus be convertible into virtual machines that I could load without rebooting or reformatting any hard drives, if I wanted to go back in time. Looking ahead, likewise, I could save and, on the fly, could reload working snapshots of my system as it was at a given point in time. (On that basis, I began to wonder if I would also want a Windows-host version of VMware, so that I could take my own Windows setup, with all my assorted utilities, Microsoft Office settings, etc. to use on I wasn't yet sure whether I would want to use Norton Ghost to back up my VMware installation. I doubted it but, if I did, then I could see that the two might form a nice symbiotic relationship, and that it might be worth my while to upgrade from Drive Image. This would all have to happen within Windows. The FAQs page said that Converter would only run on certain versions of Windows (including XP). So now I understood what was, for me, the main functional difference between the Starter and Enterprise versions of VMware Converter. I didn't plan to run a large-scale operation, so I didn't need Enterprise. But you could use Enterprise to cold-clone a machine -- that is, you could use a boot disk to start a machine and make a virtual machine from it, without having to run its operating system. VMware, running on Windows, could not hot-clone a system running on, say, DOS, or Mac, or Linux. To make a virtual machine on a system like that, it seemed, you would have to download the appropriate version of some VMware product (e.g., the Linux version), install and run it on that machine, and then create your virtual version from inside that operating system. VMware's Virtualization Overview explained that there was a distinction between a "hosted" approach and a "hypervisor" approach to virtualization. I had thought VMware was a hosted approach, but now it seemed that was mistaken. The difference was that, in a hosted approach, you would install a host operating system, and would then run the virtualization software on that, whereas there would be no host operating system in a hypervisor approach: the virtualization software would be installed directly on the computer hardware, just as you would install an operating system like Windows or Linux. I wasn't too sure how this would work, so I continued my research. I wasn't too clear, at this point, what the relationship was, among VMware Converter, VMware Server, and VMware Player. (Somewhere along the line, I noticed that 64-bit (as distinguished from 32-bit) Ubuntu was supported only in an "Experimental" capacity, which was not entirely what I had hoped to see.) I noticed, from the FAQs, that Converter could import virtual machines created in Server and Player, but also that it could export virtual machines that would be compatible with Player and Server. The general idea seemed to be that Server would host the machines created by Converter, and then maybe you could use Player to run those machines on other computers. They provided more detail, but not necessarily more clarification on this point, in their Interoperability notes. (Later, I decided that one difference was that, in Server, you would create a virtual machine from scratch, by inserting the program drive and installing an operating system and other program software, whereas Converter, as just described, would create a virtual machine from a preexisting installation or image file.) I now had a 64-bit CPU, and anyway I didn't plan to have any 64-bit virtual machines operating as guests on my VMware setup. So I didn't worry about 64-bit guests. The only virtual machine I planned to have was 32-bit Windows XP Professional (which, according to their list, was fully supported by Converter, unlike DOS and Linux, which were experimental); and I planned to install that by using a virtual machine that would encapsulate everything contained in my existing WinXP setup -- so it didn't look like I would need VMware's instructions on how to create a virtual machine setup from scratch. The main exception seemed to be if I tried to create a virtual machine from an ISO (or maybe some other kind of) drive image. In that case, apparently I would want to have the virtual hardware setup already configured, within the empty virtual machine. For example, if my drive image was supposed to work with a networking connection, I would want to have that configured in advance. I began to sense that the drive image approach could involve some trial and error. VMware Converter, it seemed, would proceed in three steps: (1) Specify the source physical server, virtual machine or third-party format to convert. (2) Specify the destination format, virtual machine name, and location for the new virtual machine to be created. (3) Create/Convert to the destination virtual machine, and configure it. I was sure I would be looking at the VMware Converter User’s Manual in more detail later. Among the known issues that VMware attributed to Converter, one was that it would treat the first drive in a virtual machine as the boot drive. So in my case, where I booted from a SATA drive that came third in typical lists of my drives (such as that which appeared in XP's Disk Management, or in GParted), I would have to use a workaround that involved adjusting the BIOS within the virtual machine. Also, Converter would work only on the operating system that boot.ini points toward -- which, I assumed, would mean my Windows installation rather than Linux, since I understood boot.ini to be a Windows file. There were other items on the list of known issues, and I was sure the VMware Technology Network (containing links to discussion forums, communities, blogs, etc.) were just full of issues, but at this point there didn't seem to be anything standing in the way of my starting to use Converter. So now that I had an introductory sense of what Converter was, how did VMware Server relate to it? I needed, first, to sort out which version of Server we were talking about. According to the VMware products list, there was an ESX Server and just a plain old Server, and only the latter was free; and then, unmentioned in the products list, there was also a GSX Server providing "virtual infrastructure for enterprise IT administrators." ESX Server, likewise, appeared to be a heavy-duty setup for administrators. Unlike ESX Server, free Server was apparently not a bare-metal hypervisor program, but was instead a hosted virtualization product (see above) that, they said, would run "like an application" on "a wider variety of Linux and Windows host and guest operating systems than any server virtualization product on the market." I was content to focus, for now, on the free version, VMware Server. It looked like the primary distinction, between Server and Converter, was that you would use Converter to bring an existing drive image or physical machine into the virtual machine world, but then you would use Server to run and back up that virtual machine. So, according to the Server FAQs, the whole virtual machine would be saved as a single file, and you could use Server to "[e]valuate software in ready-to-run virtual machines without installation and configuration." There was actually a long list of Virtual Appliances that evidently you could fire up and run within Server. I checked that list and identified a few of potential interest, among the many that bore four- or five-star ratings. In the Content Management and Collaboration category, for instance, the most popular appliance, rating four stars, was the JanusVM freeware, described on its webpage as "software that allows you to surf the Internet without oppression or censorship, while protecting your privacy, security, and identity. It has advanced filtering capabilities for modifying web page content, managing cookies, controlling access, and removing ads, banners, pop-ups and other obnoxious Internet junk," compatible with Windows (2000/XP/2003) and Linux. As an example from the Operating Systems category, there was the Linux XP 2006 SR2 Virtual Appliance, described as "a Fedora-based, beginner-friendly desktop distribution that mimics the look and feel of Windows XP and provides extensive compatibility features with the Microsoft operating system." There were other Linux implementations as well (and a lot of overlap among the various categories). The Server FAQs explained that Server differed from VMware Workstation, which was geared toward software developers. The FAQs also confirmed that Server could create virtual machines. The "Getting Started" page for Server said that you could not have Server running on the same host machine as VMware Workstation or Player, but that you could install VMware Tools. According to the FAQs, VMware Player was a free download that behaved like an ordinary application and allowed the user to run multiple 32- and 64-bit operating systems, including virtual appliances (above), simultaneously. As an example, VMware suggested the Browser Appliance, which was apparently a virus-safe version of Firefox -- safe, because it ran in a virtual machine. (That appliance got only three stars from a total of 10 raters, however.) Player apparently supported Symantec's Backup Exec. Player would not create virtual machines and would not coexist on the same machine with other VMware products. VMware also offered other software and information that also looked like it might be useful. VMware Tools (available in several different versions) were said to be very important for the guest machine. There was a Virtual Machine Mobility Planning Guide, a VMware Server Virtual Machine Guide, a VMware Server Administration Guide, and a Guest Operating System Installation Guide with updates. So I decided to start with Converter. I downloaded and installed it on the machine whose Windows XP installation I wanted to capture in a virtual machine. It asked me to designate which hard drives I wanted to include. This made me realize that the resulting virtual machine file would be just as huge as necessary to accommodate TMP files and other stuff that really didn't need to be in there. So I did some cleaning and pruning on my Windows drive. While this was going on, I was also browsing in other webpages, to see what other people had to say. I felt a little foolish for not doing this earlier when I saw a post by Bob on Development. He seemed to have just cruised right through the VMware process. I was probably being too cautious and thorough. But that was OK. I preferred to err in that direction. At this point in the process, I discovered that it was not necessary to download and install VMWare separately from Ubuntu. In other words, I didn't need to worry about downloading, unzipping, and installing separate .TAR files for Server or Player. Instead, Ubuntu comes with software that is pre-approved for use, and there are also other sources of software in several categories of diminishing stability. The way to gain access to a lot of this software, I found, was through Automatix. I installed Automatix. It put an icon under a subheading on Ubuntu's Applications menu. Through Automatix, I downloaded and installed a bunch of software. It was very easy -- just click on the box next to the package you want to download. I forgot that VMWare Server and VMWare Player cannot exist on the same machine, so I tried downloading them both. Automatix installed Player first, and then I had to go through a whole hassle to uninstall it and install Server. Because of some other distractions, I forgot about VMWare Converter. I ran VMWare Server. It instructed me to insert my book disc. I did. It began to construct a Windows installation from the WinXP install CD. I bailed out of that process. Along about this time, I began to get discouraged. For one thing, I was having basic hardware problems. I figured out that some of my struggles, in this post and in the previous one, were due to a faulty new motherboard, so I replaced it. With that out of the way, I was next able to identify that part of my problem, in booting Windows XP, was due to a problem with the LVPrcMon.sys driver, which was apparently the driver for my Logitech QuickCam. In lieu of hacking the registry at the recommended spot, I just uninstalled QuickCam in Add/Remove Programs and added an unflattering remark at a website that, I hoped, would help to inform others. That, and some other unrelated distractions, frustrated me. I was not making rapid progress. I was also concerned that maybe Ubuntu was not ready for prime time, at least not for me. For one thing, I knew that I would have to continue to run Microsoft Word for the indefinite future. The reason was that I had a lot of word abbreviations that I used frequently, when typing, to cut down on the number of keystrokes. There did not appear to be a way to import these keystrokes into OpenOffice Writer. I posted a question along those lines in one discussion thread where someone had developed a macro for this purpose. My problem was that I was not sophisticated enough in programming to adapt his macro to my needs. My question drew no response, presumably because (as I had tentatively verified in other searching) nobody yet had an answer. So it seemed that Word would continue to be essential, for me, until further notice. This was not to denigrate OpenOffice Writer in general, however. I had used it a fair amount, during these days, writing a paper on my laptop while doing all this tinkering on the desktop computer, and it had functioned pretty well. I noticed that sometimes the cursor was relocating itself to a place I had not requested, but that did not happen often enough to be frustrating or distracting. I had also tried using the OpenOffice database program. I imported a Microsoft Access database and went through the wizard to create a form, so that I could look at the table's contents. The wizard wouldn't let me get beyond its last step. It wasn't frozen – I could go back one step – but it wouldn't finish and display the form. I don't know what the problem was there. Another concern was that apparently Ubuntu's support of dual monitors was limited at this point. My browsing suggested that people were still very much at the level of writing code to obtain dual-monitor capability. I was feeling some time pressure and was not inclined to explore that sort of issue. Late on one very tired evening, I decided to run FIXMBR so that I could reboot Windows and go back to life as I had known it. The next morning, after a good night's sleep, I revisited my draft of this post and decided that I really should forge on, in hopes of gaining access to the full 4GB of installed RAM that had so preoccupied me from the beginning of this computer update project. As a test run, while doing other things on the Windows XP installation, I ran VMWare Converter on a DriveImage 2000 backup of the XP system. The DI image I selected, for this purpose, was a relatively small one, totaling about 4GB, containing an early snapshot of the WinXP Pro system, after some of the initial software and hardware installation was completed. To do this, I started VMWare Converter in the WinXP installation on the desktop computer. I selected File > New > Import and chose the third of the three available Source options. That is, I designated, as the source, a "Standalone virtual machine, backup or disk image." I browsed to the DI PQI image file on my hard drive but, alas, the only file types that were supported were VMWare Workstation Files (*.vmx, *.vmtn), Microsoft Virtual Server files (*.vmc), Symantec Backup Exec System Recovery Files, and StorageCraft ShadowStor files (*.spf). Virtual Server was a free download, so there was the possibility that it would work with DriveImage PQI files, and I could do a multistep conversion that way. I wasn't able to determine whether Ghost 9.0 or later, or Backup Exec, would import PQI files. So for present purposes, the only way I could create a virtual machine in VMWare Converter was to select the first of the three options, "Physical computer." (The second option allowed importing from "ESX server or VirtualCenter virtual machine.") When I selected the Physical Computer option, I had a choice between a network or local computer. I chose local. It allowed me to select the partitions that I wanted to include. I chose only the two partitions that contained Windows XP software and supporting files. (I kept some things, such as my custom icons and the sets of shortcuts populating my toolbars, in a separate drive D, so that they would not be affected by crashes and restores on drive C. Other things on drive D: the big files, not needing frequent backup, from which I had installed Office 2003 on drive C, and a Saved Settings folder where I kept a backup of my Office settings, Firefox Tab Mix Plus settings, Foxmarks bookmark backup.) Converter labeled my Linux Ext3 partitions as Unknown. Converter gave me several options, for purposes of including drives C and D in my new virtual machine. I could maintain their current size, or I could select Minimum Size (which appeared to be about 10% above the amount of disk space actually being used on those partitions at that time), or I could specify a size, either in GB or in MB. I decided to specify a size in GB, allowing some room to grow from the current size. I appreciated the option to "Ignore page file and hibernation file," each of which could be substantial. When I tried to proceed, I got an error message that didn't seem right: "The selected target size for some volumes is less than the space used on the volumes. The cloning operation may fail if there is not enough space to copy all the files." To my knowledge, the amount of space I had dedicated was more than I was now using, so I decided to go ahead anyway. Next, I got a choice to create either a ESX server or VirtualCenter virtual machine, or a VMware standalone virtual machine. I chose the latter. I designated the new folder where I wanted to put this virtual machine. Next, there was an option to "Allow virtual disk files to grow" or else "Allocate all disk space now for better performance." I chose the former. There was also a suboption, "Split disk into 2GB files," which was checked but greyed out. I guessed that it could be useful when writing to FAT32 drives, which have a limit of somewhere around 4GB, but in this case that didn't apply: the disk was NTFS. Maybe they wanted to make it easier to transfer virtual machines using flash drives. Anyway, I declined the option to customize the identity of the virtual machine. The process of creating the virtual machine commenced. Almost immediately, I got an error message: "Unknown error returned by VMware Converter Agent." I tried again, this time choosing the default amount of disk space for the virtual machine. I was able to do this by right-clicking on the project shown there in the Converter window and making the needed adjustments. I now saw why I had gotten that error message. In response to the instruction to specify the disk size in GB, I had typed 27GB, when instead I should have typed just 27. So now, knowing that I would be letting the disk expand as needed, I typed a size just slightly larger than the minimum. This time, Converter ran. I decided to see whether it would function while I was doing other things on the same machine. It seemed to; however, one of the things I was doing was installing new drivers for an Olympus VN-960PC digital voice recorder. The software for that particular device was not very good. In the past, it had caused other systems to crash. That's what happened this time too. Somewhere in the process, while I was away from the machine, the system crashed and rebooted. My sense was that it probably happened when the system was finished installing the VN-960PC driver, because when I started the VN-960PC software after reboot, it ran successfully, whereas it had not been working before the crash. What I did not know was whether the crash had occurred after Converter finished making a virtual machine. But it appeared that, most likely, Converter had been still in the process, judging by the relatively small sizes of the files in the folder that I had created to hold the virtual machine. So I started and ran Converter again, as before. Sure enough, its list of jobs said that it had finished only 1% of the process. It wouldn't let me overwrite the previous try, so I went to that output folder in Windows Explorer and manually deleted the first try. I did like the job list; its existence suggested that I could run preconfigured jobs repeatedly -- if, for example, I kept wanting to go back and add something else to the physical WinXP installation before making a virtual machine from it. At first, Converter looked like it was really cruising. Based on the amount of time elapsed and the amount it said was remaining, it looked like it would be finished creating a 30GB virtual machine in about an hour. But then the system crashed again. Although I couldn't tell for sure, again the problem appeared to be the Olympus DVR. I made a mental note to see if MSI had upgraded their motherboard drivers, and I rebooted and tried again. This time, I avoided the Olympus software too. The system didn't crash this time. In a total of one hour and 45 minutes (1:45), it produced a set of files occupying a total of 18GB of disk space. So I wasn't sure exactly what was the purpose of asking me to specify some other size. These files included 14 files with a .vmdk extension and one with a .vmx extension. The files all bore the name I had given ("2007-07-17 WinXP Pro"). So the .vmx file was 2007-07-17 WinXP Pro.vmx, and the first of the .vmdk files was 2007-07-17 WinXP Pro.vmdk. All the other .vmdk files had additional verbiage after what I had stated, on this pattern: 2007-07-17 WinXP Pro-s001.vmdk. The *-s001 through *-s013 files were all different sizes. Most were about 2GB. One was about 1.2GB. The smallest, *-s012, was only 320K. I did not have an explanation for this variation. To test the virtual machine, I needed to boot back into Ubuntu. Since I was sure FIXMBR (making it possible to boot WinXP) had once again messed up my Ubuntu Grub bootloader, I booted from the Super Grub Disk and, following instructions, I did the following:

  1. boot your SGD floppy disk, USB disk or CD-ROM
  2. English Super GRUB Disk
  3. Gnu/Linux
  4. Fix Boot of Gnu/Linux (GRUB)
  5. select your Linux partition
  6. see message, 'SGD has succeeded'
  7. you're done! reboot
Alas, it wasn't that easy. When I rebooted, I still saw no Grub boot option; the machine went right back into WinXP. But then it wouldn't fully boot Windows either; it crashed and rebooted before completing the startup process, like it had always been doing when Grub was in the way. So I went back to the instructions and explored the next contingency, which the instructions webpage described as follows:
You have more than one hard disk in your computer. You have Windows on one hard disk and you just installed Linux on another. You asked Linux to write GRUB to MBR. When the computer reboots for the first time though, it still only boots into Windows like before. ??? Maybe GRUB has been written to MBR on a non-first hard disk by mistake, where the BIOS won't see it. The BIOS only looks for the MBR on the first hard disk for the bootloader's code. You can check this and verify whether or not this is the problem by booting from the MBR on the non-first hard disk with S.G.D. See the 'Classic Boot' menu, available from the Super GRUB Disk English Super Grub Disk menu.
This meant using the Boot & Tools menu in the Super Grub Disk, and then selecting the Boot Master Boot Record (MBR) option. This gave me a choice of "Hard Disk to Boot." The options were hda, hdb, etc. I really had no idea, other than that it seemed the Super Grub Disk had installed Grub on the same drive as WinXP, and since that was first on the list I logically selected that drive and hit Enter. This booted Windows again, which promptly began its startup process and almost as promptly crashed. I went through the same process again, with Super Grub Disk, but this time I chose the second drive, hdb. That worked. I was now booting in Ubuntu. In Ubuntu, I started VMware Server and selected Open a Virtual Machine. I attempted to browse to the one I had created, but couldn't find it. Then I remembered that I had neglected to move my newly created virtual machine from the NTFS drive on which I had created it, to the FAT32 drive where VMware Server would be able to see it. So I took the opportunity, while I was rebooting back into Windows, to change my bootup so that I could boot into Windows. This would mean using the Super Grub Disk every time I wanted to boot into Ubuntu. That seemed OK, for now, for two reasons. First, I was still working in Windows, upgrading my newly assembled system and so forth, and would probably want to be creating another virtual machine to capture the state of the art (or of *my* art) in WinXP. Second, of course, Windows was a lot more likely to prefer frequent reboots (on my previous machine, I had found it necessary to reboot daily to prevent squirrely behavior). So I rebooted with the WinXP installation CD and ran FIXMBR again, so that I could then go back into Windows and move the virtual machine files to the FAT32 drive (and, having made MSI's recommended change to the BIOS, could update my BIOS as well, using their website instead of the old-fashioned floppy disk approach. Unfortunately, WinXP was still not entirely satisfied. On its first reboot, it crashed again. On the second round, Windows did boot, and I made the changes just mentioned, and then booted into Ubuntu using Super Grub Disk. I went into VMware Server, and this time I was able to open the virtual machine I had made using VMware Converter in WinXP. Server reported that the state of this machine was "Powered Off." I had the options to Start up this guest operating system, Edit virtual machine settings, and enter Notes about this virtual machine. There was also a list of devices, showing Memory of 2304MB, a hard drive, a CD-ROM drive, a floppy drive, two Ethernet devices, a USB controller, a sound adapter, a mouse, and two processors (because I was now using the Core 2 Duo CPU). Under the Edit option, I was able to click these various items (e.g., the hard drive) and change some of its features. In the case of Memory, I had the option to "Specify the amount of memory allocated to this virtual machine" from 4MB (although the program indicated that the recommended minimum for this virtual machine, and the amount recommended, were more in the neighborhood of 125-270MB) all the way up to 3,600MB. (The program did not provide a readout giving exact values; I was interpreting what a slider seemed to be saying.) So it did appear, indeed, that the 64-bit hardware and operating system were going to make most of my RAM available to my programs -- though Server also indicated making no more than about 3,450MB available to the virtual machine, because above that level there was the possibility that "Memory swapping may occur beyond this size." Having previously heard that WinXP (32-bit) could access less than about 2.8GB of RAM, I found a conversion calculator webpage and learned that this was equal to 2,867MB. So I told VMware Server to allocate 2,900MB to this virtual machine, leaving about 700MB for the underlying Ubuntu layer (not counting the overhead that had apparently eaten up the rest of the memory between that 3,600MB ceiling and my total of 4,096MB (i.e., 4GB) of installed RAM). Then I clicked on the Start option. Server showed me a black screen with a tabbed interface. This black screen pertained to the 2007-07-17 WinXP Pro tab, which was what I had called my virtual machine. There was also a tab for the opening screen in Server, which had given me options to Create a new virtual machine, Open a virtual machine, Edit host settings, or Switch to a different host. So I could use that tab to open another machine if I wanted; and I verified that I could also continue to open programs (e.g., Text Editor) from the Ubuntu menu at the top of the display. The black screen for the 2007-07-17 WinXP Pro virtual machine gave me a dialog asking if I wanted to change the floppy drive's path from Floppy Drive 0 (which I think is what WinXP called it) to /dev/fd0. Next, I got a warning that "the bridged Ethernet interface is down." When creating the virtual machine, Converter had shown me several options for my Ethernet connections, and had said that I had two such connections. I chose Bridging for one and another option (which I couldn't presently recall) for the other. It now seemed that Bridging was the inferior option. Meanwhile, Windows did begin to load, inside that formerly black screen in VMware Server. I also noticed an indication, on the status bar at the bottom of the screen, that "You do not have VMware Tools installed." WinXP gave me a notification that my hardware seemed to have changed significantly, and that I had three days within which to activate Windows. As I recalled, Microsoft would give you a couple of automatic reactivations for changed hardware, but would then require you to call in and obtain reactivation from a live person. So perhaps there would be some Microsoft-imposed limits on how frequently I would be creating and running new Windows virtual machines. I opted not to reactivate WinXP right now. The virtual bootup continued. Next, Windows told me to insert the CD, or browse to the location, containing WinXP Server Pack 2. It was looking for a folder named i386. I knew that, among the various i386 folders on my machine, this would be the one associated with the WinXP installation files, which resided on my drive D. While I was making notes of these things, the installation continued. I got notices, from the free version of the ZoneAlarm firewall that I had installed in WinXP, indicating that various programs that I had installed in Windows (e.g., Google Desktop, MSN Messenger) were trying to contact the internet. I also received notification that "Your system has no multiple-monitor support." So apparently I would have to enable that in Ubuntu before I could expect WinXP to use it, and presumably the dual monitor limitations of Ubuntu would also become WinXP's limitations. Returning to the location of the My Documents folder, I continued the process of pointing Server toward the E:\Current folder that I had designated, in TweakUI, as the location for My Documents. But Server did not see E: because, of course, E: was an NTFS partition. If I wanted the virtual machine to point to a partition used in WinXP, it seemed I would have to make sure it was a FAT32 partition. Alternately, in this case, I could relocate E:\Current to the one FAT32 partition that I did have on my system, or I could just tell Server to use some other folder, somewhere, for My Documents. But now I realized that this was not a correct analysis because the dialog box (right-click > Properties on the My Documents folder) was *not* showing the FAT32 drive. The drives it was showing were those that I had designated as part of the virtual machine when I created it in Converter. If I wanted to use E: for My Documents, or if I wanted to use F:\Cache for Internet Explorer's Temporary Internet Files folder, I would have to include those E: and F: partitions in the virtual machine. Apparently the fact that C and D were NTFS was irrelevant; Converter had already taken care of that. But now ... if I saved files in a folder on the virtual C or D, where would they be when I shut down Server? That question remained to be answered. For now, I designated a new TEMP folder on D as My Documents. WinXP continued giving me installation-style dialog boxes. Now I had the Found New Hardware Wizard, telling me that it was ready to help me install software for my Video Controller (VGA Compatible). I had not been getting that dialog in WinXP, where my video controller was already installed. Apparently what was happening, at this stage in the process, was that a complete Windows installation was adapting itself to what it considered new hardware, just as if I had taken a drive image from e.g., Norton Ghost or Drive Image 2002 and had installed it onto a new computer. I wondered if I would have to go through these same steps for each new computer where I installed the virtual machine, or if one pass would acquaint the virtual machine with itself so that it could then be transferred to other machines without difficulty. I tried the automatic installation option in the Found New Hardware wizard. After trying, it said, "Cannot Install This Hardware." So I clicked Back and tried again, this time using the EVGA driver CD that had come with my video card. I had not correctly attached the hard drive LED cable to my new motherboard, so I appreciated that Server was flashing red on a hard drive icon on its status bar, indicating that hard drive reads or writes were occurring. But the outcome was the same: "Cannot Install This Hardware." I recalled that I might have a more recent version of the driver on E, but since E was not part of the virtual machine and was NTFS, I couldn't move things around to make that update available right now. Now the system wanted to install the PCI Bus Master IDE Controller. This was mildly discouraging. If we were having to install the IDE controller, then I realized I had better settle in for what could be a long introductory setup process for this new virtual machine, with lots of the requisite, retarded WinXP requests to be reminded of where the i386 folder was, and with multiple reboots to complete the installation of the various pieces of hardware. At the first such reboot, I hustled to get the EVGA CD out of my CD drive, and reinsert the Super Grub Disk, before realizing that this would be only a virtual reboot. Rebooting the virtual machine took longer than in WinXP. Certainly the cursor was moving a lot more slowly. The cursor was trapped inside the virtual machine tab, but Server's status bar told me I could release it with Ctrl-Alt. I tried that and was now able to click on the options on Server's menu bar (File, Edit, View, Host, VM, Tabs, Help) and also on the buttons on its toolbar (Shut Down, Suspend, Start Up (greyed out), Restart Guest, Snapshot, Revert (greyed out), Full Screen, Quick Switch, Summary, Console). The View menu pick gave me a Full Screen option too, and I chose that. Now I had an unimpeded, full-screen view of what looked like a Windows bootup, complete with yet another reactivation dialog. And yes, inside this virtual machine, the cursor definitely was clunky. What I got, on reboot, was my Windows XP desktop, but at a resolution more like that which you would get in Safe Mode. I got a Low Disk Space warning for Drive D. To fix that, I tried to switch out of Full Screen mode, using the recommended Ctrl-Alt-Return key combination. That didn't work. Help! I was trapped in XP, and while I was screwing around with Ctrl-Alt-Return (or maybe because of that) it had rebooted its virtual self and was trying again to complete the virtual boot process. So I went through the various dialogs again. There were some problems: a WinXP notice indicating that some unspecified hardware (probably the display) had not installed properly, and a note that I had limited or no connectivity on my local network connection. The nVidia software seemed to be installed -- I could use it to try to adjust screen resolution -- but, as noted above, the driver was not. So I was limited in what I could do with the display. I was able to adjust the resolution to 1024x768, but not to 1280x1024. Trying the latter (which I was able to do in Control Panel, but which was not even an option in the nVidia software) gave me an Ubuntu error message and (finally) popped me out of full-screen mode back to the default Server mode. The error message said, "Unable to find an appropriate host video mode. Adding the guest mode to the 'display' subsection of the 'screen' section of your /etc/X11/XF86Config and restarting X is likely to help." For a minute there, I thought I might be locked in the same reboot cycle that I had experienced in WinXP, after I had installed Ubuntu and before I had used FIXMBR to make Windows happy with the bootloading process. I feared I might have to run FIXMBR inside this virtual machine somehow -- though I didn't see how, because this virtual machine did not give me the BIOS options that appeared when I would first power up the machine. It didn't seem that I could boot the WinXP installation CD and run FIXMBR from the Windows Recovery Console, all inside this virtual machine. Fortunately, it now appeared that this concern was unnecessary, because after a reboot or two, the system did settle down, and I could proceed to play within the virtual machine, starting with the display adjustments just mentioned. I didn't actually drop out of Server and try to figure out how to follow the X-related instructions just quoted, though. Instead, I focused on basic functionality. Could I use Server to run Word and other programs I would use frequently? I started with the mouse: could I make it run better? In Control Panel, I wasn't allowed to increase its speed from the lowest possible setting, and I got "Pointing device on Unknown Port" when I went into the mouse Devices tab. It seemed we had the wrong driver. But I'd had the right driver in WinXP; evidently Server was unable to make it work correctly inside Ubuntu. I wasn't sure if this was a problem with Server or just a matter of upgrading my mouse driver in Ubuntu, though I hadn't noticed any mouse problems in Ubuntu outside of this Server situation. I suspected that I might be getting the Low Disk Space error for D because, in the absence of my other hard drives, virtual WinXP had relocated my page file to D. But no: System Properties in Control Panel reported no page file on either C or D. But then, when I navigated to the root of D in Windows Explorer, I saw that there was indeed a pagefile. For performance purposes, it seemed that my next virtual machine should contain an additional partition, located on a physically distinct hard drive, so I could park the page file there -- though I wasn't quite sure if that would work as planned. Anyway, to make more space on D, I used the kludge approach of getting out of Server's full-screen mode by trying to set my resolution higher than 1024x768 in Control Panel; and now that I had access to Server's controls again, I went looking for a way to increase the space allowed to drive D. Interestingly, in the Host Settings option, I found an option to "Fit all virtual machine memory into reserved host RAM." I wondered if this would improve performance, so I tried it. But I got an error indicating that I didn't have permission to do that. So I was stuck with the default, "Allow some virtual machine memory to be swapped." I didn't see any way to increase the space available for D right now, so I went back into fullscreen mode to experiment with programs. Word started up just fine. It wasn't able to see any of my documents on E, so I tried creating a new one. Copying the same chunks of text over and over, I created a document that filled 1,429 pages, and then I ran a find-and-replace. Word did not die, though it did prove unable to number more than 32,768 footnotes (which I assumed was a limitation of Word, not of VMware). I also opened an Excel spreadsheet of 1,000 rows by 50 columns, each cell but one containing a formula. Word was a bit sluggish in this setup, but Excel seemed to do its calculations almost instantly. I was also able to open Access, Acrobat 8, IrfanView, AvaFind, and Cool Edit 2000. Opening times were slow. Acrobat, like WinXP, would give me only a few days of use before I had to reactivate. Internet Explorer would not open; instead, when I tried, I got Firefox. I was able to see my Hotmail account in Firefox; but when I tried reading a message, I got "The proxy server is refusing connections"; likewise, I was able to see the Google search page (my default), but I got that same message trying to do a search. So there was going to be some additional work to get my online connection functioning. I loaded Adobe Photoshop Elements, Adobe Premiere Elements, and Windows Movie Maker while still having the foregoing programs loaded. These last three were slow-loaders anyway, and they sure weren't setting any speed records now. I wanted to use MovieMaker to download some video from my camcorder, but I got an indication that "the required audio hardware cannot be found on your computer." Premiere Elements gave me a similar error message. I hadn't yet tried to access the video camera from within WinXP either, so I thought that might be a Windows issue rather than a VMware or Ubuntu issue. But I definitely had used the audio in Windows, so now I tried playing a WAV file. But IrfanView, which was my default WAV player, said "All wave devices that can play files in the current format are in use." I tried another WAV; same thing. No luck with an MP3 either, though no error message. I tried loading the Olympus Digital Wave Player program that had caused my real Windows XP installation to crash. I got an audio output device error there too. So I had to conclude that, even though virtual WinXP had not asked for an audio driver (as it had asked for a video driver) when it was familiarizing itself with its little world there inside VMware Server, it did in fact need one. I wasn't sure which of the foregoing problems were Server-specific and which were attributable more generally to Ubuntu. Possibly using Wine or some (other) emulator in conjunction with a determined effort to find drivers, tweak RAM, and so forth, would yield a significant performance improvement and would enable me to run most, if not all, of these programs. I had realized, for example, that there was a recent development by which Ubuntu could access NTFS drives. Having done enough of a preliminary test, I clicked Start > Shut Down; and after some delay, the machine rebooted into Windows. It was time to reach some conclusions. Conclusions In 1999, I tried my hand at Debian Linux, and reported the results on Freshmeat.net (which sent me two T-shirts for my trouble). The articles I wrote were entitled "Installation Tale of a Debian Newbie," "The Linux Newbie Installs Corel," and "The Linux Newbie Replies: WFM?" Rounding out the series, in January 2000, I wrote a piece entitled, "Is Linux for Crazies?" That last one, republished on this blog, offered this prediction for the progress of Linux:
Mainstreamers, I guarantee, will run like hell if you make them listen to Mao-versus-Trotsky debates between the devotees of Debian and the comrades of Caldera. In the first stage of operating system socialism, I know, there must be competition among corporate bodies, with each subscribing to the same overall philosophy and yet each seeking to twist the nascent state to its advantage. In the second stage, however, the Stalins will take over from the Lenins -- that is, the theoreticians will give way to thoroughgoing non-purists who will compromise with the Devil if that's what it takes to succeed.
Was that correct? To my knowledge, the answer, as for most predictions, is Partly. It seems to me that Ubuntu is succeeding partly because Canonical is motivated along the lines just suggested (with no negative implications intended regarding the Stalin illustration), in terms that do (and perhaps inevitably must) provoke objections from purists. I am more optimistic about Linux than I was in 2000, and I was pretty optimistic then. I felt it would take some time. I wouldn't have thought it would take seven years to reach the present point. Seven years seems like a long time -- although, in retrospect, I would have to do a little bit of recalling and digging to explain what significant changes occurred in another seven-year period, such as the one from 1987 to 1994. Some years from now, it will probably just seem like Linux went through a transitional period, here in the 2007 timeframe -- that it was transitioning from being a tool of hobbyists to being mainstream, but that of course it did make that transition and now (circa 2012, perhaps) the dominance of Linux may seem entirely natural. In the meantime, it seems to me that each version of Ubuntu is incorporating significant improvements over the preceding ones, for end-user purposes. My take on the experience described in this post is that Ubuntu still has, for me, some important limitations. Not tons of them, not like in 2000. I don't feel, now, that I have to learn programming in order to use Linux; we are much closer to the point at which the command line becomes a useful tool, as in DOS under Windows, without being an absolute necessity. At this writing, it seemed, I still needed to run Windows on an essentially standalone basis. I would retain the Ubuntu partitions I had installed, and could get to them with the Super Grub Disk; but ordinarily my machine would boot straight into Windows, and I would do my work there. In view of Ubuntu's rapid recent progress, and Canonical's rollout of new versions every six months, and considering how much other work I had to do, it seemed prudent, for me, to let the operating system issue rest for now, and to wait and see what further developments might come along in the next one or two releases of Ubuntu. At a certain point, too, I might find that I could afford a processor upgrade, or might have learned more about hardware limitations that had caused VMware to perform sluggishly. I did have the impression that VMware was determined to succeed, and I hoped that adjustments -- on their end, or on mine -- might make all the difference in the not-too-distant future.

2 comments:

SarahC

Hi!

You write great articles.

I wonder - have you ever had experience expanding a Win 2K disk using the "Expand" feature of VMWare 7.1?

The info I found online only shows Win 7 being used as the guest OS.

raywood

Sarah -- thanks for the compliment. Sorry to say, I have never used Win2000, so I can't help you there. Good luck ...