Package: initscripts
Version: 2.86.ds1-15
Severity: normal

Related to #383073, merge if you wish.

Please find attached a patch that extends /etc/init.d/mountnfs.sh to
also mount filesystems on network-accessed block devices, that cannot be
mounted when /etc/init.d/mountall.sh is run.

This was crafted for a system using ATA over Ethernet, but should apply
equally as well to one using NBD, or any other implementation for that
matter.

regards

Andrew

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-686
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)

Versions of packages initscripts depends on:
ii  debianutils   2.15.2                     Miscellaneous utilities specific t
ii  e2fsprogs     1.38+1.39-WIP-2005.12.31-1 ext2 file system utilities and lib
ii  libc6         2.3.6-7                    GNU C Library: Shared libraries
ii  lsb-base      3.0-15                     Linux Standard Base 3.0 init scrip
ii  mount         2.12r-6                    Tools for mounting and manipulatin

initscripts recommends no packages.

-- no debconf information
--- /etc/init.d/mountnfs.sh.orig        2006-08-14 19:35:28.000000000 -0700
+++ /etc/init.d/mountnfs.sh     2006-08-14 19:50:53.000000000 -0700
@@ -36,6 +36,7 @@
 
        portmap=no
        gss_or_idmap=no
+       mount_netdev=no
        while read DEV MTPT FSTYPE OPTS REST
        do
                case "$DEV" in
@@ -47,6 +48,9 @@
                  noauto|*,noauto|noauto,*|*,noauto,*)
                        continue
                        ;;
+                 _netdev|*,_netdev|_netdev,*|*,_netdev,*)
+                       mount_netdev=yes
+                       ;;
                esac
                case "$FSTYPE" in
                  nfs|nfs4)
@@ -151,6 +155,30 @@
                        fi
                fi
        fi
+       if [ "$mount_netdev" = yes ]; then
+               mount_all_netdev() { mount -a -O _netdev ; }
+               if [ "$VERBOSE" = no ]
+               then
+                       MOUNT_OUT="$(LC_ALL=C mount_all_netdev)"
+                       ES=$?
+                       echo "$MOUNT_OUT" | sed -e '/already mounted/d' -e 
'/nothing was mounted/d'
+                       if [ 0 = "$ES" ] || [ 96 = "$ES" ] || [ 64 = "$ES" ]
+                       then
+                               log_action_end_msg 0
+                       else
+                               log_action_end_msg 1 "code $ES"
+                       fi
+               else
+                       mount_all_netdev
+                       ES=$?
+                       if [ 0 = "$ES" ] || [ 96 = "$ES" ] || [ 64 = "$ES" ]
+                       then
+                               log_success_msg "Done mounting remote 
filesystems."
+                       else
+                               log_failure_msg "Mounting remote filesystems 
failed with error code ${ES}."
+                       fi
+               fi
+       fi
 }
 
 

Reply via email to