# Once root's homedir is there, copy over the log. while : ; do sleep 10 if [ -d /mnt/sysimage/root ]; then cp /tmp/ks-pre.log /mnt/sysimage/root/ logger "Copied %pre section log to system" break fi done & wget "http://128.40.5.17/cblr/svc/op/trig/mode/pre/system/auth1" -O /dev/null + wget http://128.40.5.17/cblr/svc/op/trig/mode/pre/system/auth1 -O /dev/null + : + sleep 10 --2011-06-03 12:18:01-- http://128.40.5.17/cblr/svc/op/trig/mode/pre/system/auth1 Connecting to 128.40.5.17:80... connected. HTTP request sent, awaiting response... 200 OK Length: 4 [text/plain] Saving to: `/dev/null' 0K 100% 345K=0s 2011-06-03 12:18:02 (345 KB/s) - `/dev/null' saved [4/4] # Start pre_install_network_config generated code # Start of code to match cobbler system interfaces to physical interfaces by their mac addresses # Start eth0 # Configuring eth0 (00:E0:81:30:A6:44) if ifconfig -a | grep -i 00:E0:81:30:A6:44 then IFNAME=$(ifconfig -a | grep -i '00:E0:81:30:A6:44' | cut -d " " -f 1) echo "network --device=$IFNAME --bootproto=static --ip=128.40.5.201 --netmask=255.255.255.0 --gateway=128.40.5.245 --nameserver=144.82.100.1 --hostname=auth1.theory.phys.ucl.ac.uk" >> /tmp/pre_install_network_config fi + ifconfig -a + grep -i 00:E0:81:30:A6:44 eth0 Link encap:Ethernet HWaddr 00:E0:81:30:A6:44 ifconfig -a | grep -i '00:E0:81:30:A6:44' | cut -d " " -f 1) ifconfig -a | grep -i '00:E0:81:30:A6:44' | cut -d " " -f 1 ++ ifconfig -a ++ grep -i 00:E0:81:30:A6:44 ++ cut -d ' ' -f 1 + IFNAME=eth0 + echo 'network --device=eth0 --bootproto=static --ip=128.40.5.201 --netmask=255.255.255.0 --gateway=128.40.5.245 --nameserver=144.82.100.1 --hostname=auth1.theory.phys.ucl.ac.uk' # End pre_install_network_config generated code # If the machine we're reinstalling currently has host ssh keys # somewhere on disk, save them and reinstall them # Nifty trick to restore keys without using a nochroot %post echo "Saving keys..." > /dev/ttyS0 + echo 'Saving keys...' SEARCHDIR=/etc/ssh + SEARCHDIR=/etc/ssh TEMPDIR=ssh + TEMPDIR=ssh PATTERN=ssh_host_ + PATTERN=ssh_host_ keys_found=no + keys_found=no # /var could be a separate partition SHORTDIR=${SEARCHDIR#/var} + SHORTDIR=/etc/ssh if [ $SHORTDIR = $SEARCHDIR ]; then SHORTDIR='' fi + '[' /etc/ssh = /etc/ssh ']' + SHORTDIR= insmod /lib/jbd.o + insmod /lib/jbd.o insmod: can't read '/lib/jbd.o': No such file or directory insmod /lib/ext3.o + insmod /lib/ext3.o insmod: can't read '/lib/ext3.o': No such file or directory mkdir -p /tmp/$TEMPDIR + mkdir -p /tmp/ssh function findkeys { for disk in $DISKS; do name=$(basename $disk) tmpdir=$(mktemp -d $name.XXXXXX) mkdir -p /tmp/$tmpdir mount $disk /tmp/$tmpdir if [ $? -ne 0 ]; then # Skip to the next partition if the mount fails rm -rf /tmp/$tmpdir continue fi # Copy current host keys out to be reused if [ -d /tmp/$tmpdir$SEARCHDIR ]; then cp -a /tmp/$tmpdir$SEARCHDIR/${PATTERN}* /tmp/$TEMPDIR keys_found="yes" umount /tmp/$tmpdir rm -r /tmp/$tmpdir break elif [ -n "$SHORTDIR" ] && [ -d /tmp/$tmpdir$SHORTDIR ]; then cp -a /tmp/$tmpdir$SHORTDIR/${PATTERN}* /tmp/$TEMPDIR keys_found="yes" umount /tmp/$tmpdir rm -r /tmp/$tmpdir break fi umount /tmp/$tmpdir rm -r /tmp/$tmpdir done } DISKS=$(awk '{if ($NF ~ "^[a-zA-Z].*[0-9]$" && $NF !~ "c[0-9]+d[0-9]+$" && $NF !~ "^loop.*") print "/dev/"$NF}' /proc/partitions) awk '{if ($NF ~ "^[a-zA-Z].*[0-9]$" && $NF !~ "c[0-9]+d[0-9]+$" && $NF !~ "^loop.*") print "/dev/"$NF}' /proc/partitions) awk '{if ($NF ~ "^[a-zA-Z].*[0-9]$" && $NF !~ "c[0-9]+d[0-9]+$" && $NF !~ "^loop.*") print "/dev/"$NF}' /proc/partitions ++ awk '{if ($NF ~ "^[a-zA-Z].*[0-9]$" && $NF !~ "c[0-9]+d[0-9]+$" && $NF !~ "^loop.*") print "/dev/"$NF}' /proc/partitions + DISKS='/dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb1 /dev/sdb2 /dev/sdb3' # In the awk line above we want to make list of partitions, but not devices/controllers # cciss raid controllers have partitions like /dev/cciss/cNdMpL, where N,M,L - some digits, we want to make sure 'pL' is there # No need to scan loopback niether. # Try to find the keys on ordinary partitions findkeys + findkeys + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/sda1 + name=sda1 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d sda1.XXXXXX + tmpdir=sda1.1ua6hC + mkdir -p /tmp/sda1.1ua6hC + mount /dev/sda1 /tmp/sda1.1ua6hC mount: unknown filesystem type 'linux_raid_member' + '[' 32 -ne 0 ']' + rm -rf /tmp/sda1.1ua6hC + continue + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/sda2 + name=sda2 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d sda2.XXXXXX + tmpdir=sda2.opgHeO + mkdir -p /tmp/sda2.opgHeO + mount /dev/sda2 /tmp/sda2.opgHeO mount: unknown filesystem type 'linux_raid_member' + '[' 32 -ne 0 ']' + rm -rf /tmp/sda2.opgHeO + continue + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/sda3 + name=sda3 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d sda3.XXXXXX + tmpdir=sda3.7wIlJR + mkdir -p /tmp/sda3.7wIlJR + mount /dev/sda3 /tmp/sda3.7wIlJR mount: unknown filesystem type 'linux_raid_member' + '[' 32 -ne 0 ']' + rm -rf /tmp/sda3.7wIlJR + continue + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/sdb1 + name=sdb1 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d sdb1.XXXXXX + tmpdir=sdb1.4dVbct + mkdir -p /tmp/sdb1.4dVbct + mount /dev/sdb1 /tmp/sdb1.4dVbct mount: unknown filesystem type 'linux_raid_member' + '[' 32 -ne 0 ']' + rm -rf /tmp/sdb1.4dVbct + continue + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/sdb2 + name=sdb2 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d sdb2.XXXXXX + tmpdir=sdb2.hH4w6q + mkdir -p /tmp/sdb2.hH4w6q + mount /dev/sdb2 /tmp/sdb2.hH4w6q mount: unknown filesystem type 'linux_raid_member' + '[' 32 -ne 0 ']' + rm -rf /tmp/sdb2.hH4w6q + continue + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/sdb3 + name=sdb3 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d sdb3.XXXXXX + tmpdir=sdb3.sqMInh + mkdir -p /tmp/sdb3.sqMInh + mount /dev/sdb3 /tmp/sdb3.sqMInh mount: unknown filesystem type 'linux_raid_member' + '[' 32 -ne 0 ']' + rm -rf /tmp/sdb3.sqMInh + continue # Try software RAID if [ "$keys_found" = "no" ]; then if mdadm -As; then DISKS=$(awk '/md/{print "/dev/"$1}' /proc/mdstat) findkeys fi fi + '[' no = no ']' + mdadm -As mdadm: /dev/md/1 has been started with 2 drives. mdadm: /dev/md/0 has been started with 2 drives. mdadm: /dev/md/2 has been started with 2 drives. awk '/md/{print "/dev/"$1}' /proc/mdstat) awk '/md/{print "/dev/"$1}' /proc/mdstat ++ awk '/md/{print "/dev/"$1}' /proc/mdstat + DISKS='/dev/md2 /dev/md0 /dev/md1' + findkeys + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/md2 + name=md2 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d md2.XXXXXX + tmpdir=md2.KU252P + mkdir -p /tmp/md2.KU252P + mount /dev/md2 /tmp/md2.KU252P /dev/md2 looks like swapspace - not mounted mount: you must specify the filesystem type + '[' 32 -ne 0 ']' + rm -rf /tmp/md2.KU252P + continue + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/md0 + name=md0 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d md0.XXXXXX + tmpdir=md0.dmfhJB + mkdir -p /tmp/md0.dmfhJB + mount /dev/md0 /tmp/md0.dmfhJB + '[' 0 -ne 0 ']' + '[' -d /tmp/md0.dmfhJB/etc/ssh ']' + '[' -n '' ']' + umount /tmp/md0.dmfhJB + rm -r /tmp/md0.dmfhJB + for disk in '$DISKS' basename $disk) basename $disk ++ basename /dev/md1 + name=md1 mktemp -d $name.XXXXXX) mktemp -d $name.XXXXXX ++ mktemp -d md1.XXXXXX + tmpdir=md1.vGDHcZ + mkdir -p /tmp/md1.vGDHcZ + mount /dev/md1 /tmp/md1.vGDHcZ + '[' 0 -ne 0 ']' + '[' -d /tmp/md1.vGDHcZ/etc/ssh ']' + cp -a /tmp/md1.vGDHcZ/etc/ssh/ssh_host_dsa_key /tmp/md1.vGDHcZ/etc/ssh/ssh_host_dsa_key.pub /tmp/md1.vGDHcZ/etc/ssh/ssh_host_key /tmp/md1.vGDHcZ/etc/ssh/ssh_host_key.pub /tmp/md1.vGDHcZ/etc/ssh/ssh_host_rsa_key /tmp/md1.vGDHcZ/etc/ssh/ssh_host_rsa_key.pub /tmp/ssh + keys_found=yes + umount /tmp/md1.vGDHcZ + rm -r /tmp/md1.vGDHcZ + break # Try LVM if that didn't work if [ "$keys_found" = "no" ]; then lvm lvmdiskscan vgs=$(lvm vgs | tail -n +2 | awk '{ print $1 }') for vg in $vgs; do # Activate any VG we found lvm vgchange -ay $vg done DISKS=$(lvm lvs | tail -n +2 | awk '{ print "/dev/" $2 "/" $1 }') findkeys # And clean up.. for vg in $vgs; do lvm vgchange -an $vg done fi + '[' yes = no ']' # Loop until the corresponding rpm is installed if [ "$keys_found" = "yes" ]; then while : ; do sleep 10 if [ -d /mnt/sysimage$SEARCHDIR ] ; then cp -af /tmp/$TEMPDIR/${PATTERN}* /mnt/sysimage$SEARCHDIR if [ -e "/sbin/restorecon"]; then /sbin/restorecon -r /etc/ssh fi logger "keys copied to newly installed system" break fi done & fi + '[' yes = yes ']' find /dev -name md[0-9]* -exec umount '{}' \; + find /dev -name md0.dmfhJB md1.vGDHcZ md2.KU252P -exec umount '{}' ';' + sleep 10 find: paths must precede expression: md1.vGDHcZ Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] find /dev -name md[0-9]* -exec mdadm -S '{}' \; + find /dev -name md0.dmfhJB md1.vGDHcZ md2.KU252P -exec mdadm -S '{}' ';' find: paths must precede expression: md1.vGDHcZ Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] rm -rf /dev/md* + rm -rf /dev/md /dev/md0 /dev/md1 /dev/md2 # find /dev -name md[0-9]* -exec mdadm --zero-superblock --force '{}' \; # Clear superblocks to prevent Anaconda from erroring out - clearpart doesn't seem to do this for disk in /dev/sda /dev/sdb ; do for partition in $(parted -s $disk print|awk '/^ / {print $1}') ; do mdadm --zero-superblock --force ${disk}${partition} # partition size in 512 byte sectors size=`blockdev --getsz ${disk}${partition}` dd if=/dev/zero of=${disk}${partition} bs=512 count=2048 dd if=/dev/zero of=${disk}${partition} seek=$((${size} - 2048)) bs=512 count=2048 done size=`blockdev --getsz ${disk}${partition}` dd if=/dev/zero of=${disk} bs=512 count=2048 dd if=/dev/zero of=${disk} seek=$((${size} - 2048)) bs=512 count=2048 done + for disk in /dev/sda /dev/sdb parted -s $disk print|awk '/^ / {print $1}') parted -s $disk print|awk '/^ / {print $1}') parted -s $disk print|awk '/^ / {print $1}' ++ parted -s /dev/sda print ++ awk '/^ / {print $1}' + for partition in '$(parted -s $disk print|awk '\''/^ / {print $1}'\'')' + mdadm --zero-superblock --force /dev/sda1 blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sda1 + size=8388608 + dd if=/dev/zero of=/dev/sda1 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0970049 s, 10.8 MB/s + dd if=/dev/zero of=/dev/sda1 seek=8386560 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0538673 s, 19.5 MB/s + for partition in '$(parted -s $disk print|awk '\''/^ / {print $1}'\'')' + mdadm --zero-superblock --force /dev/sda2 blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sda2 + size=2097152 + dd if=/dev/zero of=/dev/sda2 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0995654 s, 10.5 MB/s + dd if=/dev/zero of=/dev/sda2 seek=2095104 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0569205 s, 18.4 MB/s + for partition in '$(parted -s $disk print|awk '\''/^ / {print $1}'\'')' + mdadm --zero-superblock --force /dev/sda3 blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sda3 + size=145813504 + dd if=/dev/zero of=/dev/sda3 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.103865 s, 10.1 MB/s + dd if=/dev/zero of=/dev/sda3 seek=145811456 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0645841 s, 16.2 MB/s blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sda3 + size=145813504 + dd if=/dev/zero of=/dev/sda bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0576471 s, 18.2 MB/s + dd if=/dev/zero of=/dev/sda seek=145811456 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0728084 s, 14.4 MB/s + for disk in /dev/sda /dev/sdb parted -s $disk print|awk '/^ / {print $1}') parted -s $disk print|awk '/^ / {print $1}') parted -s $disk print|awk '/^ / {print $1}' ++ parted -s /dev/sdb print ++ awk '/^ / {print $1}' + for partition in '$(parted -s $disk print|awk '\''/^ / {print $1}'\'')' + mdadm --zero-superblock --force /dev/sdb1 blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sdb1 + size=8388608 + dd if=/dev/zero of=/dev/sdb1 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0680561 s, 15.4 MB/s + dd if=/dev/zero of=/dev/sdb1 seek=8386560 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0547705 s, 19.1 MB/s + for partition in '$(parted -s $disk print|awk '\''/^ / {print $1}'\'')' + mdadm --zero-superblock --force /dev/sdb2 blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sdb2 + size=2097152 + dd if=/dev/zero of=/dev/sdb2 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0645462 s, 16.2 MB/s + dd if=/dev/zero of=/dev/sdb2 seek=2095104 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0776991 s, 13.5 MB/s + for partition in '$(parted -s $disk print|awk '\''/^ / {print $1}'\'')' + mdadm --zero-superblock --force /dev/sdb3 blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sdb3 + size=145813504 + dd if=/dev/zero of=/dev/sdb3 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.12223 s, 8.6 MB/s + dd if=/dev/zero of=/dev/sdb3 seek=145811456 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0848764 s, 12.4 MB/s blockdev --getsz ${disk}${partition} ++ blockdev --getsz /dev/sdb3 + size=145813504 + dd if=/dev/zero of=/dev/sdb bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0667346 s, 15.7 MB/s + dd if=/dev/zero of=/dev/sdb seek=145811456 bs=512 count=2048 2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB) copied, 0.0687322 s, 15.3 MB/s # Enable installation monitoring wget -O /tmp/anamon "http://128.40.5.17/cobbler/aux/anamon" + wget -O /tmp/anamon http://128.40.5.17/cobbler/aux/anamon --2011-06-03 12:18:05-- http://128.40.5.17/cobbler/aux/anamon Connecting to 128.40.5.17:80... connected. HTTP request sent, awaiting response... 200 OK Length: 8627 (8.4K) [text/plain] Saving to: `/tmp/anamon' 0K ........ 100% 71.3M=0s 2011-06-03 12:18:05 (71.3 MB/s) - `/tmp/anamon' saved [8627/8627] python /tmp/anamon --name "auth1" --server "128.40.5.17" --port "80" + python /tmp/anamon --name auth1 --server 128.40.5.17 --port 80 + '[' -d /mnt/sysimage/root ']' + : + sleep 10 + '[' -d /mnt/sysimage/etc/ssh ']' + : + sleep 10 + '[' -d /mnt/sysimage/root ']' + : + sleep 10 + '[' -d /mnt/sysimage/etc/ssh ']' + : + sleep 10 + '[' -d /mnt/sysimage/root ']' + : + sleep 10 + '[' -d /mnt/sysimage/etc/ssh ']' + : + sleep 10 + '[' -d /mnt/sysimage/root ']' + : + sleep 10 + '[' -d /mnt/sysimage/etc/ssh ']' + : + sleep 10 + '[' -d /mnt/sysimage/root ']' + : + sleep 10 + '[' -d /mnt/sysimage/etc/ssh ']' + : + sleep 10