It is specific to Fatdog64 and requires you to know the terms like SFS, devx, kernel-source, load the sfs, sandbox, etc which is explained elsewhere.
This articule is written for Fatdog64 700 but with minor tweaks should be applicable to other versions of Fatdog that supports similar commands and features.
Skip directly to the steps.
VirtualBox is a very well designed, versatile, likeable, desktop-class virtualisation solution. It is multi-platform (Windows, Mac, Linux of various brands, and Solaris). What's not to like? It is open-source; the entire source code are available under GPLv2 license. It also comes with proprietary drivers for things like USB and RDP access; but these drivers are free (as in beer) for personal use only; and their definition of personal use is rather unique and broader than what you think it is.
It has a very long history, initially offered by its developers through and independent company called Innotek, it was acquired by Sun Microsystem and thus now belongs to Oracle after Sun was absorbed by Oracle. Unlike many of other products, however, VirtualBox continues to flourish and stays independently open, and apart from relative slowness of its development (which I don't mind because for me, it is already feature-complete), the offering - both the product and licensing - remains effectively identical since the day I tried its version 1.x.
The latest Fatdog64 (700 as of this time of writing) plays very well with VirtualBox (4.3.26 as of this time of writing), both as a host and as a guest.
When run as a guest operating system, some features, however, needs the VirtualBox guest additions software to be installed. There are many ways of doing it; the one on this article helps you to make re-distributable package that you can use on many guest installations.
The standard true-and-tested method to install the Guest additions is as follows:
VBoxLinuxAdditions.run
inside the mounted disc.
It works, but there are two minor problems:
Can we do better? Yes. The benefits first:
Interested? Read on.
How is it done?
VBoxLinuxAdditions.run
on the host.
VBoxLinuxAdditions.run
in sandbox.
makepkg
or mksquashfs
rox /opt/VirtualBox/additions/VBoxGuestAdditions.iso
cd
to it
(It has to be somewhere in /tmp, since we want to access it from
sandbox later)
mkdir -p /tmp/xxx cd /tmp/xxx
VBoxLinuxAdditions.run
from the mounted ISO image,
storing it in our temporary directory.
sh /mnt/+opt+VirtualBox+additions+VBoxGuestAdditions+iso/VBoxLinuxAdditions.run --noexec --keep
install
directory inside
your working directory (of /tmp/xxx
).
rox /opt/VirtualBox/additions/VBoxGuestAdditions.iso
sandbox-lxc.sh
Also, you need to enable "desktop emulation". Not that we are going
to use it, but doing that will share /tmp
from the parent so we
can access the Guest Addition files we have just extracted above.
cd /tmp/xxx/install sh install.sh
Now, in this newly opened terminal, type these commands. You don't have to type the comments, of couse - they are there so that you know what the commands are doing.
# collect the newly created files from sandbox cow layer to /tmp/vboxadd sb2dir.sh vboxadd # remove unneeded cruft cd /tmp/vboxadd rm -rf dev var rm -r etc/xdg/autostart rm etc/rc.d/rc.local rm etc/* find lib ! -name '*.ko' -delete rm -f sbin/poweroff sbin/reboot # correct paths, create proper Fatdog startup script mv etc/rc.d etc/init.d mkdir etc/xdg/Startup cat << "EOF" > etc/xdg/Startup/vboxclient #!/bin/sh VBoxClient-all EOF chmod +x etc/xdg/Startup/vboxclient
/tmp/vboxadd
which is good for making a
installation package, or an SFS.
To make an installable package:
# from within /tmp/vboxadd makepkg -c n -l n /root/vbox-additions-4.3.26-x86_64-1.txz
To make an SFS:
cd /tmp mksquashfs vboxadd /root/vbox-additions-4.3.26.sfs
/tmp/vboxadd
when you are done.
poweroff
.
It will ask for your confirmation whether you really want to power
off, and just click yes. Only the sandbox will be powered off,
not the entire system. (If you use the regular sandbox, it will
power down the entire system - so don't do this in a regular
sandbox).
/tmp/xxx
.
That's all there is to it.