1 #!/bin/sh 2 # Make /etc/fstab standard compliant. 3 # M.Weller (eowmob (at] exp-math.uni-essen.de) 13.11.1994. 4 # This script is public domain. Still if only slightly 5 # modified a credit to me might be nice. 6 7 ROOT_PASS=1 # Pass for root file system 8 NON_ROOT_PASS=2 # Pass for non root file systems 9 DEF_FLAGS="defaults" # Default filesysflags 10 DEF_DUMP=0 # Default dumpfreq. 11 12 while read LINE 13 do 14 set -- $LINE 15 if [ $# != 0 ] 16 then 17 case $1 in 18 \#* | !* ) 19 echo "$LINE" 20 # Actually there are no comments allowed in /etc/fstab 21 echo "Warning: comment in /etc/fstab detected." >&2 22 echo "Please remove it by hand." >&2 23 ;; 24 * ) 25 if [ $# -gt 6 ] || [ $# -lt 3 ] 26 then 27 echo "Don't have a clue about \"$LINE\"." >&2 28 echo "$LINE" 29 else 30 case $2 in 31 / ) 32 PASS=$ROOT_PASS 33 ;; 34 none ) 35 PASS=0 36 ;; 37 * ) 38 PASS=$NON_ROOT_PASS 39 ;; 40 esac 41 DUMP=$DEF_DUMP 42 case $3 in 43 ignore | iso9660 | msdos | hpfs | sysv | \ 44 xenix | coherent | nfs | proc | sw | swap ) 45 DUMP=0; 46 PASS=0; 47 ;; 48 esac 49 case $# in 50 3 ) 51 echo "$LINE $DEF_FLAGS $DUMP $PASS" 52 ;; 53 4 ) 54 echo "$LINE $DUMP $PASS" 55 ;; 56 5 ) 57 echo "$LINE $PASS" 58 ;; 59 6) 60 echo "$LINE" 61 ;; 62 esac 63 fi 64 ;; 65 esac 66 else 67 echo "Warning: One empty line removed." >&2 68 fi 69 done </etc/fstab >/tmp/newfstab.$$ 70 mv -f /etc/fstab /etc/fstab.bak 71 mv -f /tmp/newfstab.$$ /etc/fstab 72 if [ $? != 0 ] 73 then 74 echo "Installation of patched /etc/fstab failed." 75 echo "It would have been:" 76 cat /tmp/newfstab.$$ 77 rm -f /tmp/newfstab.$$ 78 fi 79