VirtualBox Guest Additions with Shared Folders on Mac OS X
In order to access certain aspects of a virtual machine in VirtualBox, you will need to install Guest Additions (similar to VMWare Tools I guess)
There is a manual page for installing Guest Additions but not all of it is self-explanatory…
Install DKMS
This part is relatively straightforward.
sudo apt-get update sudo apt-get upgrade sudo apt-get install dkms
Where to find VBoxGuestAdditions.iso
Usefully Oracle don’t tell you in their guide, but it is available with the rest of the downloads at http://download.virtualbox.org/virtualbox/
So for example for version 4.1.6 the VBoxGuestAdditions_4.1.6.iso is located at http://download.virtualbox.org/virtualbox/4.1.6/VBoxGuestAdditions_4.1.6.iso
How to mount the image
Since I can’t remember the last time I had to mount something in *nix from the command-line, here’s a quick way.
sudo mkdir /dev/dvd sudo mount /dev/dvd1 /mnt/dvd/ cd /mnt/dvd
Then you should see VBoxLinuxAdditions, which you need to run as per the manual. If the above doesn’t work it might be because your DVD drive in VirtualBox is called something else, like dvd (instead of dvd1) which probably differs depending on which distro you’re using.
Then you need to run the installer.
sudo sh ./VBoxLinuxAdditions.run
Once that’s done you can restart.
sudo reboot now
Kernel header problems
I got some missing kernel header problems when trying to install Guest Additions, which if building the main Guest Additions module fails will be logged.
cat /var/log/vboxadd-install.log
If you see something like this…
Error! Your kernel headers for kernel 2.6.35-28-generic cannot be found at /lib/modules/2.6.35-28-generic/build or /lib/modules/2.6.35-28-generic/source.
You can use the --kernelsourcedir option to tell DKMS where it's located, or you could install the linux-headers-2.6.35-28-generic package.
So you can do just that!
sudo apt-get install linux-headers-2.6.35-28-generic sudo ./VBoxLinuxAdditions.run
Hopefully this should install now (although the XFree86 bit will fail, assuming you’re using the command-line) and you may need to restart the VM, although I’m not sure.
Mount the host folder
You can create the host folder in the VirtualBox Manager in the Shared Folders tab on the Settings for that VM. If you add it on the command-line it’ll appear under the machine folders anyways. If you want to type it though, here’s what you’d type into the Mac OS X terminal (note this is the only thing that you’d type into the host itself)
VBoxManage sharedfolder add "my-ubuntu-vm" \ --name "websites" --hostpath "/Users/andrew/pizza"
To mount the Shared Folder from within the guest, the instructions from Ubuntu (as my guest is Ubuntu, although I think this is a better way to mount it anyways) were very useful.
sharename="whatever.you.want.to.call.it"; sudo mkdir /mnt/$sharename \ sudo chmod 777 /mnt/$sharename \ sudo mount -t vboxsf -o uid=1000,gid=1000 $sharename /mnt/$sharename \ ln -s /mnt/$sharename $HOME/Desktop/$sharename
Just change the target to be wherever you want the Shared Folder to be mounted in the guest. Now in theory if you go to that path in the guest, it should be the same as the directory you shared from the host!
WordPress 3.2 upgrade, WYSIWYG editor no longer loads? Now requires JSON extension
An issue I encountered recently doing a WordPress upgrade from 3.1 to 3.2, is that afterwards everything appeared to work with the exception of the editor for Posts and Pages. After working through the checklist for the manual install and checking each plugin individually, I took a look at the PHP error log and noticed that PHP didn’t have the JSON extension bundled.
If you get an error mentioning that json_encode() is missing, it will be because PHP wasn’t compiled with it and WordPress now uses it. If you use SuSE (which this particular server is) you need to install the php5_json package using a command similar to:
zypper install php5_json
Otherwise you will need to see if your distro has a JSON-specific package for PHP, or you may have to compile it from source.
NOTE: PHP usually has the JSON extension compiled into it by default since 5.2, so this is an unusual case
Categories
- Nagios is a blessing and a curse...
- RT @kiyanforoughi: Yoko Kanno is simply... wow....
- RT @fransgaard: OCP anyone? Call Robocop: BBC News - Private security firm G4S to run Lincolnshire police station http://t.co/Ek6KS1aV
- Update schema.xml, commit to repo, update Puppet, run Puppet, restart Tomcat, reindex Solr, realise it doesn't work, rinse-repeat...
- To all broadcasters, READ THIS and LEARN FROM IT http://t.co/7KBeCpK9 #piracy
Recent Posts
- “concrete5 cannot parse the PATH_INFO or ORIG_PATH_INFO information provided by your server.”
- Enable hibernation on HP MicroServer for Windows Home Server v1
- VirtualBox Guest Additions with Shared Folders on Mac OS X
- Using PHP late static binding to define static arrays as subsets for child classes
- MySQL socket missing at /tmp/mysql.sock with Zend Server CE on Mac OS X




