CentOS HowTo
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
- 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
cd /usr/lib/util-vserver/distributions cp 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 yu/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 . cp /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.
One thing that is not created by this is the /etc/resolv.conf file. Manually create it, putting in your DNS servers.
Once it is created, you can start it:
vserver min-centos4 start
Then you can enter it:
vserver min-centos4 enter