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.

What makes it ideal for the host server is its low foot print and simplicity. 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.

Arch is ideal for VServers because it is trivial to install an instance of Arch Linux into a target directory and does not require Arch on the host system.

Building util-vserver 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] (this script will run on any GNU/Linux host system with wget), 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:

(choose a mirror close to you, as archbootstrap will download all base packages)

# 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
...

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.