瀏覽代碼

create /etc/fstab on boot (closes #3458)

SVN-Revision: 11225
Matteo Croce 18 年之前
父節點
當前提交
ac8bf03f8e
共有 2 個文件被更改,包括 8 次插入6 次删除
  1. 1 1
      package/base-files/Makefile
  2. 7 5
      package/base-files/files/etc/init.d/fstab

+ 1 - 1
package/base-files/Makefile

@@ -161,7 +161,7 @@ define Package/base-files$(TARGET)/install
 	rm -f $(1)/var
 	rm -f $(1)/var
 	ln -sf /tmp $(1)/var
 	ln -sf /tmp $(1)/var
 	mkdir -p $(1)/etc
 	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))
 	$(call Package/base-files/install-target,$(1))
 	for conffile in $(1)/etc/config/*; do \
 	for conffile in $(1)/etc/config/*; do \
 		if [ -f "$$$$conffile" ]; then \
 		if [ -f "$$$$conffile" ]; then \

+ 7 - 5
package/base-files/files/etc/init.d/fstab

@@ -15,9 +15,8 @@ do_mount() {
 	[ -n "target" ] || return 0
 	[ -n "target" ] || return 0
 	mkdir -p $target
 	mkdir -p $target
 	config_get_bool enabled "$cfg" "enabled" '1'
 	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() {
 do_swapon() {
@@ -25,8 +24,8 @@ do_swapon() {
 	config_get device "$cfg" device
 	config_get device "$cfg" device
 	[ -n "device" ] || return 0
 	[ -n "device" ] || return 0
 	config_get_bool enabled "$cfg" "enabled" '1'
 	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() {
 start() {
 	config_load fstab
 	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_mount mount
 	config_foreach do_swapon swap
 	config_foreach do_swapon swap
+	mount -a
+	swapon -a
 }
 }
 
 
 stop() {
 stop() {