Saturday, January 11, 2014

Fedora 20 on Virtualbox

I have a love hate relationship with my Mac.  It is a great machine, but OSX is kinda clunky in some respects.

One way to alleviate the pain is to run Linux in a virtual machine.  My favourite most hated Linux is Fedora.  It is somewhat bleeding edge, so sometimes it is good and sometimes it is badly broken and fixing it is half the fun.

So, if you also need a Linux fix, here is a brief Fedora 20 how to guide.

Make a VM

On a Mac, forget about 2D or 3D acceleration in a VM, so any graphics is going to be sloooow.  This applies to VMware, Parallels and Virtualbox, so you can just as well use the free one and you have to use a light desktop system, since any fancy windowing features are going to be a drag.

Download Fedora 20 LXDE spin here:
  • Make a VM with 3GB RAM and 20GB HDD and enable all four Processor cores, to get some speed in the VM.
  • Select the ISO file in the Settings, Storage, CDROM property
  • Do not use LVM - keep it simple
  • Btrfs is probably better
  • Always encrypt your file systems!
Once done, shut down and unmount all CDs under Settings, Storage, CDROM

Finally, reboot.

Development Tools

After the reboot, open a terminal and su - to root.

Install the compiler and headers so that you can develop and compile programs:
# yum group list

The group names are forever changing, so verify the following with the previous:
# yum groupinstall “Development Tools” “C Development Tools and Libraries” -y
# yum install "kernel-devel" -y

Also consider adding the wizards  "system-config-users" and "system-config-services".

Go and get some coffee or tea…

Update the System

A brand new system, is already out of date...
# yum update -y

Go and get a malt beverage…

Then Reboot the virtual machine before attempting to install the Guest Additions.

Guest Additions

Now go to Devices and select “Install Guest Additions”.  This will place some VBOX... thingy on the desktop.  Double click this thingy and it will be mounted under /run/media/yourusername/VBOX

Run the Linux script called to install the guest additions.

Now Reboot again, to make it all take effect.

The display resizing and mouse will now work a whole lot better and you can copy/paste and mount local disk directories on the host with Devices, Shared Folders and Settings.  It is best not to store any data inside the VM - keep data on the host.

With LXDE, go to Preferences, Openbox Configuration Manager and unselect Update Window Contents While Resizing.  This will allow windows to be dragged about smoothly despite the lack of 2D accelerationThe whole GUI will then be quite snappy.

Disable Some Useless Features

Disable the screensaver and power management, Bluetooth, Avahi and Smart daemons, since these don’t make sense in a VM in my use scenario.  Then enable bidirectional copy/paste and drag/drop in the Devices menu.

Reboot again and you should now have a nice and snappy F20 virtual machine.

Install Autoten and Multi-Media Libraries and CODECs 

Get the little script Autoten here:

Install all the music, video and graphics related things.

Note that the Autoten Zenity GUI is a little messed up in F20, but it still works, just be patient with it.

Install Useful Utilities

I always install the following utilities to help me at the office with pesky PDF and other documents:
# yum install xournal pdfshuffler pdfeditor gimp libreoffice xsane

Finally, I install an online radio system, so I can listen to my favourite European radio stations and make recordings to play in my car, since Abu Dhabi Classic gets rather trying after a few years:
# yum install streamtuner

Host File Sharing

Go to Users and Groups (the system-config-users wizard) and add yourself to the group vboxsf, so that you can access shared directories on the host.


At this point, consider using either the Virtualbox Clone function or a tar archive to save a copy of it.  Then, if you need another VM, you can simply copy it from backup.

La voila!


No comments:

Post a Comment

On topic comments are welcome. Junk will be deleted.