Mobile USB computing on the cheap (part II)

An earlier post here pointed out examples of companies commercializing mobile USB computing, which promises to roam the entire computing environment, applications, data, settings and all, on a portable USB drive ready for work anywhere. Each one is predicated on use of special software on the USB device and sometimes custom/versions of apps tweaked for roaming. In this second installment, we’ll discuss getting 90% of that functionality with freely available software and zero modifications to apps for roaming.

Key ingredient is virtualization. That term is ambiguous because VT can exist at any level, but in this case we are referring to machine-level virtualization a la VMware, Virtual PC and Xen. These systems create the appearance of multiple, completely independent PCs (called “guests”) on top of a single computer (called the “host”) This has been a very active field in recent years, with lion’s share of commercial R&D efforts focused on server consolidation in the enterprise. Because managed IT environment costs are often directly related to number of physical servers, having one beefy server run multiple virtual machines to replace a handful of dedicated servers translates into directly measurable savings. But virtualization has broad implications and mobility is an obvious scenario. Because a virtual machine is represented by an ordinary file, no different than a Word document or a photograph (albeit a very large one), roaming this file amounts to roaming the computer. Any machine with the compatible VMM can run the virtual machine, which contains all the applications and data the user needs.

As for implementing this in practice:

  1. Grab one of the free virtualization solutions. This author recommends Virtual PC for consumer scenarios, although VMware‘s excellent VMware Player is a second-best, limited by the fact that it can not create new machines. (VMware Server and Virtual Server R2 are also free, but they are more aimed at server/enterprise scenarios.)
  2. Create a new virtual hard disk, type “dynamically expanding” default size is generally sufficient. Use the mobile drive for storing this file.
  3. Create a new virtual machine, also saved on the mobile drive and attach the virtual disk image created in step #2.
  4. Boot the VM and install a new operating system from CD or ISO image. This is the tricky step becuase depending on the conditions of purchase, the new OS may require an additional license. If the idea of worrying about OS licensing and activation frustrates you, there is always a great selection of open source distributions such as Ubuntu variants.
  5. Install virtual machine additions. This allows seamless integration of mouse and keyboard between guest/host.
  6. Install applications in the VM, configure settings as you would on any PC and copy over data. (See earlier point about licensing.)

The mobile environment is ready. Any other PC running Virtual PC– or for that matter VMware Player, which has the impressive feature to import VPC images– can recreate the machine. Since these are both free downloads, that is not setting a very high bar. As backup option, the installers for VPC and VMware Player can be carried around the USB drive as well, just in case. VPC allows working with the machine in full-screen mode where the guest takes up full screen, creating the illusion of dedicated PC. One can even “hibernate” the machine by saving its state on the USB drive on one PC and restoring from saved state on a different PC.

There are a number of limitations to this approach, some of which apply to any roaming solution. The final post in the series will cover these challenges.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s