I've got a number of problems with SLSS autoinstall, ranging from minor to
serious:
1) *minor* Somewhere, somehow, the initial part of the textmode (and prolly
X) installer runs in German. It switched to English as configured once it
has the autoinstall XML file. But it hald reverts to German when installing
the RPMs, as the descriptions are in German. The resulting box is installed
in English OK however.
I'm installing via PXE, and I haven't specified anything on the append line
for language, but even if I specify on it, I still get the same.
2) *serious* I'm installing on servers ranging from HP DL360 G2/G3s up to
possible DL580s (developing on a DL360 G2). The raid controller is detected
and the module loaded fine, but when it comes to allocating the
partitioning, it fails saying "no free space available on /dev/cciss/c0d0".
There will be partitions on there as I've constantly rebuilding testing, but
it shouldn't care as I've specified <use>all</use> for the disk
/dev/cciss/c0d0 (configured in RAID 1 obviously). This is a pretty unhelpful
error message for debugging purposes - where can I suitable logging to tell
me why this fails? I've looked in /var/adm/autoinstall, /var/log/YaST2,
/tmp/YaST2-####/pre-scripts. Where else does stuff get logged?
I've tried a pre-install script hack of dd if=/dev/zero of=/dev/cciss/c0d0
bs=1024 count=1, and it doesn't work when booting with a system that already
has partitions - presumably these must get cached earlier on somewhere (a
bad practice IMHO). But if I abort the installation, or reboot and try
again, nothing is there to get cached, and it half works, which brings me on
to the third problem.
3) *serious* I've got a number of partitions configured, including a fixed
size of swap (I've included my autoinstall file at the end - apologies for
the length). / gets configures as a primary, and I let YaST sort out the
rest, which numbers swap c0d0p9. So from issue 3 above, when it installs
over a blank disk, it successfully creates all the filesystem partitions,
but moans about being unable to create swap with another very unhelpful
error message: "could not set up swap partition /dev/cciss/c0d0p9". Why
should it successfully create everything but swap? It's not a space issue
(they have 18Gb disks), because the "max" setting for /usr/local gobbles up
the space that swap should have taken.
4) *concerning* I install SP3 via a finish script that is called from the
finish script in the autoinstall file as below. However, when I install it,
the kernel it installs hangs on reading the partition table for
/dev/cciss/c0d0. I've narrowed this down to acpi, so I've put acpi=off into
the kernel parameters section on the autoinstall file, but I'm certain that
it shouldn't do that!
Please can anyone help with these, especially the serious ones. I'm sure I
have more, but I can't think of them right now...
Cheers,
Tom
<?xml version="1.0"?>
<!DOCTYPE profile SYSTEM "/usr/share/YaST2/include/autoinstall/profile.dtd">
<profile xmlns="http://www.suse.com/1.0/yast2ns"
xmlns:config="http://www.suse.com/1.0/configns">
<configure>
<users config:type="list">
<user>
<encrypted config:type="boolean">false</encrypted>
foo
<username>root</username>
</user>
</users>
<networking>
<dns>
false
false
<domain>localnet</domain>
<hostname>susedev-lin-01</hostname>
</dns>
<interfaces config:type="list">
<interface>
<device>eth0</device>
<bootproto>dhcp</bootproto>
<startmode>onboot</startmode>
</interface>
<interface>
<device>eth1</device>
<bootproto>static</bootproto>
<broadcast>10.10.10.255</broadcast>
<ipaddr>10.10.10.10</ipaddr>
<netmask>255.255.255.0</netmask>
<network>10.10.10.0</network>
<startmode>onboot</startmode>
</interface>
</interfaces>
<routing>
<routes config:type="list">
<route>
<destination>default</destination>
<device>-</device>
<gateway>10.144.128.1</gateway>
<netmask>-</netmask>
</route>
</routes>
</routing>
</networking>
<scripts>
<chroot-scripts config:type="list">
<script>
<filename>chroot.sh</filename>
<interpreter>shell</interpreter>
<source>
<![CDATA[#this is chroot
#!/bin/sh
# Functions
die() { echo "$@";exit 1; }
# Global Variables
NFS_SERVER=foo
NFS_PATH=/img
NFS_MOUNT_POINT=/a
export NFS_SERVER NFS_PATH NFS_MOUNT_POINT
# Local Variables
BASE=${BASE:-"/mnt"}
# mount up the finish scripts
test -d $NFS_MOUNT_POINT || mkdir $NFS_MOUNT_POINT
test -d $NFS_MOUNT_POINT/suse || \
mount $NFS_SERVER:$NFS_PATH $NFS_MOUNT_POINT || die "couldn't perform NFS
mount"
fin=$NFS_MOUNT_POINT/suse/scripts
# copy the finish scripts
test -d $BASE/fin || mkdir $BASE/fin
cd $BASE/fin && rm *
cp -p $fin/* . 2> /dev/null
# unmount the finish scripts
cd /
umount $NFS_MOUNT_POINT
#end chroot]]>
</source>
</script>
</chroot-scripts>
<post-scripts config:type="list">
<script>
<filename>postinst.sh</filename>
<interpreter>shell</interpreter>
<source>
<![CDATA[#this is postinst
#!/bin/sh
#FAKE=echo
# Functions
die() { echo "$@";exit 1; }
# Global Variables
NFS_SERVER=foo
NFS_PATH=/img
NFS_MOUNT_POINT=/mnt
export NFS_SERVER NFS_PATH NFS_MOUNT_POINT
# Local Variables
# run the finish scripts
cd /fin
echo "params: 1=$1 2=$2 3=$3 4=$4 5=$5"
script_list=${@:-"F*"}
script_list="F*"
for i in $script_list
do
test -x $i || interpreter="sh"
echo "### executing $i"
$FAKE $interpreter ./$i
if [ $? = 10 ]; then
die "argh! cannot continue. see /var/adm/autoinstall/logs/"
fi
unset interpreter
done
cd /
#$FAKE rm -rf /fin
#end postinst]]>
</source>
</script>
<script>
<filename>setrootpw</filename>
<interpreter>shell</interpreter>
<source>
<![CDATA[/usr/bin/perl -pi -e
's#^root::.*$#root:<MDD5Encryption>:::::::\n#' /etc/shadow
exit 0]]>
</source>
</script>
</post-scripts>
<pre-scripts config:type="list">
<script>
<filename>preinst.sh</filename>
<interpreter>shell</interpreter>
<source>
<![CDATA[#this is preinst
dd if=/dev/zero of=/dev/cciss/c0d0 bs=1024 count=1
#end preinst]]>
</source>
</script>
</pre-scripts>
</scripts>
</configure>
<install>
<bootloader>
<location>mbr</location>
grub
/dev/cciss/c0d0
<!-- acpi=off is required or the SP3 kernel hangs on reading the -->
<!-- partition table of the cciss raid device for some reason -->
acpi=off
</bootloader>
<general>
<clock>
<hwclock>UTC</hwclock>
<timezone>Europe/London</timezone>
</clock>
<keyboard>
<keymap>english-uk</keymap>
</keyboard>
<language>en_GB</language>
<mode>
<confirm config:type="boolean">false</confirm>
<forceboot config:type="boolean">false</forceboot>
<reboot config:type="boolean">true</reboot>
</mode>
<mouse>
<id>00_ps2</id>
</mouse>
</general>
<partitioning config:type="list">
<drive>
<device>/dev/cciss/c0d0</device>
<use>all</use>
<partitions config:type="list">
<!-- partition layout for an 18Gb disk -->
<partition>
<filesystem config:type="symbol">ext3</filesystem>
<mount>/</mount>
<size>1g</size>
primary
</partition>
<partition>
<filesystem config:type="symbol">ext3</filesystem>
<mount>/usr</mount>
<size>1g</size>
</partition>
<partition>
<filesystem config:type="symbol">ext3</filesystem>
<mount>/var</mount>
<size>4g</size>
</partition>
<partition>
<filesystem config:type="symbol">ext3</filesystem>
<mount>/home</mount>
<size>2g</size>
</partition>
<partition>
<filesystem config:type="symbol">ext3</filesystem>
<mount>/usr/local</mount>
<!-- "max" means fill a partition to the max available space -->
<size>max</size>
</partition>
<partition>
<filesystem config:type="symbol">ext3</filesystem>
<mount>swap</mount>
<!-- "auto" can be used to calculate the required swap -->
<size>2g</size>
</partition>
</partitions>
</drive>
</partitioning>
<software>
<base>Minimal</base>
<packages config:type="list">
<package>xntp</package>
<package>rcs</package>
<package>cvs</package>
<package>xinetd</package>
<package>tcpdump</package>
<package>tcpd</package>
<package>screen</package>
</packages>
</software>
</install>
</profile>
--
Dr. Tom Davidson RHCE
Unix Engineer
Energis (http://www.energis.com)