VirtualBox

From ArchWiki
Revision as of 18:52, 21 June 2010 by Rransom (Talk | contribs) (Installing Guest Additions: zap smiley)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

VirtualBox is a virtual pc emulator like vmware. It has many of the features vmware has, as well as some of its own. It is in constant development and new features are implemented all the time. eg. version 2.2 introduced OpenGL 3D acceleration support for Linux and Solaris guests. It has a nice GUI interface (Qt and/or SDL) or command line tools for managing virtual machines. Headless operation is also supported. Running iTunes under VirtualBox is the only way (currently) to sync iPod Touch/iPhone firmware 3.0+.

Editions

VirtualBox is available in two editions: VirtualBox (OSE) and VirtualBox (Personal Use and Evaluation License (PUEL))

VirtualBox (OSE)

VirtualBox (OSE) is the open source version of VirtualBox, which can be found in the community repository. It lacks some features such as USB device support and the built-in RDP server.

VirtualBox (PUEL)

VirtualBox PUEL is a binary-only version (free for personal use). There are several available from the AUR, but the most popular PKGBUILD was written by thotypous and is currently maintained by cryptocrack. You can download it from the AUR at this link or directly from the VirtualBox website. The PUEL edition offers the following advantages:

  • Remote Display Protocol (RDP) Server - a complete RDP server on top of the virtual hardware, allowing users to connect to a virtual machine remotely using any RDP compatible client
  • USB support - a virtual USB controller which allows USB 1.1 and USB 2.0 devices to be passed through to virtual machines
  • USB over RDP - a combination of the RDP server and USB support, allowing users to make USB devices available to virtual machines running remotely
  • iSCSI initiator - a builtin iSCSI initiator making it possible to use iSCSI targets as virtual disks without the guest requiring support for iSCSI

Installation

Install VirtualBox (OSE)

VirtualBox (OSE) is available from the community repository:

# pacman -S virtualbox-ose
Note: This package is not in x86_64 Repositories (see this thread why). See the link to the PKGBUILD by thotypous in the AUR above if you are running Arch x86_64 and want to use VirtualBox.
Note: This package can be installed for x86_64 systems by following the instructions below, however the previous note will remain for those of you who wish to install VirtualBox (OSE) from the AUR.

Once installed, a desktop entry can be located in Applications → System Tools → VirtualBox OSE

Now, add the desired username to the vboxusers group:

# gpasswd -a USERNAME vboxusers
Note: You must logout/login in order for this change to take effect.

To build vboxdrv module, run as root:

# /etc/rc.d/vboxdrv setup

Lastly, edit Template:Filename as root and add vboxdrv to the MODULES array in order to load the VirtualBox drivers at startup. For example:

MODULES=(loop vboxdrv fuse ...)

To load the module manually, run the following in a terminal as root:

# modprobe vboxdrv

Install VirtualBox (OSE) on x86_64

VirtualBox (OSE) can be installed on the x86_64 platform without downloading a version from the AUR. The current download of VirtualBox (OSE) from the VirtualBox website for *all distributions* under VirtualBox for Linux hosts installs properly after installing the kernel26-headers.

# pacman -S kernel26-headers

Once the kernel headers are downloaded and installed, you may run the VirtualBox OSE install downloaded from the VirtualBox website. The current version as of 2010/15/06 is 3.2.4 and can be downloaded from this URL: [1] If you choose to download this file from the website yourself, make sure you are downloading the amd64 version for all distributions as mentioned above. After the file is successfully downloaded to your preferred location, run the installer as root (or with sudo) with the following command:

# sh VirtualBox-3.2.4-62467-Linux_amd64.run
Note: Edit the file name to match the version (if applicable) of which you downloaded.

After a successful installation, you may run the program from your Applications menu, usually under system tools.

Install VirtualBox PUEL (virtualbox_bin)

VirtualBox PUEL is available from the AUR: virtualbox_bin.

Download the tarball from the above page. As a normal user, unpack, change directory, and Template:Codeline:

$ tar -xzf virtualbox_bin.tar.gz
$ cd virtualbox_bin
$ makepkg

This will create a .pkg.tar.gz file in the virtualbox_bin directory. Then, as root:

# pacman -U PACKAGE-NAME.pkg.tar.gz

