aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStijn Tintel <stijn@linux-ipv6.be>2019-02-25 15:05:07 +0200
committerStijn Tintel <stijn@linux-ipv6.be>2021-08-22 18:07:51 +0300
commit57807f50ded6cf0996284a850084183af13d5894 (patch)
treeb2557f17d5d090af7eea53c72e21a30593f0f08b
parent31d984a96ee5227d4aa37ac2ff8a2d53fcecc412 (diff)
downloadupstream-57807f50ded6cf0996284a850084183af13d5894.tar.gz
upstream-57807f50ded6cf0996284a850084183af13d5894.tar.bz2
upstream-57807f50ded6cf0996284a850084183af13d5894.zip
base-files: add option to make /var persistent
In OpenWrt, /var is symlinked to /tmp by default. This is done to reduce the amount of writes to the flash chip, which often have not the greatest durability. As a result, things like DHCP or UPnP lease files, are not persistent across reboots. Since OpenWrt can run on devices with more durable storage, it makes sense to have an option for a persistent /var. Add an option to make /var persistent. When enabled, /var will no longer be symlinked to /tmp, but /var/run will be symlink to /tmp/run, as it should contains only files that should not be kept during reboot. The option is off by default, to maintain the current behaviour. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
-rw-r--r--config/Config-images.in8
-rw-r--r--package/base-files/Makefile5
2 files changed, 13 insertions, 0 deletions
diff --git a/config/Config-images.in b/config/Config-images.in
index 4a7f08824b..92720fb84d 100644
--- a/config/Config-images.in
+++ b/config/Config-images.in
@@ -303,4 +303,12 @@ menu "Target Images"
it will be mounted by PARTUUID which makes the kernel find the
appropriate disk automatically.
+ config TARGET_ROOTFS_PERSIST_VAR
+ bool "Make /var persistent"
+ default n
+ help
+ Do not symlink /var to /tmp, so that its content will persist
+ across reboots. When enabled, /var/run will still be linked
+ to /tmp/run.
+
endmenu
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index d67f551b9c..6da3df2b4e 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -181,8 +181,13 @@ define Package/base-files/install
mkdir -p $(1)/www
mkdir -p $(1)/root
$(LN) /proc/mounts $(1)/etc/mtab
+ifeq ($(CONFIG_TARGET_ROOTFS_PERSIST_VAR),n)
rm -f $(1)/var
$(LN) tmp $(1)/var
+else
+ mkdir -p $(1)/var
+ $(LN) /tmp/run $(1)/var/run
+endif
mkdir -p $(1)/etc
$(LN) /tmp/resolv.conf /tmp/TZ /tmp/localtime $(1)/etc/