I've implemented a patch now that will translate LABEL and UUID from /etc/fstab into a proper device string. Joey, can you please review it. (FWIW, it's tested and seems to work for me.)
Index: nslu2 =================================================================== --- nslu2 (revision 98) +++ nslu2 (working copy) @@ -67,7 +67,41 @@ # Record the root filesystem device for use during boot, since the slug's # bootloader is hardcoded to use roo=/dev/ram. rootdev=$(egrep '^[^ ]*[ ]*/[ ]' /etc/fstab | awk '{print $1}') || true -if [ -z "$rootdev" ]; then + +# Translate LABEL and UUID entries into a proper device name. +if echo "$rootdev" | grep -q "="; then + a=$(echo "$rootdev" | cut -d "=" -f 1) + b=$(echo "$rootdev" | cut -d "=" -f 2) + case "$a" in + LABEL) + # Not all labels show up in /dev/disk/by-label: + # e.g. LABEL=/ doesn't. + found=0 + if [ -e /dev/disk/by-label ]; then + for i in $(ls -1 /dev/disk/by-label/); do + [ "$i" = "$b" ] && found=1 + done + fi + if [ $found -eq 0 ]; then + echo "/etc/fstab parse error; $rootdev not supported or found" >&2 + rootdev=/dev/sda1 + pause_error + else + rootdev="/dev/disk/by-label/$b" + fi + ;; + UUID) + rootdev=/dev/disk/by-uuid/$b + ;; + *) + echo "/etc/fstab parse error; cannot recognize root $rootdev" >&2 + rootdev=/dev/sda1 + pause_error + ;; + esac +fi + +if [ ! -e "$rootdev" ]; then rootdev=/dev/sda1 echo "Warning: /etc/fstab parse error; guessing that the root device is $rootdev" >&2 fi -- Martin Michlmayr http://www.cyrius.com/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]