This will compile the vboxdrv kernel modules and install VirtualBox in Template:Filename, and add the vboxusers group.

Now, add the desired username to the vboxusers group:

# gpasswd -a USERNAME vboxusers
Note: You must logout/login in order for this change to take effect.

Lastly, edit Template:Filename as root and add vboxdrv to the MODULES array in order to load the VirtualBox drivers at startup. For example:

MODULES=(loop vboxdrv fuse ...)

To load the module manually, run the following in a terminal as root:

# modprobe vboxdrv

Install required QT libraries

Currently, VirtualBox relies on QT4 for its graphical interface. If you require a GUI, ensure you have QT4 installed:

# pacman -S qt

Configuration

After having installed VirtualBox on your system and added yourself to the vboxusers group, you can start configuring your system in order to make all the features of VirtualBox available. Create a new virtual machine using the wizard provided by the GUI and then click settings in order to edit the virtual machine settings.

Keyboard and mouse between the host and the guest

  • To capture the keyboard and mouse, click the mouse inside the Virtual Machine display.
  • To uncapture, press the right Ctrl key, alone.

To get seamless mouse integration between host and guest, you need to install the Virtualbox additions into the guest.

Also, mouse pointer integration does not work out of the box. To fix it, make sure you have the following sections in your guest's Template:Filename:

Section "InputDevice"
   Identifier "Mouse0"
   Driver "vboxmouse"
   Option         "Protocol" "auto"
   Option         "Device" "/dev/input/mice"
   Option         "ZAxisMapping" "4 5 6 7"
EndSection
Section "ServerLayout"
   Identifier     "X.org Configured"
   Screen      0  "Screen0" 0 0
   InputDevice    "Mouse0" "CorePointer"
   InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

When generating your Template:Filename with Template:Codeline, you will end up with an InputDevice section that uses the Template:Codeline driver. After installing the Guest Additions, you should replace Template:Codeline with Template:Codeline and then restart X or reboot your VM.

Getting network in the guest machine to work

First, get network working in the guest machine. Click the network tab. The not attached option means you will have "Network cable unplugged" or similar error in the guest computer.

Using NAT network

This is the simplest way to get network. Select NAT network and it should be ready to use. Then, the guest operating system can be automatically configured by using DHCP.

The NAT IP address on the first card is 10.0.2.0, 10.0.3.0 on the second and so on.

Also in VirtualBox 2.2.0+ NAT network DHCP clients will not configure your nameserver (DNS server for windows guests) you will have to manually configure the nameserver(DNS server)

Using host interface networking (the VirtualBox way)

Since VirtuaBox 2.1.0 it has a native support for host interface networking. Just add vboxnetflt to your MODULES section in Template:Filename and choose Host Interface Networking (or Bridged adapter in 2.2) in the virtual machine configuration.

Note: DHCP broadcasting does not seem to work properly under this way. Set up your guest networking with static IP assignment.

Using host interface networking (the Arch way)

You are going to just edit these files and reboot:

Edit: Template:Filename

bridge_br0="eth0 vbox0" # Put any interfaces you need.
BRIDGE_INTERFACES=(br0)

Template:Filename

First add the bridge module to your MODULES line

MODULES=( <your other modules> bridge)

Then, in your NETWORKING section, make the following changes:

eth0="eth0 up"
br0="dhcp" # Maybe you have some static configuration; change to fit
INTERFACES=(eth0 br0)

Note by gpan:

Template:Filename

First add the vboxdrv (and vboxnetflt in case of 2.1.0 version) module to your MODULES line:

MODULES=( <your other modules> vboxdrv vboxnetflt )

Note by vit:

Template:Filename

In my case it did not work untill adding vboxnetadp to modules.

Next, you should edit your Template:Filename and type:

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"

Save it and exit.

Then open terminal and type:

# pacman -S bridge-utils uml_utilities

Create a new bridge with this command:

# brctl addbr br0

Template:Filename

(You can set up more interfaces if you want. Sky is the limit!):

vbox0 your_user br0 # Be sure that your user is in the vboxusers group.

Reboot.

Note: Remember to set up your virtual machine with proper network configuration. (Attach a "Bridged Adapter" and choose "br0")
Note: If you have any issue, make sure that you have the bridge-utils package installed and vboxnet daemon loaded.

