Installing Plan 9 in a VirtualBox

NOTE: VirtualBox is not a very good choice. Behavior changes dramatically from release to release, with some working out of the box, some needing just the right settings, and some not working at all. You are highly encouraged to pick a different VM. VMware, qemu (with or without kqemu), kvm, and xen are all known to work better.

See also: installing plan 9 on qemu, installing in xen, installing in xen 3.0.

Below are a few reports of an installation that worked. For people who are attached to VirtualBox for one reason or another, it might be useful to produce a table of "Plan 9 release date / VBox version / host OS version" tuples with a brief description of the results or configuration needed. Submissions from users are hereby solicited.

From Richard Miller on 9fans, 2013-03-11:
Bell Labs Plan 9 and networking works well in virtualbox 3.1.8 using
Am79C973 virtual ethernet adapter in bridged mode, chipset PIIX3
selected and "Enable IO APIC" turned off.  (Maybe not the only usable
settings but these work for me.)

Under Virtual Box 3.0, selecting the ICH6 chipset rather than PIIX3 or PIIX4, and deselecting all disks allows 9pccpu to run. AMD79C970 Ethernet PXE boots reliably but the Intel Ethernet emulations don't.
I used a VirtualBox-4.1.10 for my installation on a Gentoo Linux host, to get a first look into plan9.

The basic installation works out of the box, simply creating a VirtualBox System of type "Other", choosing a tiny splitter of memory (512M) and a little disk to hold the system (2G), which I decided to reside as a fixed size image.

(Maybe I will do a video on howto setup that VirtualBox image, later).


Actually setting up a plan9 from the latest iso from the Download Page was quite simple.

IDE Controller
   IDE Primary Master:                  plan 9.vdi (Normal, 2,00 GB)
   IDE Secondary Master (CD/DVD):       plan9.iso (277,21 MB)
Adapter 1: Intel PRO/1000 MT Server (Bridged adapter, eth0)

where the `MT Server' version is absolutely essential, as the MT Desktop version does not work!

cat /net/ndb
ip= ipmask= ipgw=

That's it folks. Let the games begin!


VirtualBox provides a vesa display emulation to control video modes of the guest. You might observe, that your (modern) monitors resolution, i.e. 1680x1050x32 or 1920x1080x32, as in my case, are not supported.

These are not originally vesa modes, which is a quite old standard.

Luckily you are able to tune your host system to provide extended vesa modes for the guest. The method is described in the VirtualBox manual, in the section “Custom Vesa Resolutions”.

All you have to do is to set your custom modes as extradata options:

VirtualBox setextradata "VM name" "CustomVideoMode1" "1920x1080x32"
VirtualBox setextradata "VM name" "CustomVideoMode2" "1680x1050x32"
VirtualBox setextradata "VM name" "CustomVideoMode3" "960x1080x32"