summaryrefslogtreecommitdiffstats
path: root/projectroot/lib/init/nm-unmanage.sh
diff options
context:
space:
mode:
Diffstat (limited to 'projectroot/lib/init/nm-unmanage.sh')
-rw-r--r--projectroot/lib/init/nm-unmanage.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/projectroot/lib/init/nm-unmanage.sh b/projectroot/lib/init/nm-unmanage.sh
new file mode 100644
index 000000000..c9944108d
--- /dev/null
+++ b/projectroot/lib/init/nm-unmanage.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# configure NM to regard already configured interfaces as unmanaged (for NFS root)
+
+CONFFILE=/var/run/NetworkManager.conf
+
+if [ ! -e /run/resolv.conf -a -e /proc/net/pnp ]; then
+ cp /proc/net/pnp /run/resolv.conf
+fi
+
+if [ ! -f $CONFFILE ]; then
+ # set previously enabled interfaces to unmanaged
+ cat /etc/NetworkManager/NetworkManager.conf > $CONFFILE
+
+ UNMANAGED=""
+ for IF in $(ls /sys/class/net); do
+ IF_FLAGS="$(cat /sys/class/net/$IF/flags)"
+ if [ "$((IF_FLAGS&1))" = "1" -a "$IF" != "lo" ]; then
+ IF_ADDR="$(cat /sys/class/net/$IF/address)"
+ UNMANAGED="$UNMANAGED;mac:$IF_ADDR"
+ fi
+ done
+
+ echo "" >> $CONFFILE
+ echo "[keyfile]" >> $CONFFILE
+ echo "# unmanaged-devices added by $0" >> $CONFFILE
+ echo "unmanaged-devices=${UNMANAGED:1}" >> $CONFFILE
+fi
+