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
-
Create the
/etc/bootparamsfile:# cat /etc/bootparams client root=nfsserver:/export/client/root -
Start the
bootparamddaemon:# /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
FreeBSD
-
Create the
/etc/bootparamsfile:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
Start the
bootparamddaemon:# /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
Mac OS X and Darwin
-
Add your client to the NetInfo database:
# nicl . -create /machines/client bootparams root=nfsserver:/export/client/root -
Start the
bootparamddaemon:# /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
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.
-
If needed, extract and compile the daemon. See the
READMEfor details, but the following should “just work”:# ./configure; make; make install -
Create the
/etc/bootparamsfile:# cat /etc/bootparams client root=nfsserver:/export/client/root -
Start the
bootparamddaemon:# /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
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.
-
Create the
/etc/bootparamsfile:# cat /etc/bootparams client root=nfsserver:/export/client/root -
Look for the
bootparamddaemon in the process list:# ps aux | grep bootparamIf 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
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.
-
Create the
/etc/bootparamsfile:# cat /etc/bootparams client root=nfsserver:/export/client/root -
Look for the
bootparamddaemon in the process list:# /usr/bin/ps -ef | grep bootparamIf 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
NEWS-OS
-
Create the
/etc/bootparamsfile:# cat /etc/bootparams client root=nfsserver:/export/client/root -
Start the
bootparamddaemon:# /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
NEXTSTEP
This information has been updated recently. If you try this, please report success or failure so this page can be updated. (contact us)
-
Create the
/etc/bootparamsfile:# cat /etc/bootparams client root=nfsserver:/export/client/root -
Use the nidump utility to load the
/etc/bootparamsdata into the netinfo database. nidump can also be used to export from netinfo to/etc/bootparams. -
Look for the
bootparamddaemon in the process list:# ps -aux | grep bootparamdIf 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
