Dan Newcome, blog

I'm bringing cyber back

Archive for February 2009

Moving VirtualBox Machines from Linux to Windows

with 3 comments

As I’ve noted previously here on the blog, I use VirtualBox for my Windows development machines.  I’m going to be trying Windows Vista out for a bit, since it shipped on my new laptop.  However I’m going to keep my same virtual machines for dev until I get things situated natively.  Moving the VMWare images went as expected, but I was surprised that I couldn’t just copy my VirtualBox images over easily.

There is a good article on using the VirtualBox tools to clone disk images here but unfortunately you cannot seem to move the actual machine configuration.  I really wanted to keep the same machine configs rather than create them anew.

The following is completely unsupported by VirtualBox, but it worked fine for me. YMMV as they say.

First, take a look at the main VirtualBox config file on your Linux machine.  The file is ~/.VirtualBox/VirtualBox.xml.  We need to get the unique IDs of the hard disk and the machine that we want to move.  We could get this information from the machine config itself, but it is easier to copy and paste from the global config, since the whole line can be copied into the new VirtualBox.xml file on the target Windows machine.

<HardDisk uuid=”{96d326d8-05fb-4cfd-b369-38f36563f4fa}” location=”/mnt/ultrabay/VMs/virtualbox/VDI/server2003-1.vdi” format=”VDI” type=”Normal”/>


<MachineEntry uuid=”{fedffbeb-b64a-4b8a-a2a1-9e7b34a8afa9}” src=”/mnt/ultrabay/VMs/virtualbox/Machines/server2003/server2003.xml”/>

Copy the bolded sections into the C:\Users\<username>\.VirtualBox\VirtualBox.xml file on the target Windows machine, and adjust the paths to match the new locations of the virtual machine xml definition file and the .vdi disk image files.

Now, in the configuration file for the virtual machine that is to be moved, we will have to modify several things to get the machine to load correctly.

Change the VirtualBox version:

<VirtualBox xmlns=”http://www.innotek.de/VirtualBox-settings&#8221; version=”1.5-linux”>


<VirtualBox xmlns=”http://www.innotek.de/VirtualBox-settings&#8221; version=”1.6-windows”>

Change paths for things like shared folders:

<SharedFolder name=”temp” hostPath=”/tmp” writable=”true”/>


<SharedFolder name=”temp” hostPath=”C:\temp” writable=”true”/>

There may be other places to change. In my case this was the only thing apart from disk image locations.

Remove any mounted cdrom images:

<DVDDrive passthrough=”false”>
<!–<Image uuid=”{7aac8916-dfe3-4836-b1c0-b92212437142}”/>–>

Here I just commented out my image, perhaps I will add it back once the machine is up and running.

Once this has been done, you should be able to start the VirtualBox GUI interface and the machine should be listed in the inventory, ready to run.

Written by newcome

February 28, 2009 at 5:22 pm

Posted in Uncategorized

The Value of Being an Angel’s Advocate

leave a comment »

Today I had a discussion with a colleague about a very ambitious business plan that he was considering.  He described a brutal multi-million dollar up-front startup cost and a very short runway to launch, along with a long sales cycle for the product.  When I hear this kind of swing-for-the-fences business plan, I always think to myself “how can this be broken down into interim phases that could work along the way”, since I am one of those guys that likes to work off of the feedback of getting something immediate, if smaller-scale, accomplished.  I prodded a little by asking if the runway could be lengthened or if it would really take so much money up front to get started, and was met with resolute explanations about why this particular plan could never work on a smaller scale.

While listening to the response, I realized that we are trained in many ways to play the devil’s advocate.  Especially as engineers, we are trained to find holes in theories and root up potential problems with proposed solutions.  My colleague was playing devil’s advocate to his own ideas, and I begain almost instinctively to take the opposite side.  What if we ignore certain constraints that we assume to be valid?  How would the plan change if we didn’t have to worrry about the sales cycle?  What if there was no sales cycle?  Optimistically laying waste to these assumptions really brought out different elements in the discussion.

