Creating a minimal Ubuntu Server VM
June 6, 2011
The other day I documented a kickstart process for creating base CentOS VM images. I tried but failed to get ubuntu installed using kickstart. Rather than learn the normal ubuntu process I figured I’d install manually. Beyond that, the approach is basically the same:
- Download ubuntu server, I chose the 64-bit LTS iso (10.04).
- create new empty VM called
vanilla-ubuntu. - Resize the disk image to 10GB.
- set RAM to 256MB.
- disable just about all options including audio support, usb support, printer support, file sharing, etc.
- set to NAT networking.
- attach ubuntu iso to cdrom drive.
- Accept all installer defaults, but select OpenSSH server as additional system to install
- Log in as created user
- run
sudo passwd rootto set the root password sudo apt-get update && sudo apt-get -y dist-upgrade- to work around this bug,
sudo rm /etc/motd.tail sudo shutdown -h now.- open the settings pane, open the hard disk panel, and select “clean up disk”.
- disconnect and remove the floppy drive. Disconnect the DVD drive.
- (optional), open the directory containing the VM location in the terminal and
mv *.vmwarevm/* . && rm -r *.vmwarevm. When you next open the VM (you will need to use File > Open), select “I moved it”. - Make a backup copy of the virtual machine files, this is your clean VMWare-independent base VM.
- Start the virtual machine.
- in the Fusion menu, select Virtual Machine > Install VMWare tools, and install the tools:
mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom cd /tmp tar zxf /mnt/cdrom/VMwareTools*.tar.gz ./vmware-install.pl --default cd rm -Rf /tmp/vmware-tools-distrib
- Shut down the virtual machine
- Make a backup copy of the virtual machine files, this is your clean VMWare-ready base VM.
One thing that’s easy to notice is how lightning fast ubuntu starts up. The other thing to notice is just how old CentOS / RHEL 5 really is, and IMNSHO how overdue RHEL 6 was (and CentOS 6 is):
| Ubuntu 10.04 LTS | CentOS 5.6 |
|---|---|
# uname -r 2.6.32-31-server # python -V Python 2.6.5 # perl -v This is perl, v5.10.1 ... # apt-cache show ruby1.9.1 | grep Version Version: 1.9.1.378-1 |
# uname -r 2.6.18-238.9.1.el5 # python -V Python 2.4.3 # perl -v This is perl, v5.8.8 ... # yum info ruby.x86_64 | grep Version Version : 1.8.5 |
Advertisement
One Comment
Comments are closed.
Hey Leo,
I’m doing something similar with VirtualBox and Debian at the moment.
First off, be wary of duplicate mac addresses on client import (http://www.virtualbox.org/ticket/9074)
Next, if using DHCP you’ll need to remove the /etc/udev/rules.d/70-persistent-net.rules files from the base image (it’ll sort itself out on first boot, if it’s there then the original machines mac address is left against eth0).