Start and connect to your VirtualBox VM with a simple script

The way I like to develop is to create specific virtual machines for my web development.

The chore is to start the machine, mount the file system and then open up your IDE. All a nuisance that takes time. So, I’ve taken to writing a simple Bash script that will do the grunt work for you. All you have to do is put in your settings, save it and run it!

This will mount the VM’s web folder onto your file system and let you know it’s connected. All you need to do is then start your IDE of choice! Continue reading Start and connect to your VirtualBox VM with a simple script

Access VirtualBox SSH and Web Server

One of the thing that differs VirtualBox from Microsoft’s Virtual PC is that VB puts guest on a subnet of the computer that you are working on. This means that it cannot be directly accessed from other computers on your network.

To enable access, you need to configure your computer to allow ports to be forwarded to the guest. Thankfully, this is quite straightforward with the VBoxManage tool, and Allister Sanchez covers it well here: Additions and SSH Access to a VirtualBox Guest.
I’m assuming that your Vitual Machine is called MyVBoxSystem. Replace this with the name of your VM.

To enable SSH:

On the host computer, run the following commands:

<code>VBoxManage setextradata MyVBoxSystem "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 22
VBoxManage setextradata </code><code>MyVBoxSystem</code><code> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata </code><code>MyVBoxSystem</code><code> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
</code>

This is essentially telling VirtualBox to map any access on port 22 (the host port) to 22 on the guest. On a Windows system, this is fine as you are unlikely to be running an ssh server. If you are though, just change the HostPort parameter to a port that you know is free.

To enable HTTP:

<code>VBoxManage setextradata </code><code>MyVBoxSystem</code><code> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/HostPort" 80
VBoxManage setextradata </code><code>MyVBoxSystem</code><code> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/GuestPort" 80
VBoxManage setextradata </code><code>MyVBoxSystem</code><code> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/http/Protocol" TCP</code>

Once again, we’re passing TCP ports forward. If you already have a web server installed such as Apache or IIS, then you will probably need to change the HostPort to something like 8080.

Make sure that your VM isn’t running when you run these commands. To check that the settings are saved, you can run the following command:

<code>VBoxManage getextradata MyVBoxSystem enumerate</code>

Alternatively, open up the VM .xml file which is found in .VirtualBox/Machines/MyVBoxSystem/MyVBoxSystem.xml. The settings are found in the ExtraData node:

&lt;ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" value="8080"/&gt;
&lt;ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" value="80"/&gt;
&lt;ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" value="TCP"/&gt;
&lt;ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" value="222"/&gt;
&lt;ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" value="22"/&gt;
&lt;ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" value="TCP"/&gt;

Installing Ubuntu 8.04 server on VirtualBox

I had a little trouble running Ubuntu server on VirtualBox today.

Thankfully the answer was easily found at Installing Ubuntu 8.04 server on VirtualBox « {S.A.Z.W.Q.A}.

All you need to do to get Ubuntu server firing up is to open the settings screen for your virtual machine, and then tick the Enable PAE/NX box.

Click OK and fire it up! No problem.

USB Working in Virtual 2.0.4 on Ubuntu Ibex Intrepid 8.10

After upgrading to Ibex, I found that I couldn’t sync my Palm with my Windows XP guest.

After trudging through different websites with contradictory solutions I stumbled on this, which works a charm:

Open the terminal and type
vbox /etc/group

You should end up with something like

vboxusers:x:124:john

Make a note of the group ID (124 in this case). Now run
sudo gedit /etc/init.d/mountkernfs.sh

Find this section

#
# Mount proc filesystem on /proc
#
domount proc "" /proc proc -onodev,noexec,nosuid

Below this, copy the following code:

#
#Mount USB file system
#
domount usbfs "" /proc/bus/usb usbdevfs -onoexec,nosuid,nodev,devgid=XXX,devmode=664

Replace XXX with the group ID from above.

Save and quit. Reboot the system. The next time you run VirtualBox, you should be able to see the USB devices and use them.

Palm realises that Outlook 2007 is out!

I was hopping around the Palm site looking for some Outlook 2007 conduits for my Tungsten T3 today. I realised that I haven’t actually synchronized my Palm in about a month!

I was lucky to find Outlook 2007 Conduits on the Palm site, only after following a link within the Outlook 2003 conduits. Oddly, Palm haven’t made any effort to link to this on the main support page.

So, I can finally see if the whole Ubuntu / Virtualbox / XP / Palm Desktop / Exchange configuration is giong to work for me. This is really the big thing for me at the moment. Until there is some vast improvement in Evolution, I can’t see myself using it. The whole process was just too unreliable. And I am not keen to pay for 3rd party syncronisation software.

Anyway, if you are using a Palm device and have upgraded to Office 2007, go and download the new conduits!

VitualBox goes Open Source

After cursing Linux for not seeming to have a decent open source virtual machine platform, I’ve found out that an application called VirtualBox is now open source.

Seeing as I’ve been quite comfortable using Virtual PC 2007 up to now, I thought that it would be nice to see if I can get Windows XP running nicely under Ubuntu.

You never know, this might mean my migration to Linux after all…