Using host interface networking (generic)

This way is a bit harder, but it allows you to see the VirtualMachine as a "real" computer on your local network. You need to get bridge-utils

# pacman -S bridge-utils uml_utilities

Note by Sp1d3rmxn:

You also need to have the TUN module loaded... in Template:Filename add Template:Codeline (without the quotes) to your MODULES section. For testing this out right now without rebooting you can load the module from the command line by Template:Codeline.
Then you MUST set these permissions otherwise you will never get VBox to init the interface. The command is Template:Codeline (without the quotes).
Now proceed with the rest as it is written below.

Note

As said by Sp1d3rmxn, set these permissions, but, instead of using the command, set them in Template:Filename, which will apply them on boot:
KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
KERNEL=="tun", OWNER="root", GROUP="vboxusers", MODE="0660"


1. Create a new bridge with this command:

# brctl addbr br0

2. If you are not using DHCP, run ifconfig and note down the network configuration of your existing network interface (e.g. eth0), which will need to be copied to the bridge.

Note: You will need this settings so make sure you do not lose them.

3. Switch your physical network adapter to "promiscuous" mode so that it will accept Ethernet frames for MAC addresses other than its own (replace Template:Codeline with your network interface):

# ifconfig eth0 0.0.0.0 promisc 
Note: You will lose network connectivity on eth0 at this point.

4. Add your network adapter to the bridge:

# brctl addif br0 eth0

5. Transfer the network configuration previously used with your physical ethernet adapter to the new bridge. If you are using DHCP, this should work:

# dhclient br0

Note by Sp1d3rmxn:

Use Template:Codeline instead of the above

Otherwise, run Template:Codeline and use the values that you noted down previously.

6. To create a permanent host interface called vbox0 (all host interfaces created in this way must be called vbox followed by a number) and add it to the network bridge created above, use the following command:

VBoxAddIF vbox0 vboxuser br0

Replace Template:Codeline with the name of the user who is supposed to be able to use the new interface.

Note: VboxAddIF is located in /opt/VirtualBox-VERSION OF VIRTUALBOX/VBoxAddIF

Alternatively, you can setup VirtualBox networking through your Template:Filename to enable a bridged connection.

Using host interface networking with a wireless device

Bridging as described above will not work with a wireless device. Using parprouted however it can be accomplished.

  1. Install parprouted and iproute
  2. Template:Codeline
  3. Make sure IP fowarding is enabled: Template:Codeline, and/or edit Template:Filename.
  4. Template:Codeline, to create the tap device
  5. Template:Codeline, needs to be a manually set IP on the same network your wireless device is.
  6. Template:Codeline

Getting USB to work in the guest machine

(Only available in the PUEL edition)

Note: As of VirtualBox>2.2.4 this is no longer necessary to mount a usb filesystem.

First in order to make USB available for use to the virtual machine you must add this line to your Template:Filename:

none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0

Then tell mount to reread Template:Filename:

# mount -a

Template:Codeline is is the id of the group which should be allowed to access USB-devices. Change it to the id of your vboxusers group. You can get the id by running:

$ grep vboxusers /etc/group

Restart Virtualbox and click the USB tab in the settings of the virtual machine and select which devices are available to your pc on boot. If you wish your virtual machine to use device that you have just plugged in (assuming the virtual machine has booted already), go to the VirtualMachine screen go to Devices → USB Devices and select the device you wish to plug in the virtual PC.

Note by bjimba:

Recent versions of VirtualBox, as noted above, do not require usbfs, however you will need the HAL daemon running if you do not use usbfs. See the HAL wiki page for details.

Installing Guest Additions

The Guest Additions make the shared folders feature available, as well as better video (3D available in version 2.1+) and mouse drivers. You will have mouse integration, thus no need to release the mouse after using it in the guest and one can also enable a bidirectional clipboard.

Note: The instructions immediately below are for an Archlinux guest on an Archlinux host.

After you booted the virtual machine, go to menu Devices → Install Guest Additions... Once you have clicked it, VirtualBox loads an ISO into the current CD-ROM, so you will not see anything happen yet.

You will require gcc and make if you do not already have them so install them typing the following as root:

# pacman -S gcc make 

If you are running arch in VirtualBox install the kernel headers

