#!/sbin/sh set -e set -u MOUNTPOINT="/cdrom" USR='##USR_IMG##' export PATH=/sbin:/usr1/sbin:/usr1/bin exec >/dev/msglog 2>&1 # First, remount / read-write to update /dev mount -o remount / # The sd nodes are not created till you try to access them. echo "Probing for device nodes ..." ls -lR /devices/* >/dev/null devfsadm -C -c disk echo "Mounting /usr image ..." # Now, search removable media for $USR found='no' for dfile in /dev/removable-media/dsk/*s2; do if [ -e "$dfile" ]; then if mount -F hsfs -o ro "$dfile" "${MOUNTPOINT}" then if [ -f "${MOUNTPOINT}/${USR}" ]; then found='yes' break else umount "${MOUNTPOINT}" fi fi fi done if [ "$found" != 'yes' ]; then echo "FATAL: /usr image ($USR) not found" exit 1 fi lofiadm -a "${MOUNTPOINT}/${USR}" >/dev/null & for n in 1 2 3 4 5 6 7; do sleep 1 devfsadm || true if [ -e /dev/lofi/1 ]; then break fi done if [ ! -e /dev/lofi/1 ]; then echo "FATAL: Loopback device not created" umount /cdrom exit 1 fi mount -F hsfs -o ro /dev/lofi/1 /usr2 rm -f /usr ln -sf /usr2 /usr exit 0