Previous | Next | Table of Contents

Setting up the ndbootd (ND) server, Diskless NetBSD HOW-TO

Sun's old Network Disk (ND) protocol is used by Sun 2 machines to boot over the network. The ND protocol was designed by Sun before they designed NFS. ND simply makes the raw blocks of a disk available to network clients. Contrast this with the true namespace and file abstractions that NFS provides.

ndbootd is a server that supports the ND protocol. However, it is limited to serving up an imaginary disk that contains only first- and second-stage boot loaders.

First, you need to get copies of these bootloaders. The first- and second-stage boot loaders are called bootyy and netboot, respectively, and they can be found in a NetBSD/sun2 distribution under installation/netboot/.

It is easiest to configure ndbootd to find these bootloaders in the /tftpboot directory, so place these files there. Then you need to make symlinks to netboot for each individual client as outlined in the introduction. For example, for a sun2 client with IP address 192.168.1.10, you would do:

# mkdir -p /tftpboot
# cp /from/some/where/bootxx /tftpboot
# cp /from/some/where/netboot /tftpboot
# cd /tftpboot 
# ln -s netboot C0A8010A.SUN2
In addition to serving boot loaders to clients, ndbootd also tells clients their IP addresses. Accordingly, the next sections contain some suspiciously rarp-like instructions. (Which is fine, since you have to set up rarp also.)

Setting up ndbootd, NetBSD
Setting up ndbootd, OpenBSD
Setting up ndbootd, FreeBSD
Setting up ndbootd, Linux
Setting up ndbootd, SunOS
Setting up ndbootd, Solaris


NetBSD

Recent NetBSD releases include ndbootd. For ancient releases you will need to download, build, and install the latest version under http://mit.edu/fredette/www/ndbootd/.

If you have built your own kernel, make sure you have the following in your config file:

pseudo-device   bpfilter        16
The GENERIC kernel distributed with NetBSD has this compiled in.

  1. Create an /etc/ethers file, listing your client:
    #/etc/ethers
    CC:CC:CC:CC:CC:CC     client

  2. Add your client to the /etc/hosts file:
    192.168.1.10 client

  3. # /usr/sbin/ndbootd -d -s /tftpboot /tftpboot/bootyy

This will start ndbootd in debugging mode in the foreground (i.e. you can ^C out of it). When the server gets a request, it will print many debugging messages.

Continue on to setting up rarp


FreeBSD and OpenBSD

You will need to download, build, and install the latest version of ndbootd under http://mit.edu/fredette/www/ndbootd/.

  1. Create an /etc/ethers file, listing your client:
    #/etc/ethers
    CC:CC:CC:CC:CC:CC     client

  2. Add your client to the /etc/hosts file:
    192.168.1.10 client

  3. # /usr/local/sbin/ndbootd -d -s /tftpboot /tftpboot/bootyy

This will start ndbootd in debugging mode in the foreground (i.e. you can ^C out of it). When the server gets a request, it will print many debugging messages.

Continue on to setting up rarp


Linux

TBD. ndbootd does not currently run on Linux (no raw Ethernet access functions have been written yet). If you're a programmer, you could write them - the interface you would need to provide is the same as config/ndbootd-bpf.c in the sources.

SunOS

TBD. ndbootd does not currently run on SunOS (no raw Ethernet access functions have been written yet). If you're a programmer, you could write them - the interface you would need to provide is the same as config/ndbootd-bpf.c in the sources.

Solaris

TBD. ndbootd does not currently run on Solaris (no raw Ethernet access functions have been written yet). If you're a programmer, you could write them - the interface you would need to provide is the same as config/ndbootd-bpf.c in the sources.

Previous | Next | Table of Contents
NetBSD Home Page
NetBSD Documentation top level

(Contact us) $NetBSD: nd.html,v 1.11 2004/10/30 22:33:31 jschauma Exp $
Copyright © 1998-2004 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.