79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
| #!/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
 |