Preparing VirtualBox images
Start with a fresh Ubuntu 13.04 image, call the main user "browser".
apt-get install localepurge zerofree # I think we don't need these packages... saves around 300MB apt-get install alpine acpi-tools gpm apt-get install libgomp1 # for rnaplot # which package contains the psxy tool? apt-get remove python3* linux-headers* aptitude man-db perl perl-modules geoip-database language-pack-gnome-en-base manpages ppp acpi iso-codes console-setup dmidecode eject ethtool initramfs-tools pciutils usbutils command-not-found alpine-doc python3.3-minimal apparmor # wanna remove more? show packages by size: dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n apt-get install apache2 mysql-server mysql-client # consolkit keeps / open which is annoying for zerofill, acpi-tools doesn't really need I hope sudo dpkg -r --force-depends consolekit
Now install the genome browser:
wget http://hgwdev.soe.ucsc.edu/~max/gbInstall/ubuntu.sh sudo bash source ubuntu.sh
We need the guest extensions for shared folders:
on the host:
VBoxManage storageattach "browserbox" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "/cluster/home/qateam/VirtualBox VMs/VBoxGuestAdditions_4.3.8.iso"
on the guest:
apt-get install linux-headers-3.13.0-24-generic build-essentials dkms # replace 3.13.0-generic with your kernel version, show with uname -a mount -t iso9660 -o ro /dev/cdrom /mnt cd /mnt ./VBoxLinuxAdditions.run modinfo vboxguest # check if they work # now save some space, remove the kernel module build system sudo apt-get remove build-essential linux-headers* apt-get clean apt-get autoremove # this should get rid of gcc, etc
It's nice to have shared folders:
sudo addgroup vboxsf sudo adduser browser vboxsf sudo wget http://hgwdev.soe.ucsc.edu/~max/gbInstall/rc.local -O /etc/rc.local
Once you're finished with everything ubuntu related, you can free 120 MB:
sudo wget http://hgwdev.soe.ucsc.edu/~max/browserbox/cleanVm chmod a+x cleanVm sudo cleanVm
Now zero the disk image:
sudo wget http://hgwdev.soe.ucsc.edu/~max/browserbox/zeroIt sudo chomod a+x zeroIt sudo ./zeroIt
To show the IP address on startup, only necessary in bridged mode:
sudo wget http://hgwdev.soe.ucsc.edu/~max/gbInstall/show-ip-address -O /etc/network/if-up.d/show-ip-address sudo chmod a+x /etc/network/if-up.d/show-ip-address
Leave VirtualBox, shutdown the VM, go to a command line on the host, find the .VDI or VMDK file(s) and compact it:
vboxmanage modifyhd –compact browserboxBoot.vdi vboxmanage modifyhd –compact browserboxData.vdi
- see [Shrink the disk]
Have a quick look into the .vbox file and make sure that it doesn't list any iso images or other disk images that you attached once to the disk but don't need anymore. They trigger error messages on new host machines.
If you see one, get its UUID first:
VBoxManage list hdds VBoxManage list dvd
The remove it:
VBoxManage closemedium disk <paste uuid here>
or
VBoxManage closemedium dvd <paste uuid here>
Most of the UUID/zipping business is now automated with a script, in the qa user:
boxRelease.sh