84 lines
2.3 KiB
Bash
Executable File
84 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# This script sets up the kernel and fstab for CentOS 5.
|
|
#
|
|
|
|
prefix=$1
|
|
|
|
#
|
|
# Source our common functions
|
|
#
|
|
if [ -e /usr/lib/xen-tools/common.sh ]; then
|
|
. /usr/lib/xen-tools/common.sh
|
|
else
|
|
. ./hooks/common.sh
|
|
fi
|
|
|
|
#
|
|
# Log our start
|
|
#
|
|
|
|
logMessage Script $0 starting
|
|
|
|
# Make the console work
|
|
sed -i "/Cancelled/ {G;s/$/co:2345:respawn:\/sbin\/mingetty console/;}" ${prefix}/etc/inittab
|
|
sed -i "s/^1:2345/#1:2345/" ${prefix}/etc/inittab
|
|
|
|
# MAKEDEV is needed at this point
|
|
chroot ${prefix} ln -s /sbin/MAKEDEV /dev/MAKEDEV
|
|
chroot ${prefix} /sbin/MAKEDEV sda sdb sdc sdd
|
|
|
|
# Create fstab
|
|
logMessage Create /etc/fstab
|
|
cat > ${prefix}/etc/fstab << EOF
|
|
# /etc/fstab: static file system information.
|
|
#
|
|
# <file system> <mount point> <type> <options> <dump> <pass>
|
|
proc /proc proc defaults 0 0
|
|
none /dev/pts devpts mode=0620 0 0
|
|
EOF
|
|
|
|
for i in `seq 1 $NUMPARTITIONS`; do
|
|
echo -n "/dev/sda$i " >> ${prefix}/etc/fstab
|
|
eval part=\$PARTITION$i
|
|
if [ ! -z "`echo $part | grep swap`" ]; then
|
|
echo "none swap ws 0 0" >> ${prefix}/etc/fstab
|
|
else
|
|
echo $part | awk -F: '{print $4,$3,$5,0,1}' >> ${prefix}/etc/fstab
|
|
fi
|
|
done
|
|
|
|
# Install the kernel, grub and perl
|
|
chroot ${prefix} yum clean expire-cache
|
|
chroot ${prefix} yum -y install kernel-xen grub.x86_64 perl.x86_64
|
|
|
|
KERNELVERSION=`ls ${prefix}/boot/vmlinuz-* | sed "s#$prefix/boot/vmlinuz-##"`
|
|
logMessage "Kernel $KERNELVERSION found"
|
|
|
|
# Create grub's menu.list
|
|
logMessage "Creating /boot/grub/menu.lst"
|
|
mkdir -p ${prefix}/boot/grub
|
|
cat > ${prefix}/boot/grub/menu.lst << EOF
|
|
# WARNING : Don't forget to update this when you upgrade kernel !
|
|
# You can also exclude kernel-xen from updates by putting
|
|
# exclude=kernel-xen in in [main] in yum.conf
|
|
|
|
default=0
|
|
timeout=5
|
|
title CentOS ($KERNELVERSION)
|
|
kernel /boot/vmlinuz-$KERNELVERSION elevator=noop
|
|
initrd /boot/initramfs-$KERNELVERSION.img
|
|
EOF
|
|
|
|
# Some use lvm but mkinitrd will generate a wrong initrd when these are present.
|
|
rm -f ${prefix}/etc/lvm/backup/* ${prefix}/etc/lvm/archive/*
|
|
|
|
# Generate a correct initrd.
|
|
chroot ${prefix} mkinitrd --with=xenblk --with=xennet --preload=xenblk --preload=xennet\
|
|
-f /boot/initramfs-$KERNELVERSION.img $KERNELVERSION
|
|
|
|
#
|
|
# Log our finish
|
|
#
|
|
logMessage Script $0 finished
|