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.

A. General

  1. Credits
    This FAQ is based on information taken from the FAQs of Jacques Gélinas and Paul Sladen.
  2. Are there other FAQs available?
    Yes. There are other FAQ's available:
  3. Where can I find a overview of linux-vserver?

B. Requirements

  1. Which hardware is supported by linux-vserver?
    The next platforms are supported in the stable versions of linux-vserver. (some only in version 1.2 and higher)
    • alpha
    • i386 and higher (and compatible)
    • ia32 / ia64
    • mips / mips64
    • hppa / hppa64
    • ppc / ppc64
    • sparc / sparc64
    • s390
    • x86_64 (AMD64)
    • uml
  2. Which kernel versions are supported?
    recent 2.4 kernels (stable), recent 2.6 kernels (development). Some ancient versions of linux-vserver are backported to 2.2.x kernels. You can find more information [here].
  3. Can I run linux-vserver on my favorite distribution?
    Linux-vserver is originaly developed on Redhat/Mandrake, but it is rather distribution independent. It runs fine with other distributions (Debian, SUSE). Some distributions run a patched kernel, which can make it a bit harder to build a new kernel with linux-vserver support

C. Versions

  1. What's the latest version of linux-vserver?
    You can find the [latest stable release] as well as the [latest development release] at [http://www.13thfloor.at/vserver]
    Check out the Release FAQ for information on releases and version numbering

D. Tools (util-vserver and vserver)

  1. What do I need them for?
    These are the userspace tools for linux-vserver. You need them to use the functionality of linux-vserver.
  2. What 's the difference between vserver and util-vserver?
    The vserver package are the 'original utilities', written by Jacques Gélinas. The util-vserver package is a reinplementation of these tools in C by Enrico Scholz, which follows the kernel development more closely.
    You can choose which package you use, util-vserver should be a drop in replacement for vserver. But you can't use the both package on the same machine.
    Both packages have there own version numbering. Don't let the version numbering confuse you.
  3. Which version of the tools packages do I need? Do I have to upgrade?
It can be useful to have a recent version of the tools package installed on you box. It 's a good idea to upgrade your tools when you upgrade your kernel. In the next list you find the versions you need to have at least, but it's a good idea to use more recent versions.
  • linux-vserver 1.00
  • vserver 0.26
  • util-linux 0.24
  • linux-vserver 1.20
  • vserver 0.28
  • util-linux 0.25

E. Download

  1. Where can I dowload the latest version of:
  2. Distribution specific packages

F. Usage?

  1. Is IPv6 supported?
    At this moment, only IPv4 (the current most frequently used standard) is supported.
  2. Can I put my vservers in different networks?
    Yes you can. You have to bind you vserver to a interface on the host machine, but you can choose the interface in the configuration file of your vserver (in /etc/vservers/SERVER.conf). Make sure you host server does have an interface in the network you need on your vserver
  3. Is it possible for a vserver to have a other default gateway than the host machine does use?
    Yes. Use iproute2 to set the default gateway.
    You can find more information on routing in linux-vserver in [this posting] on the mailinglist.
  1. Can I use more then one IP-number in a vserver
    Yes you can. Edit the configuration file of the vserver (/etc/vservers/SERVER.conf).
    In case you want to use 2 IP-numbers on one interface
    IPROOT="10.1.2.3 10.1.2.12"
    IPROOTDEV="eth0"
    In case you want to use 2 or more interfaces
    IPROOT="eth0:10.1.2.3 eth1:10.1.2.12"
    IPROOTDEV=""
    In case you want to use IP-number in differend subnets
    IPROOT="eth0:10.1.2.3/255.255.255.0 eth0:10.1.3.12/255.255.0.0"
    IPROOTDEV=""
  2. Is it possible to use the real device (eth0, eth1) instead of the device alias created by vserver?
    Yes. Setup the IP aliases yourself on the host server
    • Set IPROOT= to those IPs
    • Unset IPROOTDEV so the vserver script won't try to setup the IP aliases.
  3. Were can I find more information on networking in linux-vserver?
    You can find more information on the internals of networking in linux-vserver [here].

G. Software compatibility

  1. Bind does not work in a vserver
    • capset failed
    • The bind package expect to have the capability CAP_SYS_RESOURCE.
    It expects this because it was compiled this way on linux and to increase its ulimit.
    • By default, a vserver does not have this capability for a good reason, you may have a look at 'man capabilities' to see how much control that capability allows.
    • A vserver starts with some ulimit values and can only reduce them, not enlarge them.
    • If you know what you are doing, you can give the capability to the vserver running bind.
    • A securer solution is to compile bind without that requirement by specifying './configure --disable-linux-caps'
    It looks like you only can run bind as root once you compile bind with this option, but this should be fine inside a vserver.
    • bind does not respond to queries
    • Bind seems to have problems with a query socket check. Bind believes the query is comming on a non-query socket, and doesn't answer the request.
    • putting "query-source address YOUR_VSERVER_IP;" in your named.conf solves this problem.
  2. Is DHCP possible in a vserver?
    It's possible to run a DHCP server inside a vserver, but there is a catch. The set_ipv4root assign one IP and one broadcast address to a vserver. UDP service listening to 0.0.0.0 (bind any) in a vserver are indeed listening to the vserver IP and vserver broadcast.
    This is all they will get. This is fine for most service.
    Unfortunately, dhcpd is receiving special broadcasts. Its clients are unaware of their IP number, so they are using special broadcast 255.255.255.255 address.
    A vserver generally runs with the broadcast address of the network device (the one used to setup the IP alias). This network device has a broadcast address which is never 255.255.255.255. Those special broadcast are not sent to the vserver. The solution is to set the IPROOTBCAST entry in the vserver configuration file like this IPROOTBCAST=255.255.255.255
    Restart your vserver and dhcpd will work. There is a catch (at least with 2.4.18ctx-9). If you are using other services in the save vserver, also relying on broadcast for proper operation (samba for one), they won't operate properly.
    One solution would be to enhance the semantic a little: A vserver would listen for its IP address, its broadcast address and also for 255.255.255.255.
    The dhcpd case is probably very specific though.
  3. NFS-server
    It's not posible to run a NFS-kernel server inside a vserver.
    You can try to run the NFS userspace server.
  4. Run Level Based Distributions as Vservers (RedHat? and such ....)
    If you see errors after the command vserver <name> stop like these:
    Syncing hardware clock to system time hwclock is unable to get I/O port access: the iopl(3) call failed FAILED]
    Turning off swap: Not superuser. [FAILED]
    Turning off quotas: quotaoff: Can't stat() mounted device /dev/hdv1: No such file or directory
    Unmounting file systems: umount2: No such file or directory umount: /vservers: not found
    Then look for S* links in /etc/rc6.d/ and remove the one responsible for the errors. In RH9 it is called S01reboot
    A 'normal' server does some stuff on shutdown, like saving the time to the hwclock, or storing random pool data and finally invokes the reboot. Some of those actions are just not allowed in a vserver.
  5. Running an X server inside a vserver
    Allow capability CAP_SYS_RAWIO. It can be set in the capabilities file or the vserver config depending on your util-vserver.
    Set up a mouse device, such as /dev/psaux or /dev/input/mice
    Set up a vc/tty device, such as /dev/tty7 or /dev/vc/7 (major 4, minor same as device). If you are running a main X server you might need to use 8 or 9 for the vc/tty device
    Set up /dev/kmem (not 100% sure this is needed, don't think X has to have it to run)
    Now just switch to a console, log in as root, enter your vserver and startx, a caveat on newer versions of vserver when switching between a vserver X server and the main server's X server you need to switch to a console first or you can lose access to the main server's X server.
    You'll also need pts/pty devices to run things like xterm, but if you have ssh set up you probably already have them.
  6. sshd with X11-Forwarding in a vserver
    add 'X11UseLocalhost no' to your sshd_config
  7. See also: [ProblematicPrograms]

H. Help

  1. Where can I find more information on the linux-vserver project?
    First have a look at the documentation section of the website. In case you can't find the answer here, have a look at the mailinglist archives. If this doesn't help jou, there is still a mailinglist and a IRC channel were you can ask for help.
  2. Does the linux-vserver project have a mailinglist?
    Yes. You can subscribe [here]. Het archives are located [here].
  3. Is there a IRC channel
    Yes, join #vserver on irc.oftc.net.

I. Issues

  1. When starting or entering a vserver I get "Error: /proc must be mounted". 'vserver-stat' and 'vps' are failing with "open("/proc/uptime"): No such file or directory". Sometimes, other files in /proc are mentioned. What can I do?
    Make sure that in devel and experimental the required proc entries are visible inside a vserver. With alpha utilities, execute the vprocunhide script. See Proc-Security also.
  2. Inside a vserver I can still use mknod to create devices, even without CAP_MKNOD capability. What's wrong? (this probably applies to all other capabilities but that was not tested)
    This is probably a problem in your kernel configuration. If you include "Enable different security models" (CONFIG_SECURITY), then make sure to also include "Default Linux Capabilities" (CONFIG_SECURITY_CAPABILITIES) or compile it as a module. In this latter case you must insert the 'capability' module into the kernel. This is for example true for current (2.6.8.1) debian kernel configurations.
  3. After stopping/restarting a vserver my network is gone! What the hell?
    See above.
  4. Only root can access any files in the vserver
    Check the permissions of the vserver's / directory. The 2.4 branch's chroot-escape blocker (chmod 0000 and chattr +t) is meant to be applied to the directory containing the vservers (for example /vservers) not the vservers' root directories themselves. If you revoked all permissions for a vserver's root directory, re-grant them with "chmod 0755 /path/to/vserver-root".
  5. "daemon() failed: Success" - What? Succesfully failing?
    Not really vserver related but here's the answer: Somebody replaced your /dev/null with a regular file, create a real /dev/null and it will start working again. We got no idea why the error message happens to be so funny(?).
  6. When I start a vserver, "FATAL: kernel too old" message appears and vserver can't be started
    Edit your /etc/vservers/<vsname>/uts/release and define a value greater than kernel version
    example, if you have a kernel "2.6.11", set "2005" for example :-)
  7. I switched from old to new configuration and now all my ip addresses are gone!
    They are not, ifconfig just doesn't show them. The reason is that ifconfig is old and uses an old interface to get the stuff it shows. This interface only works for interface addresses that got a name associated with them, like eth0:hansi. The alpha tools use the ip utility from iproute, which uses the more recent netlink interface to setup networking. Throught this interface you're able to work on nameless interface addresses, but ifconfig won't show those. You can assign names to your interface addresses in the vserver configuration, see [The Great Flower Page] for details.