summaryrefslogtreecommitdiff
path: root/package/base-files
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
parentd79dba9174a8241f4e2e4cb46e20bf8b1d6843ed (diff)
fix automount of devices registered in /etc/fstab, when usb-storage is kernel builtin
Diffstat (limited to 'package/base-files')
-rw-r--r--package/base-files/Makefile2
-rw-r--r--package/base-files/src/etc/init.d/cifs8
-rwxr-xr-xpackage/base-files/src/etc/init.d/fs42
-rw-r--r--package/base-files/src/etc/init.d/nfs8
-rwxr-xr-xpackage/base-files/src/etc/mdev/fs24
5 files changed, 62 insertions, 22 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 57f11a3ac..74ece91e8 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
PKG_NAME:= base-files
PKG_VERSION:= 1.0
-PKG_RELEASE:= 92
+PKG_RELEASE:= 93
PKG_SECTION:= base
PKG_DESCR:= basic files and scripts
diff --git a/package/base-files/src/etc/init.d/cifs b/package/base-files/src/etc/init.d/cifs
index 4ece0fe80..5de597b40 100644
--- a/package/base-files/src/etc/init.d/cifs
+++ b/package/base-files/src/etc/init.d/cifs
@@ -7,14 +7,14 @@ autostart)
exec sh $0 start
;;
start)
- grep cifs /proc/filesystems >/dev/null 2>&1
+ grep -v "^#" /etc/fstab| grep cifs >/dev/null 2>&1
if [ $? -eq 0 ];then
- grep -v "^#" /etc/fstab| grep cifs >/dev/null 2>&1
+ grep cifs /proc/filesystems >/dev/null 2>&1
if [ $? -eq 0 ];then
mount -a -t cifs
+ else
+ logger -t cifs "No cifs support in kernel"
fi
- else
- logger -t cifs "No cifs support in kernel"
fi
;;
stop)
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
diff --git a/package/base-files/src/etc/init.d/nfs b/package/base-files/src/etc/init.d/nfs
index 1bdd0e96f..4c3f9ba83 100644
--- a/package/base-files/src/etc/init.d/nfs
+++ b/package/base-files/src/etc/init.d/nfs
@@ -9,16 +9,16 @@ autostart)
exec sh $0 start
;;
start)
- grep nfs /proc/filesystems >/dev/null 2>&1
+ grep -v "^#" /etc/fstab| grep nfs >/dev/null 2>&1
if [ $? -eq 0 ];then
- grep -v "^#" /etc/fstab| grep nfs >/dev/null 2>&1
+ grep nfs /proc/filesystems >/dev/null 2>&1
if [ $? -eq 0 ];then
mkdir -p /var/lib/nfs/rpc_pipefs
mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs
mount -a -t nfs
+ else
+ logger -t nfs "No nfs support in kernel"
fi
- else
- logger -t nfs "No nfs support in kernel"
fi
;;
stop)
diff --git a/package/base-files/src/etc/mdev/fs b/package/base-files/src/etc/mdev/fs
index 7a305d9d6..53339fed5 100755
--- a/package/base-files/src/etc/mdev/fs
+++ b/package/base-files/src/etc/mdev/fs
@@ -15,7 +15,7 @@ else
disk="${MDEV} (${uuid})"
fi
if [ -z $fs ];then
- logger "Disk $disk not registered in /etc/fstab"
+ logger -t mdev "Disk $disk not registered in /etc/fstab"
exit 0
fi
@@ -24,11 +24,20 @@ if [ $fs = "ntfs-3g" ];then
procfs=fuse
fi
+# check if already mounted via /etc/init.d/fs
+adk_check() {
+ mount | grep "${MDEV} "
+ 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 -s "Checking $fs filesystem on $disk"
- fsck -p -t $fs ${MDEV}
+ logger -t mdev "Checking $fs filesystem on ${MDEV}"
+ fsck ${MDEV}
}
}
@@ -37,19 +46,20 @@ adk_mount() {
mkdir -p $mnt >/dev/null 2>&1
grep $procfs /proc/filesystems >/dev/null 2>&1
if [ $? -eq 0 ];then
- logger -s "Mounting $disk to $mnt"
+ logger -t mdev "Mounting local filesystems"
mount $mnt
if [ $? -ne 0 ];then
- logger -s "Mounting $disk failed"
+ logger -s -t '' "Mounting $disk failed"
fi
else
- logger -s "Required filesystem $procfs not available"
+ logger -t mdev "Required filesystem $procfs not available"
fi
}
case "${ACTION}" in
add)
- logger "Device ${MDEV} added to the system"
+ logger -t mdev "Device ${MDEV} added to the system"
+ add_check
adk_fsck
adk_mount
;;