create /etc/fstab on boot (closes #3458)
authormatteo <matteo@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 20 May 2008 19:02:19 +0000 (19:02 +0000)
committermatteo <matteo@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 20 May 2008 19:02:19 +0000 (19:02 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11225 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/Makefile
package/base-files/files/etc/init.d/fstab

index 7fbeb6f3309c45b66551cd86097fdab43f93cba0..b80fee3ff700776be5e109c2edd9f9ec042d24d9 100644 (file)
@@ -161,7 +161,7 @@ define Package/base-files$(TARGET)/install
        rm -f $(1)/var
        ln -sf /tmp $(1)/var
        mkdir -p $(1)/etc
-       ln -sf /tmp/resolv.conf $(1)/etc/resolv.conf
+       ln -sf /tmp/resolv.conf /tmp/fstab $(1)/etc/
        $(call Package/base-files/install-target,$(1))
        for conffile in $(1)/etc/config/*; do \
                if [ -f "$$$$conffile" ]; then \
index 2d2976ffcbecd0707189650a9a29c78559845fa5..f661b9d15f26d499e33a6acf575618c46dda27ac 100755 (executable)
@@ -15,9 +15,8 @@ do_mount() {
        [ -n "target" ] || return 0
        mkdir -p $target
        config_get_bool enabled "$cfg" "enabled" '1'
-       [ "$enabled" -gt 0 ] && {
-               mount -t $fstype -o $options $device $target
-       }
+       [ "$enabled" -eq 0 ] && options="noauto,$options"
+       echo "$device   $target $fstype $options        0       0" >> /tmp/fstab
 }
 
 do_swapon() {
@@ -25,8 +24,8 @@ do_swapon() {
        config_get device "$cfg" device
        [ -n "device" ] || return 0
        config_get_bool enabled "$cfg" "enabled" '1'
-       [ "$enabled" -gt 0 ] && type swapon >/dev/null && {
-               swapon $device
+       [ "$enabled" -gt 0 ] && {
+               echo "$device   none    swap    ${noauto}sw     0       0" >> /tmp/fstab
        }
 }
 
@@ -52,8 +51,11 @@ do_swapoff() {
 
 start() {
        config_load fstab
+       echo '# WARNING: this is an auto generated file, please use uci to set static filesystems' > /tmp/fstab
        config_foreach do_mount mount
        config_foreach do_swapon swap
+       mount -a
+       swapon -a
 }
 
 stop() {