diff options
author | Leon Woestenberg <leon@sidebranch.com> | 2009-12-29 23:49:18 +0100 |
---|---|---|
committer | Leon Woestenberg <leon@sidebranch.com> | 2010-01-01 13:22:42 +0100 |
commit | 26af5ed1db81d29a59eb93cd9860d246d8dfa6a2 (patch) | |
tree | b1a0d5383e9f00e01b876fec1e23b6e0955a00e8 /recipes | |
parent | a367a0f624493f828bff9d35a6b41474f5b019e6 (diff) |
netbase/init: Do not run 'ifup -a' if root is network mounted.
'ifup -a' makes a NFS mounted rootfs dissappear underneath us, so
add detection of such rootfs and do not (de)configure.
Signed-off-by: Leon Woestenberg <leon@sidebranch.com>
Diffstat (limited to 'recipes')
-rw-r--r-- | recipes/netbase/netbase/init | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/recipes/netbase/netbase/init b/recipes/netbase/netbase/init index acc26cba61..227f6ffcb9 100644 --- a/recipes/netbase/netbase/init +++ b/recipes/netbase/netbase/init @@ -62,17 +62,27 @@ doopt () { case "$1" in start) - # /etc/sysctl.conf is preferred - if [ ! -f /etc/sysctl.conf ]; then - doopt spoofprotect yes - doopt syncookies no - doopt ip_forward no - fi - - echo -n "Configuring network interfaces... " - ifup -a - echo "done." - ;; + if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts | + grep -q "^/ nfs$"; then + echo "NOT configuring network interfaces: / is an NFS mount" + elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts | + grep -q "^/ smbfs$"; then + echo "NOT configuring network interfaces: / is an SMB mount" + elif sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\2/p' /proc/mounts | + grep -qE '^(nfs|smbfs|ncp|coda)$'; then + echo "NOT configuring network interfaces: network shares still mounted." + else + echo -n "Configuring network interfaces... " + ifup -a + echo "done." + # /etc/sysctl.conf is preferred + if [ ! -f /etc/sysctl.conf ]; then + doopt spoofprotect yes + doopt syncookies no + doopt ip_forward no + fi + fi + ;; stop) if sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts | grep -q "^/ nfs$"; then |