Mar 14 2010

Virtualising my Laptop

Category: Hardware,Linux,WindowsTeknovis @ 14:41

I want to buy a new laptop for myself. I need it! My old one is too big and heavy, the screen is losing its contrast, and the battery lasts for approximately 30 seconds :(

In the past I tended to buy high-end laptops on the basis that they would last for longer. This worked to a certain extent, but this time I want to try a new approach. I am going to buy a relatively low-end laptop, but replace it more frequently. The disadvantage of this approach is that it is very time consuming to setup a new computer.

Last year I started experimenting with using Ubuntu within VMware as my main desktop operating system on and old computer. I was very impressed with its speed and stability. So I have decided that I am going to virtualise my entire desktop on the new laptop. The advantages of this approach are:

  • Moving my computer from one piece of hardware to another becomes trivial. This is useful for when I want to upgrade my laptop in the future. It also means that I can put my computer onto an external hard disk.
  • Backing-up my computer also becomes trivial. I am thinking about backing it up automatically every night!
  • Snapshots can be taken before I install any software on a test basis. I can then roll-back my computer if I do not like the new software.
  • It provides my computer with a lot of extra security from network based attacks.

My overall requirements for my new laptop are that it supports three different virtual machines:

  • I want to start using the Ubuntu based virtual machine as my main computer. I am waiting for Lucid Lynx 10.4 LTS.
  • I am currently using Windows 2000 as main my operating system. I think it is great ;)
  • Unfortunately, I have one program that I need to use regularly, and this program requires Windows XP (or later) :(

I will use NAT to network all three virtual machines most of the time. However, sometimes I will need to use the Windows 2000 virtual machine in bridged mode so that it can be a first class member of my domain.

Therefore, the overall architecture of what I am trying to achieve should look like this:

Laptop Virtual Architecture

Laptop Virtual Architecture

Now that I know what I want to achieve, I just need to find the best way to realise this!

Hardware

I am currently considering buying either a Dell Inspiron 1545Inspiron 15 Intel Core i, or a Studio 15. I am a Dell fan, and a 15″ screen is the best size for me. I will get 4GB of RAM, and either a 350GB or a 500GB hard disk.

I will get one of the cheapest processors available. I am currently considering either the Intel Pentium Dual-Core Processor T4400 or the Intel Core i3-330M. I will probably choose the latter, because it seems to have better support for virtualisation because it supports VT-x according to its specification. In practice I do not know if this will provide a noticeable benefit.

In terms of form-factor, I dislike the idea of a number keypad on a laptop. Therefore, I will probably go for a Studio 15.

I am going to have to buy an external card reader, because none of these laptops support Compact Flash cards :( My cameras all use Compact Flash :o

I wonder how the host operating systems sees the integrated web camera. I hope that it appears as a standard USB device, so that it can easily be shared with the virtual machines.

Host Operating System

My requirements for the host operating system are:

  • It must be very secure, because I will use my laptop in a lot of public networks.
  • It must be easy to connect to file servers. This is important, because I will need to back-up my virtual machines.
  • It must have a software based firewall that is very easy to configure precisely.

I think that the clear winner here is Ubuntu with Firestarter. If my Linux skills were better I would use Debian instead :o

The only question I have is whether I should use the 32bit or the 64bit version of Ubuntu?

Virtual Machine Software

The two options that I am considering for this are VMware Workstation and VirtualBox. My main requirements are that the virtual machine software is secure, and that it supports VT-x. I think that both do!

However, there are still some issues that I have not resolved:

  • Should I use the 32bit version or the 64bit version?
  • Which offers better performance?
  • Will they both support my hardware equally well?
  • Is there a risk of becoming locked into one of these products?
  • How is Hyper-threading supported? Presumably, the virtual machine software would think that it has four cores to distribute to the virtual machines. However, in reality it would only have two. This makes me think that I should disable Hyper-threading.
  • Does the virtual machine file format change with each new release of the virtual machine software?

Cost is not really an issue here.

Guest Operating Systems

As I wrote above, I will use Ubuntu, Windows 2000, and Windows XP on my virtual machines.

My questions relating to the guest operating systems are:

  • Should I choose the 32bit or the 64bit version of Ubuntu?
  • Will the OEM version of Windows XP that I got with a previous Dell computer install into a virtual machine without lots of registration issues?

If anybody has any opinions, experience, advice, or answers relating to any of this then I would love to read them!

Thanks!

Tags: , , , , , , , , ,