fs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/sh
  2. # skip root disk here, will be handled in /etc/init.d/fs
  3. rootdisk=$(readlink /dev/root)
  4. if [ "x${rootdisk}" = "x${MDEV}" ];then
  5. exit 0
  6. fi
  7. uuid=$(blkid /dev/${MDEV} | sed -n '/^.*UUID="\([^"]*\)".*$/s//\1/p')
  8. if [ -z $uuid ];then
  9. fs=$(grep "^/dev/${MDEV}[[:blank:]]" /etc/fstab | awk '{ print $3 }')
  10. mnt=$(grep "^/dev/${MDEV}[[:blank:]]" /etc/fstab | awk '{ print $2 }')
  11. disk="${MDEV}"
  12. else
  13. fs=$(grep "^/dev/${MDEV}[[:blank:]]\|^UUID=$uuid" /etc/fstab | awk '{ print $3 }')
  14. mnt=$(grep "^/dev/${MDEV}[[:blank:]]\|^UUID=$uuid" /etc/fstab | awk '{ print $2 }')
  15. disk="${MDEV} (${uuid})"
  16. fi
  17. if [ -z $fs ];then
  18. logger "Disk $disk not registered in /etc/fstab"
  19. exit 0
  20. fi
  21. procfs=$fs
  22. if [ $fs = "ntfs-3g" ];then
  23. procfs=fuse
  24. fi
  25. # filesystem check
  26. adk_fsck() {
  27. [ -x /usr/sbin/fsck.$fs ] && {
  28. logger -s "Checking $fs filesystem on $disk"
  29. fsck -p -t $fs ${MDEV}
  30. }
  31. }
  32. # mount filesystem
  33. adk_mount() {
  34. mkdir -p $mnt >/dev/null 2>&1
  35. grep $procfs /proc/filesystems >/dev/null 2>&1
  36. if [ $? -eq 0 ];then
  37. logger -s "Mounting $disk to $mnt"
  38. mount $mnt
  39. if [ $? -ne 0 ];then
  40. logger -s "Mounting $disk failed"
  41. fi
  42. else
  43. logger -s "Required filesystem $procfs not available"
  44. fi
  45. }
  46. case "${ACTION}" in
  47. add)
  48. logger "Device ${MDEV} added to the system"
  49. adk_fsck
  50. adk_mount
  51. ;;
  52. esac
  53. exit 0