We currently migrate to MediaWiki from our old installation, but not all content has been migrated yet. Take a look at the Wiki Team page for instructions how to help or browse through our new wiki at wiki.linux-vserver.org to find the information already migrated.

Vserver on Arch Linux

WARNING: You will need knowledge of Arch Linux's pacman, abs and init system. This is not an Arch tutorial

Overview

[Arch Linux] is ideal for running as the host and for VServers. On the downside, Arch Linux does not include a VServer kernel or utilities. However, if you are confident building your own kernel and using ABS (the Arch Build System), it is excellent.

What makes it ideal for the host server is its low foot print and simplicity, and what makes it ideal for VServers is the fact that it is trivial to install an instance of Arch Linux in a directory.

Building the Utilities on the Host

The following PKGBUILD will download, package and install util-vserver version 0.30.207. It should be only a matter of changing the version number to make it work with later versions, assuming nothing major changes in the build process.

pkgname=util-vserver
pkgver=0.30.207
pkgrel=1
pkgdesc="The util-vserver project provides tools for kernels with the security context patch."
url="http://savannah.nongnu.org/projects/util-vserver/"
source=(http://www.13thfloor.at/~ensc/util-vserver/files/alpha/${pkgname}-${pkgver}.tar.bz2)
makedepends=(vconfig)
md5sums=()

build() {
  cd $startdir/src/$pkgname-$pkgver
  ./configure --prefix=/usr --sysconfdir=/etc --with-initrddir=/etc/rc.d --localstatedir=/var
  make || return 1
  make DESTDIR=$startdir/pkg install || return 1
  install -m755 -d $startdir/pkg/usr/libexec/vserver
  mv $startdir/pkg/etc/rc.d/v_* $startdir/pkg/usr/libexec/vserver
}

Once built and installed, add vservers-default to DAEMONS in /etc/rc.conf.

Creating an Arch Linux VServer

Download [archbootstrap], choose appropriate values for name, interface and {{context}, pick some vserver flags (or just use the ones below) then use the following shell commands to create your vserver:

# name=test
# interface=eth0:72.36.180.187/29
# context=5
# vserver ${name} build -m skeleton --context ${context} --interface ${interface} \
   --flags lock,virt_mem,virt_uptime,virt_cpu,virt_load,sched_hard,hide_netif --initstyle plain
# echo default > /etc/vservers/${name}/apps/init/mark
# archbootstrap /vservers/${name} ftp://ftp.archlinux.de/pub/archlinux
...

(choose a mirror closer to you, as this will download all base packages)

Start your vserver:

# vserver ${name} start

Check it has started

# vserver-stat

That is pretty much it. You will probably want to edit /vservers/test/etc/rc.conf to remove interface configuration and set your hostname.

All the usual vserver commands should work as you would expect, but don't forget to modify host service config files so they don't bind to INADDR_ANY.

Note: the value in /etc/vservers/${name}/apps/init/mark must be default if you wish your vservers to start at boot using the vservers-default init script.