This tech note addresses the problem of trying to Jumpstart a Sun
system on a non standard IP network. In this example the network is a
192.168.0.0/20 network.
Symptom
After configuring the Jumpstart/Quickstart server, a client is booted
with a
boot net - install command.
The client will boot from the network, but shortly after configuring
its interface, you will see the following error and the boot stops:
Configured interface hme0
ERROR: bpgetfile unable to access network information
Problem
Solaris has booted, asked via rarp to find out the client IP address.
It uses the returned address to configure the network. The problem is
that Solaris
knows that 192.168.x.x networks must have a netmask of
255.255.255.0, so it sets the interface up that way.
The next step in the boot process is to find the Jumpstart server and
path information. The Solaris client does this using the bpgetfile
command, which is a client to bootparamd running on the boot server.
All bpgetfile requests fail since the network is configured with the
wrong netmask (boot server doesn't hear the request from the client
bpgetfile) and the entire boot/install stops.
Workaround
There is a fairly easy work around I have come up with that only
requires you to edit two files per OS image.
File 1, edit: <solaris_image>/Tools/Boot/.tmp_proto/root/etc/inet/netmasks
add the correct netmask entry for your network at the bottom of the
file:
192.168.0.0 255.255.240.0
File 2, edit: <solaris_image>/Tools/Boot/sbin/rcS
At the point where this script configures the interface using
auto-revarp add the following line:
/sbin/ifconfig $i netmask + > /tmp/dev.$$ 2>&1
These two changes will allow the client to boot with the correct
network information and function properly during the installation.
In some cases you may need to run rpc.bootparamd in debug mode on the
server (add a -d flag).