Package: mount
Version: 2.17.2-3.3
Tags: patch

On a diskless system, I installed a fresh copy of lenny from a PXE
booted Debian installer.  I installed to a USB drive, remade the
initrd for NFS boot, placed the files on an NFS server, and PXE booted
from that.  No nfs-common package was installed, nor is it needed,
since the kernel mounts the root with nolock, e.g.:

----------
$ cat /proc/mounts
rootfs / rootfs rw 0 0
none /sys sysfs rw,nosuid,nodev,noexec 0 0
none /proc proc rw,nosuid,nodev,noexec 0 0
udev /dev tmpfs rw,size=10240k,mode=755 0 0
192.168.1.1:/exports/server/root / nfs 
rw,vers=3,rsize=524288,wsize=524288,namlen=255,hard,nointr,nolock,proto=tcp,timeo=7,retrans=10,sec=sys,mountproto=udp,addr=192.168.1.1
 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,mode=755 0 0
usbfs /proc/bus/usb usbfs rw,nosuid,nodev,noexec 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,nosuid,noexec,gid=5,mode=620 0 0
----------

I tried upgrading to squeeze following the Release Notes.  It failed
in section 4.5.4, with the "apt-get upgrade", with mount.preinst
requiring nfs-common in the usual way:

----------
Preparing to replace mount 2.13.1.1-1 (using .../mount_2.17.2-3.3_amd64.deb) ...
You have NFS mount points currently mounted, and this version of mount
requires that nfs-common be upgraded before NFS mounts will work.

Aborting install.
----------

In your resolution to bug #435223 et al., it appears that you didn't
consider the effect on diskless, NFS-rooted systems having no other
NFS mounts.  It appears that your reason for this requirement was the
assumption that mount.nfs should be present if NFS mounts are present.
That's not true if / is the only NFS mount ever.

Current workaround: "aptitude install nfs-common", re-do the apt-get,
then remove nfs-common and its auto packages through aptitude.
*** preinst.orig	Mon Nov 29 13:30:46 2010
--- preinst	Mon Nov 29 14:09:44 2010
***************
*** 22,28 ****
  
  	if [ Debian = "$DISTRO" ]; then
  	  if [ -f /proc/mounts ] && ! chrooted; then
! 	      NFS_IN_USE=$(sed -n '/^[^ ]* [^ ]* nfs /p' /proc/mounts)
  	  else
  	      NFS_IN_USE=""
  	  fi
--- 22,30 ----
  
  	if [ Debian = "$DISTRO" ]; then
  	  if [ -f /proc/mounts ] && ! chrooted; then
! 	      # mount.nfs is assumed to be needed if there is currently a
! 	      # non-root NFS mount.
! 	      NFS_IN_USE=$(awk '/^[^ ]+ [^ ]+ nfs / && !/^[^ ]+ \/ nfs /' /proc/mounts)
  	  else
  	      NFS_IN_USE=""
  	  fi

Reply via email to