[Buildroot] [git commit] nfs_utils: Fix for read-only rootfs

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Mon Jul 13 00:08:59 UTC 2015


commit: http://git.buildroot.net/buildroot/commit/?id=aec5af98caf65b8ad08db4f372527a0503bb381c
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/master

In order to work on a read-only rootfs, nfs_utils would like to write
stuff to /var/lib/nfs, since it's not a tmpfs, it won't work.

Instead of doing little dances around the filesystem, tell nfs_utils to
use /run/nfs for everyone.

Modify the startup script accordingly.

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
---
 package/nfs-utils/S60nfs       |   14 ++------------
 package/nfs-utils/nfs-utils.mk |    3 ++-
 2 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/package/nfs-utils/S60nfs b/package/nfs-utils/S60nfs
index 4afee55..91410ee 100755
--- a/package/nfs-utils/S60nfs
+++ b/package/nfs-utils/S60nfs
@@ -8,19 +8,9 @@
 [ -x /usr/sbin/rpc.mountd ] || exit 0
 [ -x /usr/sbin/exportfs ] || exit 0
 
-# Don't fail if /etc/exports doesn't exist; create a bare-bones version and continue.
-[ -r /etc/exports ] || \
-    { touch /etc/exports && chmod u+rw,g+r,o+r /etc/exports ; } || \
-    { echo "/etc/exports does not exist" ; exit 0 ; }
-    
-# The /var/lib/nfs directory is actually on a tmpfs filesystem.
-mkdir -p /var/lib/nfs/sm
-mkdir -p /var/lib/nfs/sm.bak
 mkdir -p /var/lock/subsys
-touch /var/lib/nfs/etab
-touch /var/lib/nfs/rmtab
-touch /var/lib/nfs/state
-touch /var/lib/nfs/xtab
+mkdir -p /run/nfs/sm
+touch /run/nfs/rmtab
 
 start() {
 	# Start daemons.
diff --git a/package/nfs-utils/nfs-utils.mk b/package/nfs-utils/nfs-utils.mk
index cec21e8..115a133 100644
--- a/package/nfs-utils/nfs-utils.mk
+++ b/package/nfs-utils/nfs-utils.mk
@@ -21,6 +21,7 @@ NFS_UTILS_CONF_OPTS = \
 	--disable-uuid \
 	--disable-ipv6 \
 	--without-tcp-wrappers \
+	--with-statedir=/run/nfs \
 	--with-rpcgen=internal
 
 NFS_UTILS_TARGETS_$(BR2_PACKAGE_NFS_UTILS_RPCDEBUG) += usr/sbin/rpcdebug
@@ -36,8 +37,8 @@ endif
 
 define NFS_UTILS_INSTALL_FIXUP
 	rm -f $(NFS_UTILS_TARGETS_)
+	touch $(TARGET_DIR)/etc/exports
 endef
-
 NFS_UTILS_POST_INSTALL_TARGET_HOOKS += NFS_UTILS_INSTALL_FIXUP
 
 define NFS_UTILS_INSTALL_INIT_SYSV


More information about the buildroot mailing list