# pacman -S kernel26-headers

Then do the following as root:

# mount /media/cdrom

for i686 systems (32 bit):

# sh /media/cdrom/VBoxLinuxAdditions-x86.run

for x86-64 systems (64 bit):

# sh /media/cdrom/VBoxLinuxAdditions-amd64.run

It will build and install the kernel modules, install the Xorg drivers and create init scripts. It will most probably print out errors about init scripts and run levels and what not. Ignore them. You will find Template:Filename in /etc/rc.d which will load them on demand. To have the Guest Additions loaded at boot time, just add those to the DAEMONS array in Template:Filename eg.:

DAEMONS=(syslog-ng network netfs crond alsa rc.vboxadd)

Another option is to install one of these packages:

# pacman -S virtualbox-additions

or

# pacman -S virtualbox-ose-additions

You will then have an ISO to mount as a loop device. Remember to load the loop kernel module before:

# modprobe loop
# mount /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso /media/cdrom -o loop

Then execute Template:Filename as before. Before adding Template:Filename to DAEMONS check Template:Filename for commands to load the vboxadd daemons put by the installation script.

Using full resolution of the host system in the guest

Set the resolution of your guest in the grub boot script Template:Filename, i.e. add the correct vga code to the kernel command line. For a resolution of 1280x1024, this would e.g. look like

# kernel /vmlinuz26 root=/dev/disk/by-uuid/7bdc5dee-8fb0-4260-bc43-60ac6e4e4a54 ro vga=795

Add the resolution to Template:Filename, e.g.

# Section "Screen"
# ...
#	SubSection "Display"
#		Viewport   0 0
#		Depth     24
#		Modes "1280x1024" "1024x768"
#	EndSubSection
# ...
# EndSection


Windows Guests

After installing Windows (XP etc.) on your virtual machine, simply select Devices → Install Guest Additions...

This will mount the iso image and windows should then automatically launch the guest additions installer. Follow the instructions to the end.

Sharing folders between the host and the guest

In the settings of the virtual machine go to shared folders tab and add the folders you want to share.

  • NOTE: You need to install Guest Additions in order to use this feature.
In a Linux host, Devices → Install Guest Additions
Yes (when asked to download the CD image)
Mount (when asked to register and mount)

In a Linux host, create one folder for sharing files.

In a Windows guest, starting with VirtualBox 1.5.0, shared folders are browseable and are therefore visible in Windows Explorer. Open Windows Explorer and look for it under My Networking Places → Entire Network → VirtualBox Shared Folders.

Alternatively, on the Windows command line, you can also use the following:

net use x: \\VBOXSVR\sharename

While Template:Codeline is a fixed name, replace Template:Codeline with the drive letter that you want to use for the share, and sharename with the share name specified with VBoxManage.

In a Windows guest, to improve loading and saving files (e.g. MS Office) by VirtualBox Shared Folders edit c:\windows\system32\drivers\etc\hosts as below:

127.0.0.1 localhost vboxsvr

In a Linux guest, use the following command:

# mount -t vboxsf [-o OPTIONS] sharename mountpoint

Replace Template:Codeline with the share name specified with VBoxManage, and mountpoint with the path where you want the share to be mounted (e.g. /mnt/share). The usual mount rules apply, that is, create this directory first if it does not exist yet.

Beyond the standard options supplied by the mount command, the following are available:

iocharset=CHARSET

to set the character set used for I/O operations (utf8 by default) and

convertcp=CHARSET

to specify the character set used for the shared folder name (utf8 by default).

Getting audio to work in the guest machine

In the machine settings, go to the audio tab and select the correct driver according to your sound system (ALSA, OSS or PulseAudio).

Setting up the RAM and Video Memory for the virtual PC

You can change the default values by going to Settings → General.

Setting up CD-ROM for the Virtual PC

You can change the default values by going to Settings → CD/DVD-ROM.

Check mount CD/DVD drive and select one of the following options.

Note: If no CD-ROM drive is detected, make sure the HAL daemon is running. To start it, run the following command as root:

# /etc/rc.d/hal start

Enabling OpenGL acceleration in Arch Linux guests

