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

How to install Debian on a diskless NFS client?

I want to install Debian testing on a diskless machine (i.e. no
floppy, no CDROM, no hard disk) using DHCP/TFTP and NFS.  Besides
being diskless, the machine is a standard Pentium PC with a NIC which
has an etherboot EPROM to boot via DHCP/TFTP.

As described in the Debian Installation Guide, section 4.6 "Preparing
Files for TFTP Net Booting", I have downloaded and installed
netboot.tar.gz (from etch) on the server machine, configured DHCP and
TFTP (and GRUB, since instead of PXE, I boot nbgrub via TFTP, then
load the debian kernel and initd.gz from GRUB).

I can boot the debian kernel, initrd and debian installer on the
diskless client, choose language, country, keyboard layout, timezone,
configure the clock and network, configure the debian mirror to use.
But then the installer wants to detect and partition disk drives to do
the installation on.  It doesn't allow to select an NFS-mounted
directory to install.  When skipping the partitioning the installer
can't proceed, since it has no disk to use as a target.

I then tried to switch to a shell and to manually do a

   mkdir /target; mount server:/tftpboot/client-dir /target

since I know /target is used in other installations.  However, the
mount command in the initrd's busybox seems to be unable to do NFS
mounts.  This is where I am stuck.  How can I do the installation to
the server disk when the client isn't able to mount it?

A second way would be not to run the installation on the client, but
prepare the directory to be exported to the client directly on the
server.  I think this is what debootsrap is for, but I haven't found
any good documentation how to use it.  The Debian Installation Guide
doesn't describe it.  According to the man page I have run

   ARCH=i386 debootstrap etch /tftpboot/client-dir

which populates the target directory with a minimal system but don't
know how to proceed from here.  I could probably tweak the result by
some editing in /etc, installing/building a kernel and initrd, but I
hope there is an easier way.

Can anyone give me a hint on this?


Reply to: