[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#156308: boot-floppies: installation on NFS root doesn't work



On Wed, Aug 14, 2002 at 08:04:56AM -0700, Chris Tillman wrote:
> Perhaps there's even a semaphore capability
> in the kernel that wasn't available when dpkg was written.

That won't provide exclusion of two dpkgs running under different
kernels, which is possible via NFS.  The file locking implemented in
dpkg is good, the NFS client of the installer is broken.

> Anyway, boot-floppies is now officially dead. This is definitely a 
> bad bug for people installing to nfs; I guess the thing to do is
> document a workaround.

Okay.  I hope the authors of the new installer will get it right.

> What would you recommend?

After mounting the NFS share on /target, enable NFS locking:

mount /dev/hdc /instmnt  # substitute your cdrom device for /dev/hdc
cd /target
mkdir x
cd x
for i in g/glibc/libc6 t/tcp-wrappers/libwrap0 p/portmap/portmap n/nfs-utils/nfs-common
do
  ar -x /instmnt/pool/main/$i''_*.deb
  zcat data.tar.gz | tar x
done
umount /instmnt
mkdir -p /var/lib/nfs
for i in portmap rpc.statd
do
  LD_LIBRARY_PATH=lib sbin/$i
done

Make pre-arrangements to have this command sequence on the NFS share,
or put it there using nano-tiny, so you have to type it at most once.

Now install the base system as usual.  Then install nfs-common:

$ umount /instmnt
$ chroot /target
$ apt-cdrom add
$ apt-get install nfs-common

The messages about missing /proc can be ignored, since portmap and statd
are already running.

You'll need a kernel built with CONFIG_ROOT_NFS.  The one on the
installation CD isn't.  If you don't have one and can't build one on
another machine, you must build one right here in the chroot environment:

$ apt-get install gcc make libc6-dev kernel-source-2.4.18 less screen links lynx wget ftp # etc.

When you've made arrangements to boot the new kernel, using the NFS share as
root device, back out cleanly:

$ exit # from chroot shell
$ cd /
$ killall portmap rpc.statd
$ umount /target

And reboot.  If it fails, then boot the installation CD, mount the NFS
share on /target, enable NFS locking, chroot /target, do what you forgot
to do, back out cleanly, and reboot.  If it fails, try again.  Good luck.



Reply to: