summaryrefslogtreecommitdiffstats
path: root/modules.d/95nfs/nfsroot-cleanup.sh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xmodules.d/95nfs/nfsroot-cleanup.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/modules.d/95nfs/nfsroot-cleanup.sh b/modules.d/95nfs/nfsroot-cleanup.sh
new file mode 100755
index 0000000..d99519b
--- /dev/null
+++ b/modules.d/95nfs/nfsroot-cleanup.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+type incol2 > /dev/null 2>&1 || . /lib/dracut-lib.sh
+
+[ -f /tmp/nfs.rpc_pipefs_path ] && read -r rpcpipefspath < /tmp/nfs.rpc_pipefs_path
+[ -z "$rpcpipefspath" ] && rpcpipefspath=var/lib/nfs/rpc_pipefs
+
+pid=$(pidof rpc.statd)
+[ -n "$pid" ] && kill "$pid"
+
+pid=$(pidof rpc.idmapd)
+[ -n "$pid" ] && kill "$pid"
+
+pid=$(pidof rpcbind)
+[ -n "$pid" ] && kill "$pid"
+
+if incol2 /proc/mounts /var/lib/nfs/rpc_pipefs; then
+ # try to create the destination directory
+ [ -d "$NEWROOT"/$rpcpipefspath ] \
+ || mkdir -m 0755 -p "$NEWROOT"/$rpcpipefspath 2> /dev/null
+
+ if [ -d "$NEWROOT"/$rpcpipefspath ]; then
+ # mount --move does not seem to work???
+ mount --bind /var/lib/nfs/rpc_pipefs "$NEWROOT"/$rpcpipefspath
+ umount /var/lib/nfs/rpc_pipefs 2> /dev/null
+ else
+ umount /var/lib/nfs/rpc_pipefs 2> /dev/null
+ fi
+fi