12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/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}[[:blank:]]"
- 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 $disk to $mnt"
- mount $mnt 2>> /tmp/mount.err
- if [ $? -ne 0 ]; then
- logger -t mdev "Mounting $disk failed with $?"
- fi
- else
- logger -t mdev "Required filesystem $procfs not available"
- fi
- }
- case "${ACTION}" in
- add)
- logger -t mdev "Device ${MDEV} added to the system"
- adk_check
- adk_fsck
- adk_mount
- ;;
- esac
- exit 0
|