#!/bin/sh # NOTE: Ported to altboot by CoreDump # Based on the original turnup helper script. # # All parts by Matthias 'CoreDump' Hentges are hereby placed # under the terms of the GPL # # boot from the hard disk partition "$1" (which # must be given) using options from the rest of # the command line. # M_TITLE="Boot USB Storage" test "$USB_HOST_AVAILABLE" = "yes" || exit 0 run_module() { x=x } case "$1" in title) echo "$M_TITLE" ; exit 0 ;; run) run_module "$2";; esac nslu2_feeback heartbeat bootdev_data="$*" bootdev_mode="`echo "$bootdev_data" | awk '{print $1}'`" bootdev_name="`echo "$bootdev_data" | awk '{print $2}'`" bootdev_uuid="`echo "$bootdev_data" | awk '{print $3}'`" # Use the standard init path (see /etc/init.d/rcS) export PATH=/sbin:/bin:/usr/sbin:/usr/bin # # Load the helper functions . /etc/default/functions . /etc/default/modulefunctions # leds boot system # if test -n "$1" then device="$bootdev_name" UUID="$bootdev_uuid" shift # proc is needed for UUID mount and module load mount -t proc proc /proc # load USB & SCSI storage modules (/proc required!) echo "boot: loading modules required for disk boot" loaddiskmods # waiting for disk (FIXME) sleep=6 test "$sleep" -gt 0 && sleep "$sleep" # # fire the boot echo "boot: rootfs: mount $* $device [$UUID]" # # Mount read-write because before exec'ing init # If a UUID is given (in the environment) this # is used in preference to the device, but if # the UUID mount fails a standard device mount # is attempted. if test -n "$UUID" && mount "$@" -U "$UUID" /mnt || mount "$@" "$device" /mnt then # checkmount checks for sh, chroot, init # and /mnt (i.e. /mnt/mnt in this case) if checkmount /mnt then # pivot to /initrd if available, else /mnt cd / if test -d /mnt/initrd then swivel mnt initrd else swivel mnt mnt fi # swivel failed fi # Failure: unmount the partition umount /mnt fi fi # fallback - use the flash boot nslu2_feeback failure exec /boot/flash