Due to a bug in the VirtualBox guest addition setup scripts (as of VBox 3.1.2), simply ticking the "3D acceleration" checkbox in the virtual machine settings and installing the guest additions won't enable 3D acceleration for OpenGL applications under X for Arch Linux guests (and possibly others). In order to still get OpenGL acceleration, a bit of manual intervention is necessary after installing the guest additions. As root, run:

ln -s /usr/lib/VBoxOGL.so /usr/lib/xorg/modules/dri/vboxvideo_dri.so
ln -s /usr/lib/xorg/modules/dri /usr/lib/dri

Also make sure the user starting X in the guest is in the video group.

Note: Don't compare before-after performance using glxgears! You may get a lot less FPS due to now-working vsync support. Compare performance using a real, heavy 3D application (like a game).

Enabling D3D acceleration in Windows guests

Recent versions of Virtualbox have support for accelerating OpenGL inside guests. This can be enabled with a simple checkbox in the machine's settings, right below where video ram is set, and installing the Virtualbox guest additions. However, most Windows games use Direct3D (part of DirectX), not OpenGL, and are thus not helped by this method. However, it is possible to gain accelerated Direct3D in your Windows guests by borrowing the d3d libraries from Wine, which translate d3d calls into OpenGL, which is then accelerated.

After enabling OpenGL acceleration as described above, go to http://www.nongnu.org/wined3d/ in your Windows guest and grab the "Latest version (Installer):". Reboot the guest into safe mode (press F8 before the Windows screen appears but after the Virtualbox screen disappears), and install wined3d, accepting the defaults during the install. (You may check the box for DirectX 10 support if you like, dont touch anything else.) Reboot back to normal mode and you should have accelerated Direct3D.

Note: This hack may or may not work for some games depending on what hardware checks they make and what parts of D3D they use.
Note: This has only been tried on Windows XP and Windows 7 RC guests AFAIK, and does not work on the Windows 7 guest. If you have experience with this on a different windows version, please add that data here.

Start VirtualBox

To start Virtualbox, run the following command in a terminal:

$ VirtualBox

Or in KDE menu, select: <System><Sun Virtualbox>

Virtualized OS Setup

Virtualbox needs to be setup to virtualize another operating system.

Test a LiveCD/DVD

