History
To date I have always used a random set of computers, none of them particularly powerful by todays standards. Toggling between Windows and Linux has been painful and quite a lot of work. I needed something that would be a lot more flexible and manageable.
The New Environment
I considered all major platforms from the point of view of development, testing , my own runtime preference and of course to run my life. I wanted one machine with an occational second. Tempted though I was to the Mac I could not figure an acceptable configuration so the Mac will be an occational second machine.This is the plan, and it may change as I configure and test on the real hardware. In principal it all works as tried on my existing dual boot machine.

Essentially Linux is the master system and the one I expect to spend most of my time in. It is also the file server (in effect) because all common files are hosted on the Ext3 shared partition. It is also my runtime environment of choice for all things radio.
The physical machine I expect to keep pretty clean. It will have the runtime for the radio's and anything else that needs a real machine to run on. The radio runtime will of course be on both OS private disks appropriate to the OS. I have gone for Vista as the real OS because, well, it has to work on Vista. I am prepared to back off to XP and run Vista as a guest if it comes to it.
The shared disk is part of the Linux filesystem (one 500GB and one backup) but is directly accessed by Vista using the Ext2fsd driver. This is pretty essential to get good VM performance on the Windows side. This drive is easily backed up because it is a lot of quite large files plus the SVN and dev tree. It will also hold my life. I'm nervous of data burried in VM's.
The VM's are where most of the work goes on. This gives me real flexibility. I can develop in both Windows and Linux regardless of the OS I'm booted into. I will probably stick with XP as the development environment for now. I can also run my life with a Ubuntu VM and XP for the few programs I can't do without. The real advantage of virtualizing all this is that I can change stuff without risk. Want to try a new distribution, want to upgrade some libraries with possible dire consequences, just checkpoint the VM and roll back if it causess grief. Want to test an install, just clone an empty base VM and do a clean install, scrub it when finished. I'm hopeful this will give me a big productivity boost
Progress
I'm documenting this because if I ever need to go this route again it will be very useful. It might also be useful to someone else.
The machine came configured with both Vista Ultimate and Ubuntu 7.07 dual boot, one shared 320 GB drive split down the middle giving each real OS 160 GB of main drive. Two further 500 GB drives formatted EXT3. These drives were mounted as /data and /backup in Ubuntu fstab.
If you are of a squeemish nature don't read on. Remember I count myself as a beginner on both Linux and Vista so any shouts of 'I knew that!!' will be ignored.
- First up - my usual problem with Ubuntu , the resolution was wrong. The monitor is 1680x1050 but I was stuck with 1024x768. I've been stuck here severl times. After managing to stop X loading a few times I did the sensible thing and googled for my monitor to find the actual refresh rates, put these into xorg.conf and changed all the resolution lists to have 1680x1050 and to my amazement it actually booted into the right resolution.
- Next - where are my drives in Vista. The plan was to make the shared 500 GB drives accessible from both OS's. Obviously they are part of the Linux file system so that side should not be a problem... or was it. Anyway initially the task was to map them in Windows using one of the ext2 file system drivers available. These drivers are EX2FSD [http://sourceforge.net/projects/ext2fsd] and Ext2IFS [http://www.fs-driver.org/]. I had tried ExtFSD on XP with good results. To cut a long story short I could not get EX2FSD to work on Vista, even by turning off driver signing checks. I eventually found this on a Ubuntu forum [http://www.go2linux.org/accessing-linux-drive-ext-with-vista]. The answer was simple, set it into XP compatibility mode (right click the file BEFORE installing) and Ext2IFS gave me two mapped drives to my data and backup.
- Next - where are my drives in Ubuntu. Now anybody who knows his Linux would have got here a lot quicker. When they built my machine they changed fstab to mount the volumes. However, they did not appear on the desktop and I forgot about fstab for a while. Once I figured where they were [/data and /backup] the fun began. Sure I could read and write them - provided I was root . How to mount these disks so that 'bob' could write them. I jumped through many hoops and never achieved the right level of access at the mount point. I couldn't find a startup file that would run at the correct time and even a startup task didn't do the right things. Sure I could mount them locally but the permisions were never right. I gave up and just created directories under /data and changed the permissions to make 'bob' owner. I don't think this is the right way but no other way worked transparently. Lots of other people with this same kind of issue. Anyway, I'm happy in works well enough.
- Challenge #4 - copy some files from various machines to the /data drive. Simple enough, a mass of music and photos from my old dual boot. This was an XP to Ubuntu transfer and no problem whatsoever. Then the fun started. I wanted to copy from my XP laptop which is normally on a domain. I nearly went mad trying to make either Linux or Vista see this machine. Linux could see it and the share but I couldn't browse the content. Vista just refused to see it at all. I'm not sure why but something was telling me Samba might be required even though I got to my Workgroup XP no issues. Samba installed and I could copy files. How tragic I had to use Linux because Vista was unable to see one of it's own family. I have since googled and found [http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1323486&SiteID=17] so I'm not alone. I will try these tips when I get time.
- Challenge #5 - install vmware server on both systems and create a Ubuntu VM to hold my life stuff. Actually, this was straight forward if rather more complex on Ubuntu. This writeup [http://www.howtoforge.com/ubuntu_feisty_fawn_vmware_server_howto] works perfectly. I downloaded a 7.1 release candidate and installed it on a VM. It works very fast on Ubuntu host and full screen it's hard to tell you are in a VM (of course quad core and lots of memory help). Vmware server installed fine on Vista and I could run the VM which was saved in /data/virtual machines/.... So I have my life VM with my email etc set up which can be run from both OS's. It's a good start. I have to say at this point the performance of the VM under Vista was sometimes slow to load. This may influence how I do my development. One little issue with the VM's to be resolved is that each time it's run from the other OS from the last OS it thinks it's been moved or copied. I think a clone with shared virtual disk might solve this.
- Next - Create my development VM's, one XP and one Ubuntu. XP because I didn't want hassle with development tools. At this point I fell down a slight hole. The only XP CD's I had were OEM's and even my laptop was OEM. These are locked to the motherboard by the key. It's not possible to install them even on a VM on the same machine, let alone a different machine. Anyway, that little issue was resolved. These installs were no problem. VMWare Tools also no problem, good writeups on the web luckily. I was left with two issues.
- I could not get 1650x1050 resolution in XP although I could in Ubuntu. This seems to be a known issue and the solution was here. http://www.lynchconsulting.com.au/blog/index.cfm/2007/7/3/HOWTO-Add-1680x1050-resolution-to-Windows-VMware-Server-clients
- Sound was not working in the VM. I need this for dev testing although I wouldn't try to run for real with it. The solution was simple, edit the VM and press add and add a sound device. Next boot I had sound in the VM.
- Next up I set up SVN on the Ubuntu host using HTTP access under Apache as I though that gives me easy access from the VM's without having to map drives. Again good writeups on the web. Fairly painless. Installed Tortoise for XP and just used the command line in Ubuntu. Created a repository and added all my code, carefully cleaned up. Checked out the code in both dev VM's.
- Now, and I should have done this earlier decided to upgrade all 3 Ubuntu systems, one real and two VM's. The real system was 7.07 and needed a full upgrade to 7.1 which took ages on-line. It trashed my VMWare Server install. It took several attempts to re-install before I realized it was a different patch file for 7.1, then all was well. Second issue was I lost my two drives again, I'm getting careless. Turns out although I said don't mount in 7.07 it did anyway but in 7.1 they seem to have fixed something and it didn't mount them. What I got was two physical disks appearing in the file system and a double click mounted them. I guess this is how it is supposed to be. Incidentally I'm now editing this in my XP VM running on Ubuntu full screen and it's impossible to tell it's a VM.
This is just about the end of the story. I still have to install my FA-66 on Vista and Ubuntu and I'm not sure if that will appear as a sound device in my VM's. Most dev tools are installed in XP so I need to recompile everything and make sure it still works in the XP VM and hopefully I can then make a distro to put on Vista and see how that copes. Then I think it's on to Ubuntu as the main dev system .