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.

CentOS 4 Specific Hints

This is meant to help those with this distribution, successfully install Linux-VServer.

A. Kernel Issues

  • Get and compile kernel
The CentOS default Kernel release is highly patched already and thus are not compatible with the patches supplied by linux-vserver.org. For this reason, we are going to use a vanilla-kernel (read: an unmodified original linux kernel) from kernel.org. For this part see http://linux-vserver.org/Step-by-Step+Guide+2.6
  • Compile the kernel with:
make menuconfig
make
make modules_install
make install
  • CentOS, properly modifies the grub.conf file for the new kernel, but we still need to make some more changes:
  • Fix /etc/fstab --- YMMV - I found this step unecessary --psg
  • CentOS uses LABEL, which is not compatible with a vanilla kernel
  • Run 'mount' to see what drives are pointing where
  • Change the corresponding lines in /etc/fstab to point to the real device name:
Before:
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot1            /boot                   ext2    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda2         swap                    swap    defaults        0 0
/dev/hdb                /media/cdrom            auto    pamconsole,exec,noauto,managed 0 0
/dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0
Mount:
/dev/hda3 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda1 on /boot type ext2 (rw)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
After:
/dev/hda3               /                       ext3    defaults        1 1
/dev/hda1               /boot                   ext2    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
/dev/hda2               swap                    swap    defaults        0 0
/dev/hdb                /media/cdrom            auto    pamconsole,exec,noauto,managed 0 0
/dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0
  • Fix /boot/grub/grub.conf
  • This file also needs to be modified for the same reasons
  • Change all lines that use LABEL in /boot/grub/grub/conf to point to the real device name
Change:
        kernel /vmlinuz-2.6.9-5.0.3.EL ro root=LABEL=/
To:
        kernel /vmlinuz-2.6.9-5.0.3.EL ro root=/dev/hda1
  • Disable SELinux
  • SELinux conflicts with Linux-VServer. Disable it in /etc/selinux/config (SELINUX=disabled)
  • Reboot
  • If it boots, you did it right, otherwise, go back and check everything.

B. Tool Hints

  • Many like to configure the tools with the following options:
./configure --prefix=/usr --sysconfdir=/etc --with-vrootdir=/vservers
make
make check
make install

C. Adding CentOS 4 Support into the tools

if you have the x86_64 architecture, substitute lib64 for lib in the next section. --psg

cd /usr/lib/util-vserver/distributions
cp -Rpv fc3 centos4
cd centos4
mkdir pubkeys
cp /usr/share/rhn/RPM-GPG-KEY-centos4 ./pubkeys/  (Should be there from a properly updated CentOS install)
ln -s ../redhat/initpre .
ln -s ../redhat/initpost .
cd pkgs
rm -f 01 02 03
vi 01 (put the contents of this into it: http://linux-vserver.org/CentOS_min_install)
cd ../yum
vi yum.conf and replace with:

[main]
cachedir=@YUMCACHEDIR@
reposdir=@YUMETCDIR@/yum.repos.d
debuglevel=2
logfile=@YUMLOGDIR@/log
pkgpolicy=newest
distroverpkg=centos-release
tolerant=1
exactarch=1
retries=20
obsoletes=1
gpgcheck=1

cd ../yum.repos.d
rm -f *.repo
cp /etc/yum.repos.d/CentOS-Base.repo .

vi CentOS-Base.repo (replace $releasever with 4.0 everywhere)

cp -Rpv /etc/vservers/.distributions/fc3 /etc/vservers/.distributions/centos4

D. VServer creation

  • Build a new minimal vserver

First, let's create a minimal install of CentOS. We set this up earlier by putting the rpm packages to pkgs/01

vserver min-centos4 build -m yum --hostname domain.com --interface domain=eth0:192.168.0.136/24 --initstyle sysv --context 500 --force -- -d centos4

This should take some time to install depending on your Internet connection.

The /etc/resolv.conf file is not created. Manually create it, putting in your DNS servers or copy it from your host:

cp /etc/resolv.conf /vservers/min-centos4/etc/

If you would like to be able to update the rpm packages (yum, etc.) from within the vserver copy in the rpm database and associated files:

cp /vservers/.pkg/min-centos4/rpm/state/* /vservers/min-centos4/.rpmdb/

Next remove the network script before you try and start it:

rm -f /vservers/min-centos4/etc/rc[06].d/K90network

Once it is created, you can start it:

vserver min-centos4 start

Then you can enter it:

vserver min-centos4 enter

Next, update it with the latest patches:

yum update

Next, clean up the startup & shutdown scripts:

chkconfig gpm off
chkconfig pcmcia off
chkconfig smartd off
chkconfig haldaemon off
chkconfig nfslock off
chkconfig network off
chkconfig portmap off
chkconfig bluetooth off
chkconfig rpcidmapd off

rm -f /etc/rc[06].d/S01*