I recall reading somewhere that it often took engineers at Google some time working there to un-learn mental models of computational feasibility, since outside of Google many things would be nearly impossible to do.  At Google it was the norm.  I suppose that playing the angel’s advocate is really about questioning constraints and assumptions to the point of ignoring them for argument’s sake.

Written by newcome

February 24, 2009 at 4:35 pm

Posted in Uncategorized

Installing 4GB Kingston RAM in the Thinkpad X200

with 3 comments

Update: I have since successfully updated the firmware to v3.11 — see note below

Update2: I have since installed 8GB of ram in this machine using the v3.11 firmware — see below

I ordered my Thinkpad x200 with the minium amount of RAM possible, fully intending to upgrade it to a full 4GB of third party RAM immediately on receipt.  It ended up taking two months to for Lenovo to fill the order, so I had that RAM sitting and waiting to go for a full month before I actually got the laptop.  So naturally the second thing I did (after just booting it to make sure it worked) was to pop in the RAM.

First boot after the new RAM was in and I couldn’t get past the Intel AMT firmware initialization in the POST sequence.  Usually when you have bad RAM or RAM that is not fully seated, you either get beeps from the system, or you can’t even get the BIOS screen.  I was able to see all 4GB reported in the BIOS setup screen, so I figured `what gives’.  I put the factory 1GB stick back in and it booted just fine.  I’m getting kind of worried at this point that I’m stuck with 4GB of RAM that I can’t use and can’t return, since it has been a month already since I bought it.

A little Googling turned up this post about some others having issues with Kingston ram on the x200.  The consensus on the Lenovo forums was that the latest BIOS (2.02 at the time of this issue) had problems supporting third party RAM.  So I went here and downloaded the 1.10 BIOS updater tool that runs under Windows.  I already had Windows installed from the factory, and the x200 doesn’t have a CDROM drive, so that was the most convenient thing.  The update went successfully, and my RAM worked afterwards.  I just don’t feel that great about not being able to use the latest firmware for a brand new laptop.  Hopefully they address this in later firmware revisions.


After posting this I have updated to firmware version 3.11 for an unrelated reason (updated monitor resolution support) but I can verify that the memory issue has been fixed. It appears to have been addressed in version 3.07. In the changelog there is an entry that reads:

Fixed an issue that set wrong memory type.

This is the only memory-related thing that I could find in the change logs, so I’m assuming that this is the fix that addresses it.

The changelog is here, and the download page is here.

I ordered this ram on Newegg and it worked fine. Lenovo quotes 4GB as the max ram for the x200 but this seems to be just the max available from them. The Santa Rosa chipset supports 8GB and it seems that the Lenovo firmware doesn’t prevent the laptop from using the full amount.

Here is a screenshot from my Windows 7 install:

Written by newcome

February 19, 2009 at 7:47 pm

Posted in Uncategorized

Installing KDE 4.2 on Ubuntu 8.10

leave a comment »

The KDE team announced the general availability of KDE 4.2 on Tuesday.  The folks at Kubuntu were kind enough to have been hosting apt repositories of the beta releases all along, and they have followed by offering a binary release distribution as well.

To install KDE from the Kubuntu repository

Open sources.list in a text editor:

$ sudo vi /etc/apt/sources.list

Add the following line to sources.list to add the new repository

$ deb http://ppa.launchpad.net/kubuntu-experimental/ubuntu intrepid main

Update the apt repository cache

$ sudo apt-get update

Then it is just a matter of running apt-get to install everything

$ sudo apt-get install kde

I got hung up on the last step, since I didn’t know that simply installing `kde’ would pick up version 4.2 once the new repo had been added to sources.list.

Written by newcome

February 19, 2009 at 5:08 pm

Posted in Uncategorized