diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2014-05-22 17:26:29 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2014-05-22 18:17:20 +0200 |
commit | e43bcb7710c94bba10b1fb07cc34a9a5ab3bd292 (patch) | |
tree | 85b49d96259e20586aa2a0fa75d919c9cf8657d4 /package/base-files/src/etc/init.d/fs | |
parent | d79dba9174a8241f4e2e4cb46e20bf8b1d6843ed (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-x | package/base-files/src/etc/init.d/fs | 42 |
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 |