Setting up the rpc.bootparamd server, Diskless NetBSD HOW-TO

The rpc.bootparamd is used to convey some information to diskless clients. NetBSD only uses information regarding the root NFS directory. Most platforms no longer require bootparams, as they now use DHCP to acquire most of their netboot information. In particular, sparc and sparc64 systems can skip ahead to setting up tftpd

Before starting, it's worth mentioning that sometimes the bootparamd daemon decides not to respond to whoami requests. I've seen this happen with NetBSD, Linux, and Solaris. Sometimes it takes several tries! This gives the same error message as if bootparamd is not running. If, after several tries, you still can't get it to work, try compiling a different bootparamd server (or if none is available for your server platform, try a different server OS).

Also, some systems (particularly Sun 3 ones) ask for a gateway entry from bootparamd, and will not boot without one. You can add a gateway entry to your bootparams by changing the line in the examples below from

client root=nfsserver:/export/client/root

to

client root=nfsserver:/export/client/root gateway=gateway:0xffffff00

replacing gateway with the IP address of the gateway or router on your network, and 0xffffff00 with your netmask.

The following links provide more detailed information about setting up bootparams on different operating systems:

NetBSD and OpenBSD

  1. Create the /etc/bootparams file:

    # cat /etc/bootparams
    client root=nfsserver:/export/client/root
        

  2. Start the bootparamd daemon:

    # /usr/sbin/rpc.bootparamd -d
        

This runs the bootparamd server in debugging mode. When the bootparamd server gets a request, it will print the following messages:

rpc.bootparamd: whoami got question for 192.168.1.10
rpc.bootparamd: This is host client.test.net
rpc.bootparamd: Returning client       127.0.0.1
rpc.bootparamd: getfile got question for "client" and file "root"
rpc.bootparamd: returning server:nfsserver path:/export/client/root address: 192.168.1.5

If the requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Continue on to setting up nfs or tftpd

FreeBSD

  1. Create the /etc/bootparams file:

    # cat /etc/bootparams
    client root=nfsserver:/export/client/root
    	

  2. Start the bootparamd daemon:

    # /usr/sbin/bootparamd -d
          

This runs the bootparamd server in debugging mode. When the bootparamd server gets a request, it will print the following messages:

whoami got question for 192.168.1.10
bootparamd: this is host client.test.net
Returning client       192.168.1.5
bootparamd: getfile got question for "client" and file "root"
returning server:nfsserver path:/export/client/root address: 192.168.1.5

If the bootparams requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Continue on to setting up nfs or tftpd

Mac OS X and Darwin

  1. Add your client to the NetInfo database:

    # nicl . -create /machines/client bootparams root=nfsserver:/export/client/root
            

  2. Start the bootparamd daemon:

    # /usr/sbin/bootparamd -d
          

This runs the bootparamd server in debugging mode. When the bootparamd server gets a request, it will print the following messages:

rpc.bootparamd: whoami got question for 192.168.1.10
rpc.bootparamd: This is host client.test.net
rpc.bootparamd: Returning client       127.0.0.1
rpc.bootparamd: getfile got question for "client" and file "root"
rpc.bootparamd: returning server:nfsserver path:/export/client/root address: 192.168.1.5

If the bootparams requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Continue on to setting up nfs or tftpd

Linux

The bootparam daemon should come with all recent distributions as of this writing (2001-03-01). If you don't have /usr/sbin/rpc.bootparamd then you'll have to download the newest netkit-bootparamd sources from ftp://ftp.uk.linux.org/pub/linux/Networking/netkit.

  1. If needed, extract and compile the daemon. See the README for details, but the following should just work:

    # ./configure; make; make install
          

  2. Create the /etc/bootparams file:

    # cat /etc/bootparams
    client root=nfsserver:/export/client/root
          

  3. Start the bootparamd daemon:

    # /usr/[local/]sbin/rpc.bootparamd -d
          

This runs the bootparamd server in debugging mode. When the bootparamd server gets a request, it will print the following messages:

whoami got question for 192.168.1.10
This is host client.test.net
Returning client   (none)    127.0.0.1
getfile got question for "client" and file "root"
returning server:nfsserver path:/export/client/root address: 192.168.1.5

If the bootparams requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

There have been several reports of problems with the bootparamd that ships with some distributions of linux. If you run into this, try compiling the NetKit bootparamd from source and check that your rarpd is working. Debian/woody with kernels 2.4.x, rarpd-0.981107 and netkit-bootparamd-0.17 are reported to work without problems.

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Continue on to setting up nfs or tftpd

SunOS

If your SunOS box is already set up as an NFS server and if the directory /tftpboot exists, then the bootparamd server will already be running.

  1. Create the /etc/bootparams file:

    # cat /etc/bootparams
    client root=nfsserver:/export/client/root
          

  2. Look for the bootparamd daemon in the process list:

    # ps aux | grep bootparam
          

    If it's not already running, then you need to:

    # /usr/etc/rpc.bootparamd -d
          

This runs the bootparamd server in debugging mode. If the bootparams requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Continue on to setting up nfs or tftpd

Solaris

If your Solaris box is already set up as an NFS server and if the directory /tftpboot exists, then the bootparamd server will already be running.

  1. Create the /etc/bootparams file:

    # cat /etc/bootparams
    client root=nfsserver:/export/client/root
          

  2. Look for the bootparamd daemon in the process list:

    # /usr/bin/ps -ef | grep bootparam
          

    If it's already running, then you need to kill -HUP that process, otherwise, you'll need to:

    # /usr/sbin/rpc.bootparamd -d
          

This runs the bootparamd server in debugging mode. It doesn't even notice that the client has sent a bootparams request.

If the bootparams requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Continue on to setting up nfs or tftpd

NEWS-OS

  1. Create the /etc/bootparams file:

    # cat /etc/bootparams
    client root=nfsserver:/export/client/root
          

  2. Start the bootparamd daemon:

    # /usr/etc/rpc.bootparamd -d
          

If the bootparams requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Continue on to setting up nfs or tftpd

NEXTSTEP

This information has been updated recently. If you try this, please report success or failure so this page can be updated. (contact us)

  1. Create the /etc/bootparams file:

    # cat /etc/bootparams
    client root=nfsserver:/export/client/root
          

  2. Use the nidump utility to load the /etc/bootparams data into the netinfo database. nidump can also be used to export from netinfo to /etc/bootparams.

  3. Look for the bootparamd daemon in the process list:

    # ps -aux | grep bootparamd
          

    If it's running, kill -HUP that process to force it to reread /etc/bootparams.

    If it's not running, then you need to run it:

    # /usr/etc/rpc.bootparamd -d
          

If the bootparams requests fail, the client will print:

bootparamd: `whoami' call failed
le(0,0,0,0): Unknown error: code 60
boot: Unknown error: code 60

If the bootparams requests succeed, the client will print:

boot: client name: client.test.net
root addr=192.168.1.5 path=/export/client/root

Back to the top

HP-UX

Sorry, HP-UX does not ship with the bootparamd daemon. It might be possible to find source code and compile the daemon, but I couldn't find it.

If you know more about this, please let us know.

Back to the top