#!/bin/sh # part of the gn*nix conspiracy http://gnnix.org # Copyright (C) Linus Sphinx 2004 # only god can make a tree but you can mount one # # usage: gnxmount gnxmountall() { cd / mnt=${1:-"/mnt/root"} inf=${2:-"/tmp/fstab"} # up to 10 levels deep for num in 0 1 2 3 4 5 6 7 8 9 do grep -v -E '^#+' $inf | grep -E '^\/dev\/' | grep -E 'ext2|ext3|xfs|reiserfs|jfs' \ | while read i do set $i dv=$1 pt=$2 tp=$3 lv=`echo $pt | sed 's/\// /g' | wc -w` lvl=${lv##* } if [ ! -d ${mnt}${pt} ]; then mkdir -p ${mnt}${pt} fi if [ "$num" = "$lvl" ]; then mount -t ${tp} ${dv} ${mnt}${pt} >> /tmp/log if [ "$?" != "0" ]; then echo "mount -t ${tp} ${dv} ${mnt}${pt} failed!" >> /tmp/log fi fi done done } gnxmountall $1 $2