I've now tracked down exactly where its hanging and I still cant figure it out.
Near the end of the /etc/init.d/boot script the second stage of the installation process is invoked with the script /usr/lib/YaST2/startup/YaST2.Second-Stage.
This file contains the following section of code:
Code:
for i in \
/usr/share/info \
/usr/man /usr/share/man \
/usr/X11R6/man \
/usr/openwin/man \
/usr/lib/perl5/man \
/usr/lib/teTeX/man \
/usr/local/man
do
if [ -d $i ] ; then
find $i -follow -type d 2> /dev/null | xargs touch 2> /dev/null
fi
done
It hangs when the find command is searching the /usr/share/man directory.
At first I thought this might be caused by a softlink causing a directory loop so I modified the code by adding an extra find command that simply printed out the directories it found. This command hung when it reached /usr/share/man/man3 directory.
I next thought it might be some disk corruption so I booted the "rescue system" option from the CD and fsck'ed the disk.
I then mounted the disk on /mnt and ran "chroot /mnt bash". Running the same find commands did not result in any problems. In fact I tried running the YaST2.Second-Stage script and it ran correctly and even came up with the next stage in installation process.
What this all boils down to is that "find /usr/share/man -follow -type d" hangs when it runs as part of the boot process and completes okay when it isn't. Does anybody have any clue as to why this happens?