On 10/22/2012 06:20 AM, Moray Henderson wrote:
From: kk s [mailto:kks.kbase@xxxxxxxxx]
Sent: 21 October 2012 22:51
Hi,
I have to provision the servers and all the servers are different disk types
like hda, sda, xvda. So I have issue to detect the disk type itself with
kickstart and make partitions. Does anyone have pre installation script that
will do this job?
There was something about this earlier in the year - I can't remember now if
it was on kickstart-list or anaconda-devel. Someone was saying that if you
try to create partitions in %pre anaconda gets confused and can't find them.
Does anyone else remember that thread? You always need to write the
partition instructions to a file and %include them back into your kickstart
file. You used to detect hard drives in %pre with list-harddrives although
things change in anaconda so frequently it is difficult to give precise
instructions. With a kickstart file on USB drive for example, you could end
up with the USB drive wiped and included in the Linux logical volume group
if you were not careful. As a first step, create a kickstart that just
writes the output of list-harddrives to a file and see if it gives you
anything you can use.
I have something similar, which checks for sda, sdb, hda, hda, etc.
Tested on RHEL5
code below:
#-----------------------------------------------cut-----------------------------------------
# main part of kickstart
# include the partitioning logic from the pre section.
%include /tmp/part-include
%pre
# pre section
#----- partitioning logic below--------------
# pick the first drive that is not removable and is over MINSIZE
DIR="/sys/block"
# minimum size of hard drive needed specified in GIGABYTES
MINSIZE=60
ROOTDRIVE=""
# /sys/block/*/size is in 512 byte chunks
for DEV in sda sdb sdc sdd hda hdb; do
if [ -d $DIR/$DEV ]; then
REMOVABLE=`cat $DIR/$DEV/removable`
if (( $REMOVABLE == 0 )); then
echo $DEV
SIZE=`cat $DIR/$DEV/size`
GB=$(($SIZE/2**21))
if [ $GB -gt $MINSIZE ]; then
echo "$(($SIZE/2**21))"
if [ -z $ROOTDRIVE ]; then
ROOTDRIVE=$DEV
fi
fi
fi
fi
done
echo "ROOTDRIVE=$ROOTDRIVE"
# drives smaller than 240GB use fixed-size partions
# drives larger than 240GB use percentage-based partition sizes
if [ $GB -lt 240 ]; then
# drives smaller than 240GB
cat << EOF > /tmp/part-include
zerombr
clearpart --all --drives=$ROOTDRIVE --initlabel
#clearpart --all --drives=$ROOTDRIVE
bootloader --location=mbr --driveorder=$ROOTDRIVE
part /boot --fstype ext3 --size=300 --ondisk=$ROOTDRIVE
part pv.8 --size=100 --grow --ondisk=$ROOTDRIVE
volgroup VolGroup00 --pesize=65536 pv.8
logvol / --fstype ext3 --name=root --vgname=VolGroup00 --size=30000
logvol swap --fstype swap --name=swap --vgname=VolGroup00 --size=8000
logvol /tmp --fstype ext3 --name=tmp --vgname=VolGroup00 --size=10000
logvol /var/log --fstype ext3 --name=varlog --vgname=VolGroup00 --size=1000
logvol /usr/vice/cache --fstype ext3 --name=usrvicecache
--vgname=VolGroup00 --size=17000
EOF
else
# drives 240GB and larger
cat << EOF > /tmp/part-include
zerombr
clearpart --all --drives=$ROOTDRIVE --initlabel
#clearpart --all --drives=$ROOTDRIVE
bootloader --location=mbr --driveorder=$ROOTDRIVE
part /boot --fstype ext3 --size=300 --ondisk=$ROOTDRIVE
part pv.8 --size=100 --grow --ondisk=$ROOTDRIVE
volgroup VolGroup00 --pesize=65536 pv.8
logvol / --fstype ext3 --name=root --vgname=VolGroup00 --percent=12
logvol swap --fstype swap --name=swap --vgname=VolGroup00 --percent=4
logvol /tmp --fstype ext3 --name=tmp --vgname=VolGroup00 --percent=4
logvol /var/log --fstype ext3 --name=varlog --vgname=VolGroup00 --percent=1
logvol /usr/vice/cache --fstype ext3 --name=usrvicecache
--vgname=VolGroup00 --percent=7
EOF
fi
#-----------------------------------------------cut-----------------------------------------
Jason
_______________________________________________
Kickstart-list mailing list
Kickstart-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/kickstart-list