Click the 'New' button to create a new virtual environment. Name it appropriately and select Operating System type and version. Select base memory size (note: most operating systems will need at least 512MB to function properly). Create a new hard disk image (a hard disk image is a file that will contain the operating system's filesystem and files).

When the new image has been created, click 'Settings', then CD/DVD-ROM, check 'Mount CD/DVD Drive' then select an ISO image.

Maintenance

Rebuild the vboxdrv Module

Note that any time your kernel version changes (due to upgrade, recompile, etc.) you must also rebuild the VirtualBox kernel. Depending on your version :


For version 3.1.2 and later:

Ensure that kernel26-headers is installed.

Run the following command:

# /etc/rc.d/vboxdrv setup

This will build the VirtualBox kernel modules for the currently running kernel; if you have just upgraded your kernel package, reboot before trying to rebuild your kernel modules.


On versions 2.1 to 3.1.1, run the following command:

# vbox_build_module

This binary will be located in one of the following locations: /sbin, /bin, or /usr/bin.

Note: vbox_build_module binary is absent in the virtualbox-* packages from community repo. It gets installed only with the virtualbox_bin* packages from AUR.
Note: If you are using one of the Virtualbox PKGBUILD's from the AUR, you will also need to update your modules via this method. In most cases, users of x86_64 will need to use one of the PKBUILDS of Virtualbox since the official repos only have support for the i686 architecture.

On versions before 2.1, update the kernel module by running the following command:

# /etc/rc.d/rc.vboxdrv setup

After rebuilding the module, do not forget to load it with

# modprobe vboxdrv

vboxdrv and vboxnetflt should be in the MODULES=() section of your /etc/rc.conf

Compact a Disk Image

See How to compact a VirtualBox virtual disk image (VDI)

Windows Xp and Nokia phones

To get working Windows XP and Nokia phones with Pc Suite mode, Virtualbox needs two simple steps:

1. Add a rule to udev with Template:Filename:

LABEL="usb_serial_start"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", \
GROUP="usbfs", MODE="0660", GROUP="dialout"
LABEL="usb_serial_end"

2. Create the group usbfs and add its user to it

$ sudo groupadd usbfs
$ sudo usermod -a -G usbfs $USER

After a logout, connect a Nokia phone with PC Suite mode and start Windows XP to test new rule.

Migrating From Another VM

The qemu-img program can be used to convert images from one format to another, or add compression or encryption to an image.

  # pacman -S qemu

Converting from QEMU images

To convert a QEMU image for use with VirtualBox, first convert it to raw format, then use VirtualBox's conversion utility to convert and compact it in its native format.

  $ qemu-img convert -O raw test.qcow2 test.raw
  $ VBoxManage modifyvdi /full/path/to/test.vdi compact

Converting from VMware images

Do

  $ VBoxManage clonehd source.vmdk target.vdi --format VDI

This may not be needed anymore with recent virtualbox versions (to be confirmed)

Tips and Tricks

Sending a CTRL+ALT+F1 to the Guest

If your guest O/S is a Linux distro, and you want to open a new tty text shell or exit X via typing Template:Keypress+Template:Keypress+Template:Keypress, you can easily send this command to the guest O/S simply by hitting your 'Host Key' (usually the Template:Keypress in the Right side of your keyboard) + Template:Keypress or Template:Keypress, etc.

Speeding up HDD Access for the Guest

Enabling the SATA(AHCI) controller within Virtualbox can speed up Host disk operations. This is available though Settings>Hard Disks in current versions of Virtual Box.

Starting VMs at System Boot on Headless Servers

Add this line to /etc/rc.local

exec /bin/su PREFERRED_USER -l -c "/bin/bash --login -c \"VBoxHeadless -startvm {UUID}\" >/dev/null 2>&1" &

Where PREFERRED_USER is the user profile that contains the VM definitions and .vdi files. This will start the VM with a RDP server running on port 3389. To determine the available VMs for a user:

su PREFERRED_USER -c "VBoxManage list vms"

To suspend the VM:

su PREFERRED_USER -c "VBoxManage controlvm {UUID} savestate"

Accessing Server on VM from Host

To access apache on a VM from the Host machine ONLY, simply execute the following lines on the Host:

$ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/HostPort" 8888
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/GuestPort" 80
$ VBoxManage setextradata GuestName "VBoxInternal/Devices/pcnet/0/LUN#0/Config/Apache/Protocol" TCP

Where 8888 is the port the host should listen on and 80 is the port the VM will send Apache's signal on. To use a port lower than 1024 on the host machine changes need to be made to the firewall on the host machine. This can also be set up to work with SSH, etc.. by changing "Apache" to whatever service and using different ports.

Note: "pcnet" refers to the network card of the VM. If you use an Intel card in your VM settings change "pcnet" to "e1000"

It might also be necessary to allow connections from the outside to the server in your VM. E.g. if the guest OS is Arch, you may want to add the line

httpd: ALL

to your /etc/hosts.allow file.

Daemon Tools

While VirtualBox can mount ISO images without a problem, there are some image formats which cannot reliably be converted to ISO. For instance, ccd2iso ignores .ccd and .sub files, which can give disk images with broken files. cdemu, fuseiso, and MagicISO will do the same. In this case there is no choice but to use Daemon Tools inside VirtualBox.

Recent Daemon Tools versions won't install, so use this old one: [3]

Running Arch Linux as a guest

To install guest additions with support for Xorg follow these steps:

Note: Run the following steps as root
  • install entire xorg group: (is everything actually required?)
    # pacman -S xorg
  • install dependencies needed to build the guest additions:
    # pacman -S kernel26-headers gcc make
  • mount and install VirtualBox guest additions
  • create /etc/X11/xorg.conf with the following contents:
Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "vboxmouse"
        Option      "Device" "/dev/vboxguest"
        Option      "CorePointer" "yes"
EndSection

Section "Device"
        Identifier  "Card0"
        Driver      "vboxvideo"
EndSection
  • add hal to DAEMONS in rc.conf (not needed if you use X.org Server >= 1.8)
Note: It is not required to add rc.vboxadd to DAEMONS because it is added to /etc/rc.local automatically
Note: Run the following steps while logged into your user account
  • add /usr/bin/VBoxClient-all & to the top of ~/.xinitrc (even if ~/.xinitrc does not exist)

External Links