VMware/Installing Arch as a guest
This article will explain how to install Arch Linux inside a virtual machine (e.g. in VMware Workstation on Windows or VMware Fusion on Mac OS X).
If using systemd, see: Installing Arch Linux in VMware (systemd).
You may also be interested in installing VMware in Arch.
Contents
VMware Tools
The VMware Tools improve networking capability, cut and paste between the host and the guest under X, or access of the directories on host from the guest (called shared folders by VMware). They also provide a set of tools to access advanced options of the Virtual Machine, including shrinking and freeing unnecessary space in the virtual hard drives
Install the open-vm-tools
package from [community]:
pacman -S open-vm-tools
and start VMware tools
with:
rc.d start open-vm-tools
To start them automatically at boot, add the daemon to the DAEMONS array in rc.conf.
DAEMONS=( ... open-vm-tools ... )
To start the vmware toolbox
(allows you to configure time synchronization, connect or disconnect devices, shrink the hard disk freeing unnecessary space, etc), run the following command:
# vmware-toolbox
open-vm-tools
:
ERROR: could not insert 'vmhgfs': Invalid argumentIn this case, the solution is to build the
open-vm-tools-modules
package with ABS against the currently installed kernel. This is discussed here.Installing X
The necessary Xorg packages can be installed with:
# pacman -S xorg-server xf86-input-vmmouse xf86-video-vmware svga-dri
and the fallback X driver:
# pacman -S xf86-video-vesa
Add de vmwgfx module to the MODULES array in rc.conf.
# MODULES = (... vmwgfx ...)
Please notice: the virtual machine should have at least 32MB VGA memory !
Enable Unity
Unity is installed by default, but needs a bit of work to get it running.
First, make sure that open-vm-tools
is installed and loaded on startup. If needed, add open-vm-tools
to the DAEMONS list.
Log out and restart. Unity will work. Unfortunately at the moment, menus may not display properly, so launch a terminal, switch to Unity and use the terminal to launch whatever you want. If you get an error like:
error while loading shared libraries: libgtkmm-2.4.so.1: cannot open shared object file: No such file or directory
Install gtkmm
:
pacman -S gtkmm
Create a new Shared Folder by selecting VM
-> Settings...
from the VMware Workstation menu. Select the Options
tab and then Shared Folder
. Check the Always enabled
option and create a new share. For Windows XP you can create a share with the Name C
and the Host Path C:\
.
Then add a line like the following to your /etc/fstab
file (changing uid/gid as needed) for each shared folder:
.host:/shared_folder /mnt/shared vmhgfs defaults,user,ttl=5,uid=root,gid=root,fmask=0133,dmask=0022 0 0
Make the mount directories and mount the Shared Folders:
mkdir /mnt/shared mount /mnt/shared
Final touch
Prune mlocate DB
It is useless to add the shared directories to the locate DB
. Add the shared directories to PRUNEPATHS
in /etc/updatedb
.
Paravirtualization
Description
Paravirtualization (PV) is a virtualization feature\technique that allows some of the processing, which in an ideal virtualized environment happens inside the virtualization to be done outside of the virtualized context. This will, in most cases, greatly improve the base line performance of a virtual machine. Although in some cases, depending on many variables, it will not.
With the to-date distributions of Arch, PV works out of the box.
On newer x86 and x86-64 CPU models (Both AMD and Intel) PV is implemented as a hardware feature and no additional configuration is required. For older CPU models, You must enable the deprecated VMI protocol that introduces modifications to the guest kernel that makes it aware of the fact that it is virtualized. (Microsoft refers to this as an Enlightened Guest OS)
VMI Retired
VMWare PV was once implemented as the VMI (Virtual Machine Interface) standard.
In 2009, VMware announced they would stop supporting VMI in 2011. The Linux kernel should remove the VMI code around version 2.6.37. VMI still remains useful since it allows for PV on older CPUs and Arch Linux is well built for a Linux VM Guest on hosts with low resources. VMI offers a tremendous impact on the VM performance under these circumstances.
In updated vmware products (Workstation 7+ and ESX 4+) VMI is retired. The functionality that was implemented in VMI and not covered by the improvements in modern CPUs is now implemented by the newer VMCI standard. Again, on to-date Arch Linux and open-vm-tools installations, VMCI works OOB and should not pose any problems. If you do encounter issues then the Vmware Community forums will offer all the aid you need.
On Vmware Workstation products VMCI is enabled by default. On Vmware ESX products VMCI is disabled by default on the basis that it COULD pose a security risk. You can enable or disable VMCI through the VM settings screen. VMCI provides extra features, as well as a generic platform, for the area of Guest-To-Host communication.
VMI Installation
You must install the open-vm-tools
before enabling VMI
.
To enable VMI
click on Settings...
from the VM menu. Select the Processors device
and enable VMWare kernel paravirtualization
.
Once Arch is up and running you can check if you have VMI
enabled or not by running the following command:
$ dmesg | grep vmi
If VMI is enabled you should see an output such as:
Booting paravirtualized kernel on vmi [deprecated] vmi: registering clock event vmi-timer. mult=9202214 shift=22 vmi: registering clock event vmi-timer. mult=9202214 shift=22 vmi: registering clock source khz=2193979 Switching to clocksource vmi-timer
VMCI Installation
To verify that VMCI
is up and running, run the following command:
$ dmesg | grep vmci
If VMCI
is enabled you should see an output such as:
Probing for vmci/PCI. vmci 0000:00:07.7: PCI INT A -> GSI (level, low) -> IRQ 16 Found vmci/PCI at 0x1080, irq 16. Registered vmci device.
Troubleshooting
Networking
If there is a problem with networking, it is possible that the module pcnet32
steals the network interface from VMware, disabling it works:
MODULES=(!pcnet32 ...)
Keyboard/Mouse not working in X
If you have no keyboard or mouse in X make sure you don't have the following line in the ServerFlags
section of your Xorg configuration. Consult Xorg#InputClasses for further assistance:
Remove Option "AutoAddDevices" "False"