summaryrefslogtreecommitdiff
path: root/package/base-files/src/etc/init.d/fs
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-05-22 17:26:29 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-05-22 18:17:20 +0200
commite43bcb7710c94bba10b1fb07cc34a9a5ab3bd292 (patch)
tree85b49d96259e20586aa2a0fa75d919c9cf8657d4 /package/base-files/src/etc/init.d/fs
parentd79dba9174a8241f4e2e4cb46e20bf8b1d6843ed (diff)
fix automount of devices registered in /etc/fstab, when usb-storage is kernel builtin
Diffstat (limited to 'package/base-files/src/etc/init.d/fs')
-rwxr-xr-xpackage/base-files/src/etc/init.d/fs42
1 files changed, 36 insertions, 6 deletions
diff --git a/package/base-files/src/etc/init.d/fs b/package/base-files/src/etc/init.d/fs
index 2054d5426..72beb40b3 100755
--- a/package/base-files/src/etc/init.d/fs
+++ b/package/base-files/src/etc/init.d/fs
@@ -3,10 +3,20 @@
[[ $1 = autostart ]] || exit 0
# activate swap
-[ -x /sbin/swapon ] && { swapon -a; }
+[ -x /sbin/swapon ] && {
+ grep swap /etc/fstab >/dev/null 2>&1
+ if [ $? -eq 0 ];then
+ logger -s -t '' "Activating swap"
+ swapon -a
+ fi
+}
# activate any logical volumes
-[ -x /usr/sbin/lvm ] && { lvm vgscan; lvm vgchange -ay; }
+[ -x /usr/sbin/lvm ] && {
+ logger -s -t '' "Activating LVM volumes"
+ lvm vgscan
+ lvm vgchange -ay
+}
rootdisk=$(readlink /dev/root)
# strip partitions (f.e. mmcblk0p2, sda2, ..)
@@ -15,11 +25,11 @@ rootdisk=${rootdisk%[1-9]}
rootparts=$(grep "^/dev/${rootdisk}" /etc/fstab|awk '{ print $1 }')
for part in $rootparts; do
- fstype=$(grep "^$part" /etc/fstab|awk '{ print $3 }')
- mnt=$(grep "^$part" /etc/fstab|awk '{ print $2 }')
+ fstype=$(grep "^$part " /etc/fstab|awk '{ print $3 }')
+ mnt=$(grep "^$part " /etc/fstab|awk '{ print $2 }')
[ -x /usr/sbin/fsck.$fstype ] && {
- logger -s "Checking $fstype filesystem on $part"
- fsck -p -t $fstype $part
+ logger -s -t '' "Checking $fstype filesystem on $part"
+ fsck $part
}
grep $fstype /proc/filesystems >/dev/null 2>&1
if [ $? -eq 0 ];then
@@ -29,4 +39,24 @@ for part in $rootparts; do
exit 1
fi
done
+
+# mount local filesystems not rootdisk
+fstypes="ext2 ext3 ext4 xfs vfat ntfs"
+for fs in $fstypes; do
+ disks=$(grep -v "^#" /etc/fstab| grep -v $rootdisk |grep $fs|awk '{ print $1 }' >/dev/null 2>&1)
+ for disk in $disks; do
+ logger -t '' "Found $disk with filesystem $fs"
+ grep $fs /proc/filesystems >/dev/null 2>&1
+ if [ $? -eq 0 ];then
+ [ -x /usr/sbin/fsck.$fs ] && {
+ logger -s -t '' "Checking $fs filesystem on $disk"
+ fsck $disk
+ }
+ logger -s -t '' "Mounting local filesystems"
+ mount $disk
+ else
+ logger -s -t '' "No $fs filesystem in kernel"
+ fi
+ done
+done
exit 0