#!/bin/sh # skip root disk here, will be handled in /etc/init.d/fs rootdisk=$(readlink /dev/root) if [ "x${rootdisk}" = "x${MDEV}" ];then exit 0 fi uuid=$(blkid /dev/${MDEV} | sed -n '/^.*UUID="\([^"]*\)".*$/s//\1/p') if [ -z $uuid ];then fs=$(grep "^/dev/${MDEV}[[:blank:]]" /etc/fstab | awk '{ print $3 }') mnt=$(grep "^/dev/${MDEV}[[:blank:]]" /etc/fstab | awk '{ print $2 }') disk="${MDEV}" else fs=$(grep "^/dev/${MDEV}[[:blank:]]\|^UUID=$uuid" /etc/fstab | awk '{ print $3 }') mnt=$(grep "^/dev/${MDEV}[[:blank:]]\|^UUID=$uuid" /etc/fstab | awk '{ print $2 }') disk="${MDEV} (${uuid})" fi if [ -z $fs ];then logger -t mdev "Disk $disk not registered in /etc/fstab" exit 0 fi procfs=$fs if [ $fs = "ntfs-3g" ];then procfs=fuse fi # check if already mounted via /etc/init.d/fs adk_check() { mount | grep "${MDEV} " if [ $? -eq 0 ];then logger -t mdev "Filesystem on ${MDEV} already mounted" exit 0 fi } # filesystem check adk_fsck() { [ -x /usr/sbin/fsck.$fs ] && { logger -t mdev "Checking $fs filesystem on ${MDEV}" fsck -p ${MDEV} >/dev/null } } # mount filesystem adk_mount() { mkdir -p $mnt >/dev/null 2>&1 grep $procfs /proc/filesystems >/dev/null 2>&1 if [ $? -eq 0 ];then logger -t mdev "Mounting local filesystems" mount $mnt if [ $? -ne 0 ];then logger -s -t 'Filesystem' "Mounting $disk failed" fi else logger -t mdev "Required filesystem $procfs not available" fi } case "${ACTION}" in add) logger -t mdev "Device ${MDEV} added to the system" add_check adk_fsck adk_mount ;; esac exit 0