1#!/bin/sh 2MDEV_AUTOMOUNT=y 3MDEV_AUTOMOUNT_ROOT=/run/media 4[ -f /etc/default/mdev ] && . /etc/default/mdev 5if [ "${MDEV_AUTOMOUNT}" = "n" ] ; then 6 exit 0 7fi 8 9case "$ACTION" in 10 add|"") 11 ACTION="add" 12 # check if already mounted 13 if grep -q "^/dev/${MDEV} " /proc/mounts ; then 14 # Already mounted 15 exit 0 16 fi 17 DEVBASE=`expr substr $MDEV 1 3` 18 if [ "${DEVBASE}" = "mmc" ] ; then 19 DEVBASE=`expr substr $MDEV 1 7` 20 fi 21 # check for "please don't mount it" file 22 if [ -f "/dev/nomount.${DEVBASE}" ] ; then 23 # blocked 24 exit 0 25 fi 26 # check for full-disk partition 27 if [ "${DEVBASE}" = "${MDEV}" ] ; then 28 if [ -f /sys/block/${DEVBASE}/${DEVBASE}*1/partition ] ; then 29 # Partition detected, just quit 30 exit 0 31 fi 32 if [ ! -f /sys/block/${DEVBASE}/size ] ; then 33 # No size at all 34 exit 0 35 fi 36 if [ "`cat /sys/block/${DEVBASE}/size`" = "0" ] ; then 37 # empty device, bail out 38 exit 0 39 fi 40 fi 41 # first allow fstab to determine the mountpoint 42 if ! mount /dev/$MDEV > /dev/null 2>&1 43 then 44 MOUNTPOINT="${MDEV_AUTOMOUNT_ROOT}/$MDEV" 45 mkdir -p "$MOUNTPOINT" 46 mount -t auto /dev/$MDEV "$MOUNTPOINT" || rmdir "$MOUNTPOINT" 47 fi 48 ;; 49 remove) 50 MOUNTPOINT=`grep "^/dev/$MDEV\s" /proc/mounts | cut -d' ' -f 2` 51 if [ ! -z "$MOUNTPOINT" ] 52 then 53 umount "$MOUNTPOINT" 54 rmdir "$MOUNTPOINT" 55 else 56 umount /dev/$MDEV 57 fi 58 ;; 59 *) 60 # Unexpected keyword 61 exit 1 62 ;; 63esac 64