# look through all the cdroms for the boot cd
mountBootDev()
{
for bootdev in $*; do
	echo -n "$bootdev "
	mount -n -o ro -t iso9660 /dev/$bootdev /mnt 2> /dev/null || \
	mount -o ro -t iso9660 /dev/$bootdev /mnt 2>/dev/null
	if [ -f /mnt/rd-base.img.bz2 ]; then
		echo "."
		cdbootdev=$bootdev
		return
	else
		umount /dev/$bootdev
	fi
done
}

mount -n -t proc proc /proc  2> /dev/null || mount -t proc proc /proc

echo "Wait a few seconds to ensure all modules are activated and ready..."
sleep 5

# look through all the ide devices for cdroms.
cddev="$cddev "`cd /dev; echo scd*`
cddev="$cddev "`cd /dev; echo sr*`
for idedev in `cd /proc/ide; echo hd?`; do
	grep "cdrom" /proc/ide/$idedev/media > /dev/null && cddev="$cddev $idedev"
done
cddev="$cddev "`cd /dev; echo cdroms/*`
cddev="$cddev "`cd /dev; echo ubd*`

umount /proc
mountBootDev $cddev

if [ "X$cdbootdev" != "X" ]; then 
	echo I believe the CD-ROM device is /dev/$cdbootdev.
	# save the CD device for remounting later
	if [ -b /dev/ram2 ]; then
		echo /dev/$cdbootdev > /dev/ram2
	elif [ -b /dev/rd/2 ]; then
		echo /dev/$cdbootdev > /dev/rd/2
	else
		echo 'Can not find a RAM disk device /dev/ram2 or /dev/rd/2!'
		echo I will not be able to determine CD-ROM device.
	fi
else
	echo "I could not find the CD!  It is not one of \"$cddev\"."
	echo Being desparate, I will try to open a /bin/sh.
	/bin/sh
fi
