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:
-
Create the
/etc/bootparams
file:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
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
-
Create the
/etc/bootparams
file:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
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
-
Add your client to the NetInfo database:
# nicl . -create /machines/client bootparams root=nfsserver:/export/client/root
-
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
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
README
for details, but the following should “just work”:# ./configure; make; make install
-
Create the
/etc/bootparams
file:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
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
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/bootparams
file:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
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
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/bootparams
file:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
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
-
Create the
/etc/bootparams
file:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
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
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/bootparams
file:# cat /etc/bootparams client root=nfsserver:/export/client/root
-
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
. -
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
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