fs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/sh
  2. #INIT 10
  3. [[ $1 = autostart ]] || exit 0
  4. # activate swap
  5. [ -x /sbin/swapon ] && {
  6. grep swap /etc/fstab >/dev/null 2>&1
  7. if [ $? -eq 0 ];then
  8. logger -t 'SWAP' "Activating swap"
  9. swapon -a
  10. fi
  11. }
  12. # activate any logical volumes
  13. [ -x /usr/sbin/lvm ] && {
  14. logger -t 'LVM' "Activating LVM volumes"
  15. lvm vgscan
  16. lvm vgchange -ay
  17. }
  18. # mount local filesystems
  19. fstypes="ext2 ext3 ext4 xfs vfat ntfs ntfs-3g"
  20. for fs in $fstypes; do
  21. procfs=$fs
  22. if [ $fs = "ntfs-3g" ];then
  23. procfs=fuse
  24. fi
  25. disks=$(grep -v "^#" /etc/fstab|grep "${fs}[[:blank:]]"|awk '{ print $1 }')
  26. for disk in $disks; do
  27. logger -t 'Filesystem' "Found $disk with filesystem $fs"
  28. mnt=$(grep -v "^#" /etc/fstab|grep "${disk}[[:blank:]]"|awk '{ print $2 }')
  29. grep $procfs /proc/filesystems >/dev/null 2>&1
  30. if [ $? -eq 0 ];then
  31. [ -x /usr/sbin/fsck.$fs ] && {
  32. logger -t 'Filesystem' "checking $fs filesystem on $disk"
  33. fsck -p $disk >/dev/null 2>&1
  34. }
  35. mkdir -p $mnt > /dev/null 2>&1
  36. if [ -b $disk ]; then
  37. logger -t 'Filesystem' "Mounting $disk to $mnt"
  38. mount $disk
  39. else
  40. logger -t 'Filesystem' "Skipping mounting $disk, device file missing"
  41. fi
  42. else
  43. logger -t 'Filesystem' "No $procfs filesystem in kernel"
  44. fi
  45. done
  46. done
  47. exit 0