My that looks familiar ;) What happens if you don't "calculate" the number of drives. In other words, change to this: let numd=1 This can help narrow down if that is really what the problem is. Chip -----Original Message----- From: kickstart-list-bounces@xxxxxxxxxx [mailto:kickstart-list-bounces@xxxxxxxxxx] On Behalf Of Harry Hoffman Sent: Friday, August 17, 2007 1:47 PM To: Discussion list about Kickstart Subject: possible bug in kickstart with RHEL4 and %pre scripts using LVM Hi All, Ran into what I believe is a bug. It looks to be in the %pre section. Background: Running CentOS release 5 with cobbler 0.5.2. I have a kickstart file for installing RHEL 4.5 (see below). I have a %pre section in the kickstart file that defines partitions: # Magically figure out how to partition this thing %include /tmp/partinfo %pre # Determine how many drives we have set $(list-harddrives) let numd=$#/2 d1=$1 # This is the device of disk 1 d2=$3 # This is the device of disk 2, etc. S1=$2 # This is the size of disk 1 S2=$4 # This is the size of disk 2, etc. # This would be a partition scheme for two or more drives if [ $numd -ge 2 ]; then cat << EOF >> /tmp/partinfo part /boot --fstype ext3 --size=100 --ondisk=$d1 --asprimary part /boot2 --fstype ext3 --size=100 --ondisk=$d2 --asprimary part swap --size=512 --ondisk=$d1 --asprimary part swap --size=512 --ondisk=$d2 --asprimary part raid.01 --size=1 --grow --ondisk=$d1 part raid.02 --size=1 --grow --ondisk=$d2 raid pv.01 --fstype "physical volume (LVM)" --level=RAID1 --device=md0 raid.01 raid.02 volgroup internal_hd pv.01 logvol / --fstype ext3 --name=slash --vgname=internal_hd --size=1 --grow EOF else cat << EOF >> /tmp/partinfo part /boot --fstype ext3 --size=100 --ondisk=$d1 --asprimary part swap --size=1024 --ondisk=$d1 --asprimary part pv.01 --fstype "physical volume (LVM)" --size=1 --grow --ondisk=$d1 volgroup internal_hd pv.01 logvol / --fstype ext3 --name=slash --vgname=internal_hd --size=1 --grow #part / --fstype ext3 --size=1 --grow --ondisk=$d1 EOF fi This pre script shows the following errors on vt3: * Running kickstart %pre script(s) let: arith: syntax error: "numd=2/2" let: arith: syntax error: "numd=2/2" [: 2: unexpected operator * All kickstart %pre script(s) have been run * Exception parsing ks.cfg: Defined PV partition pv.01 multiple times In this particular case I have only one (logical HW RAID) drive and the /tmp/partinfo is created with the lines contained in the else clause from above. The error about partition pv.01 causes kickstart to fail and die :-( Please see the full kickstart file below. I should note that if I place the part info from the else clause outside of the %pre section (i.e. just create a static partition declaration in the kickstart file) then everything works as expected. Any ideas? I'm stumped. Cheers, Harry # Kickstart file to automate the installation of Oracle 10 on RHEL4 # Harry Hoffman <hhoffman@xxxxxxxx> # Oracle 10g Kickstart file for CentOS 4.x #platform=x86, AMD64, or Intel EM64T # System authorization information auth --useshadow --enablemd5 # System bootloader configuration bootloader --location=mbr --md5pass=blah # Partition clearing information clearpart --all --initlabel # Use text mode install text # Firewall configuration firewall --enabled --port=22:tcp # Run the Setup Agent on first boot firstboot --disable # System keyboard keyboard us # System language lang en_US.UTF-8 langsupport --default=en_US.UTF-8 en_US.UTF-8 # Use network installation url --url=http://192.168.1.3/cblr/links/RHEL-4.5-i386 # Network information network --bootproto=static --ip=192.168.1.10 --netmask=255.255.240.0 --gateway=192.168.1.249 --nameserver=192.168.1.3 --hostname=db1.prod.fqdn.com --device=eth0 --onboot=on # Reboot after installation reboot #Root password rootpw --iscrypted blah # SELinux configuration selinux --enforcing # Do not configure the X Window System skipx # System timezone timezone America/New_York # Install OS instead of upgrade install # Clear the Master Boot Record zerombr # Magically figure out how to partition this thing %include /tmp/partinfo %pre # Determine how many drives we have set $(list-harddrives) let numd=$#/2 d1=$1 # This is the device of disk 1 d2=$3 # This is the device of disk 2, etc. S1=$2 # This is the size of disk 1 S2=$4 # This is the size of disk 2, etc. # This would be a partition scheme for two or more drives if [ $numd -ge 2 ]; then cat << EOF >> /tmp/partinfo part /boot --fstype ext3 --size=100 --ondisk=$d1 --asprimary part /boot2 --fstype ext3 --size=100 --ondisk=$d2 --asprimary part swap --size=512 --ondisk=$d1 --asprimary part swap --size=512 --ondisk=$d2 --asprimary part raid.01 --size=1 --grow --ondisk=$d1 part raid.02 --size=1 --grow --ondisk=$d2 raid pv.01 --fstype "physical volume (LVM)" --level=RAID1 --device=md0 raid.01 raid.02 volgroup internal_hd pv.01 logvol / --fstype ext3 --name=slash --vgname=internal_hd --size=1 --grow EOF else cat << EOF >> /tmp/partinfo part /boot --fstype ext3 --size=100 --ondisk=$d1 --asprimary part swap --size=1024 --ondisk=$d1 --asprimary part pv.01 --fstype "physical volume (LVM)" --size=1 --grow --ondisk=$d1 volgroup internal_hd pv.01 logvol / --fstype ext3 --name=slash --vgname=internal_hd --size=1 --grow #part / --fstype ext3 --size=1 --grow --ondisk=$d1 EOF fi %packages automake bison cpp flex gcc gcc-c++ glibc-devel glibc-headers glibc-kernheaders libungif Xaw3d xorg-x11-xauth libcap ntp sudo vlock screen sysstat -sendmail postfix vim-enhanced # Oracle 10 stuff compat-db openmotif setarch libaio libaio-devel compat-gcc-32 compat-gcc-32-c++ compat-libstdc++-33 %post chvt 3 #Turn off/on services chkconfig --level 2345 isdn off chkconfig --level 2345 portmap off chkconfig --level 2345 nfslock off chkconfig --level 345 ntpd on chkconfig --level 345 cups off #Setup root mail forwarding echo -e "root:\troot@xxxxxxxx" >> /etc/aliases postalias /etc/aliases # Setup Oracle groupadd -r oinstall; groupadd -r dba; useradd -r -c "Oracle DB User" -g oinstall -G dba -m -p 'blah' oracle echo "# " >> /etc/sysctl.conf echo "# Required for Oracle 10g " >> /etc/sysctl.conf echo "# " >> /etc/sysctl.conf echo "kernel.shmall = 2097152" >> /etc/sysctl.conf echo "kernel.shmmax = 2147483648" >> /etc/sysctl.conf echo "kernel.shmmni = 4096" >> /etc/sysctl.conf echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf echo "fs.file-max = 65536" >> /etc/sysctl.conf echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf echo "net.core.rmem_default=262144" >> /etc/sysctl.conf echo "net.core.rmem_max=262144" >> /etc/sysctl.conf echo "net.core.wmem_default=262144" >> /etc/sysctl.conf echo "net.core.wmem_max=262144" >> /etc/sysctl.conf /sbin/sysctl -p echo "oracle soft nproc 2047" >> /etc/security/limits.conf echo "oracle hard nproc 16384" >> /etc/security/limits.conf echo "oracle soft nofile 1024" >> /etc/security/limits.conf echo "oracle hard nofile 65536" >> /etc/security/limits.conf # setting /etc/profile echo "if [ \$USER = \"oracle\" ]; then" >> /etc/profile echo " if [ \$SHELL = \"/bin/ksh\" ]; then" >> /etc/profile echo " ulimit -p 16384" >> /etc/profile echo " ulimit -n 65536" >> /etc/profile echo " else" >> /etc/profile echo " ulimit -u 16384 -n 65536" >> /etc/profile echo " fi" >> /etc/profile echo "fi" >> /etc/profile # Change pam to respect the new limits echo "session required /lib/security/pam_limits.so" >> /etc/pam.d/login # Make oracle directories mkdir -p /opt/oracle/product/10.2.0.1/db_1 chown -R oracle:oinstall /opt/oracle/ chmod -R 775 /opt/oracle/ # Set ORACLE_HOME in oracle's .bashrc echo "ORACLE_HOME=/opt/oracle/product/10.2.0.1/db_1" >> /home/oracle/.bashrc echo "PATH=\$PATH:\$ORACLE_HOME/bin" >> /home/oracle/.bashrc echo "export \$PATH" >> /home/oracle/.bashrc touch /etc/oratab chown oracle:oinstall /etc/oratab wget -O /home/oracle/10201_database_linux32.zip http://192.168.1.3/cblr/localmirror/10201_database_linux32.zip wget -O /home/oracle/10gR2.rsp http://192.168.1.3/cblr/localmirror/10gR2.rsp chown oracle:oinstall /home/oracle/10201_database_linux32.zip cd /home/oracle && su oracle -c "unzip 10201_database_linux32.zip" wget -O /etc/rc3.d/S99oracle_install http://192.168.1.3/cblr/localmirror/S99oracle_install chmod 755 /etc/rc3.d/S99oracle_install # Update the system # Update the system /usr/sbin/rhnreg_ks --profilename "db1.prod.fqdn.com" --username "rhuser" --password "blah" --email "root@xxxxxxxx" up2date -fu up2date up2date -fu wget http://192.168.1.3/cblr/watcher.py?system_done=RHEL-4-Oracle -b _______________________________________________ Kickstart-list mailing list Kickstart-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/kickstart-list _______________________________________________ Kickstart-list mailing list Kickstart-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/kickstart-list