home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / lib / udev / mount.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2006-11-29  |  2KB  |  75 lines

  1. #! /bin/bash
  2. #
  3. # Copyright (c) 2002-2006 SuSE Linux AG Nuernberg, Germany.
  4. # All rights reserved.
  5. #
  6. # This program is free software; you can redistribute it and/or modify it under
  7. # the terms of the GNU General Public License as published by the Free Software
  8. # Foundation; either version 2 of the License, or (at your option) any later
  9. # version.
  10. #
  11. # This program is distributed in the hope that it will be useful, but WITHOUT
  12. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  13. # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  14. # details.
  15. #
  16. # You should have received a copy of the GNU General Public License along with
  17. # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  18. # Place, Suite 330, Boston, MA 02111-1307 USA
  19. #
  20. # Author: Christian Zoz <zoz@suse.de>
  21. #         Stefan Scheler <sscheler@suse.de>
  22. #
  23. # $Id: $
  24. #
  25.  
  26. NODES="$DEVNAME $DEVLINKS"
  27.  
  28. # scan /etc/fstab
  29. HOTPLUG="no" 
  30. while read dn mp fs opts dump fsck x; do
  31.     case $opts in
  32.         *hotplug*)
  33.             for n in $NODES; do
  34.                 if [ "$n" == "$dn" ] ; then
  35.                     HOTPLUG="yes"
  36.                 fi
  37.             done
  38.             ;;
  39. esac
  40. done < /etc/fstab
  41.  
  42. # make sure to touch only hotplug devices
  43. if [ "$HOTPLUG" == "no" ]; then
  44.     exit 0
  45. fi
  46.  
  47. . /etc/sysconfig/hardware/scripts/functions
  48.  
  49. # fsck options:
  50. # -M : respect fs_pass_no, emulate mount
  51. # -a : auto repair
  52. MESSAGE="`fsck -M -a $DEVNAME 2>&1`"
  53. RET=$?
  54. case $RET in
  55.     0|1) : ;;
  56.     2|3) 
  57.         err_mesg $MESSAGE 
  58.         err_mesg "Please unplug device '$DEVNAME' and plug it again."
  59.         exit $RET
  60.         ;;
  61.     *) 
  62.         err_mesg $MESSAGE 
  63.         err_mesg "fsck failed on '$DEVNAME'. Please fsck filesystem manually."
  64.         exit $RET
  65.         ;;
  66. esac
  67.  
  68. # mount options:
  69. # -v : be verbose
  70. # -a : respect noauto option
  71. MESSAGE="`mount -av $DEVNAME 2>&1`"
  72. RET=$?
  73. test $? != 0 && err_mesg "Could not mount '$DEVNAME'."
  74. exit $RET
  75.