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
for i in g/glibc/libc6 t/tcp-wrappers/libwrap0 p/portmap/portmap n/nfs-utils/nfs-common
ar -x /instmnt/pool/main/$i''_*.deb
zcat data.tar.gz | tar x
mkdir -p /var/lib/nfs
for i in portmap rpc.statd
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.