[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Disk detection with kickstart



On 10/22/2012 06:20 AM, Moray Henderson wrote:
From: kk s [mailto:kks kbase gmail com]
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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]