| #!/bin/sh | |
| # Make /etc/fstab standard compliant. | |
| # M.Weller (eowmob@exp-math.uni-essen.de) 13.11.1994. | |
| # This script is public domain. Still if only slightly | |
| # modified a credit to me might be nice. | |
| ROOT_PASS=1 # Pass for root file system | |
| NON_ROOT_PASS=2 # Pass for non root file systems | |
| DEF_FLAGS="defaults" # Default filesysflags | |
| DEF_DUMP=0 # Default dumpfreq. | |
| while read LINE | |
| do | |
| set -- $LINE | |
| if [ $# != 0 ] | |
| then | |
| case $1 in | |
| \#* | !* ) | |
| echo "$LINE" | |
| # Actually there are no comments allowed in /etc/fstab | |
| echo "Warning: comment in /etc/fstab detected." >&2 | |
| echo "Please remove it by hand." >&2 | |
| ;; | |
| * ) | |
| if [ $# -gt 6 ] || [ $# -lt 3 ] | |
| then | |
| echo "Don't have a clue about \"$LINE\"." >&2 | |
| echo "$LINE" | |
| else | |
| case $2 in | |
| / ) | |
| PASS=$ROOT_PASS | |
| ;; | |
| none ) | |
| PASS=0 | |
| ;; | |
| * ) | |
| PASS=$NON_ROOT_PASS | |
| ;; | |
| esac | |
| DUMP=$DEF_DUMP | |
| case $3 in | |
| ignore | iso9660 | msdos | hpfs | sysv | \ | |
| xenix | coherent | nfs | proc | sw | swap ) | |
| DUMP=0; | |
| PASS=0; | |
| ;; | |
| esac | |
| case $# in | |
| 3 ) | |
| echo "$LINE $DEF_FLAGS $DUMP $PASS" | |
| ;; | |
| 4 ) | |
| echo "$LINE $DUMP $PASS" | |
| ;; | |
| 5 ) | |
| echo "$LINE $PASS" | |
| ;; | |
| 6) | |
| echo "$LINE" | |
| ;; | |
| esac | |
| fi | |
| ;; | |
| esac | |
| else | |
| echo "Warning: One empty line removed." >&2 | |
| fi | |
| done </etc/fstab >/tmp/newfstab.$$ | |
| mv -f /etc/fstab /etc/fstab.bak | |
| mv -f /tmp/newfstab.$$ /etc/fstab | |
| if [ $? != 0 ] | |
| then | |
| echo "Installation of patched /etc/fstab failed." | |
| echo "It would have been:" | |
| cat /tmp/newfstab.$$ | |
| rm -f /tmp/newfstab.$$ | |
| fi |