No, you're not forever doomed to manually prepare your bootserver for booting up your VAX client. You just have to make a few changes to what your bootserver runs when it first boots up.
Hey, this is easy! That's what I thought when I figured out how to
start all the nifty bootserver related daemons at boot time under
NetBSD. On your NetBSD bootserver, you will need to edit the
/etc/rc.conf
file, a file which is a virtual network services
supermarket.
# example lines from /etc/rc.conf and how they should be set:
bootparamd=YES
bootparamd_flags=""
rarpd=YES
rarpd_flags="-a"
mopd=YES
mopd_flags="-a"
nfs_server=YES
nfsd_flags="-tun 4"
mountd_flags=""
nfs_client=YES
nfsiod_flags="-tun 4"
# end of example
After making the above changes, reboot your system and then your should be ready to bootserve VAX clients.
OpenBSD is strikingly similar in layout to NetBSD, but then OpenBSD
borrows heavily from its roots in NetBSD. There was one major
difference, instead of configuring /etc/rc.conf
, under
OpenBSD you must directly configure a file named
/etc/netstart
.
Examine the well commented /etc/netstart
file on your OpenBSD
system paying special attention to the lines near the beginning of the
file.
# example lines from /etc/netstart and how they should be set:
rarpd_flags="-a"
bootparamd_flags=""
nfs_server=YES
# end of example
With OpenBSD, you still have to perform a bit of your own script work to get the MOP server running, but it's a one time thing. Edit the /etc/rc.local file to contain the following conditional statement just before the end of the file:
# code for starting the MOP server at boot time.
if [ -f /usr/sbin/mopd ]; then
echo -n ' mopd'; /usr/sbin/mopd -a
fi
# end of code
After modifying the items above, reboot your system and then you should be ready to bootserve VAX clients.
Linux requires a bit more work than the other operating systems, but I've put together some helper scripts for making the process simpler. The scripts are available from my web page at the following link: http://world.std.com/~bdc/projects/vaxen/netboot/linux-nb.tar.gz I've also included the text of the scripts at the end of this guide in Appendix B for people who don't have access to the web.
There are three scripts you will need: areths.csh
,
vaxboot-sysv.sh
, and vaxboot-bsd.sh
.
The areths.csh
script is sort of like a poor man's
rarpd
for Linux. The script reads in the contents of your
/etc/ethers
file and loads the ARP cache and RARP tables with
the appropriate information.
The vaxboot scripts are for automatically calling the
areths.csh
script and running the rpc.bootparamd
and
mopd
daemons during the system boot. The
vaxboot-sysv.sh
is for the SysV style init used by the RedHat
distribution. The vaxboot-bsd.sh
is for the BSD style init
used by the Slackware distribution. In fact you can use
vaxboot-bsd.sh
with RedHat as well, if you call it from the
/etc/rc.d/rc.local
script. RedHat caters to both styles of
system initializations.
I would like to take this opportunity to say that I think that all the Linux distributions I've worked with have really weird init setups.
First, copy the areths.csh
script to
/usr/local/sbin
. BTW, the scripts are all written in mind
with the various bootserver components living in
/usr/local/sbin
. You'll have to edit the scripts if you've
placed the components elsewhere.
# mkdir -p /usr/local/sbin
# cp areths.csh /usr/local/sbin
# chmod a+x /usr/local/sbin/areths.csh
Configuring for RedHat (SysV Style init)
Under RedHat Linux, copy the file vaxboot-sysv.sh
to the
directory /etc/rc.d/init.d
and set its execute permissions.
# cp vaxboot-sysv.sh /etc/rc.d/init.d
# chmod a+x /etc/rc.d/init.d/vaxboot-sysv.sh
Next you'll need to setup some links in the runlevel directories so the booting system knows what to do with the script when entering certain runlevels.
# ln -s /etc/rc.d/init.d/vaxboot-sysv.sh /etc/rc.d/rc1.d/K07vaxboot-sysv
# ln -s /etc/rc.d/init.d/vaxboot-sysv.sh /etc/rc.d/rc2.d/S99vaxboot-sysv
# ln -s /etc/rc.d/init.d/vaxboot-sysv.sh /etc/rc.d/rc3.d/S99vaxboot-sysv
RedHat runs the NFS server components by default, so you need not worry about setting up anything for them. At this point reboot your machine, and everything should be in order to netboot your VAX client.
Configuring for Slackware (BSD Style init)
Under Slackware Linux, copy the file vaxboot-bsd.sh
to the
directory /usr/local/etc
.
# mkdir -p /usr/local/etc
# cp vaxboot-bsd.sh /usr/local/etc
# chmod a+x /usr/local/etc/vaxboot-bsd.sh
Ummm, it's been a while since I've run Slackware, but if I remember
correctly there's a file either named /etc/rc.local
or maybe
/etc/rc.d/rc.local
which is specifically for user
customizations. Anyway, find that rc.local
file and add the
following lines to the end of that file:
# example additions to rc.local file under Linux
# Start the bootserver
/usr/local/etc/vaxboot-bsd.sh
# end of example
Again, resorting to vague and fuzzy recollections of my Slackware
days. I'm fairly sure that you needed to uncomment certain sections of
the configuration files for Slackware, as the NFS servers were not run
by default. I'm thinking of files named rc.inet1
and
rc.inet2
but I'll leave figuring out the details as an
exercise for the reader. Reboot your machine, and everything should be
in order to netboot your VAX client (assuming you get NFS running).
(I haven't actually tested this under Slackware. I'm only pretending that I know it works).
Not written yet!
There's one more very useful thing you can do to make your MOP
configuration much simpler... Reflect back to many pages before the
current section to section on
setting up the MOP images. Times were simpler, and you were happily linking the
file boot.mopformat
to MOPBOOT.SYS
, carefully noting
that the link name must be capitalized.
Well, much like the simpler times of your childhood, you were lied to. There is no Santa Claus, and not all file names must be capitalized. But I digress.
Going back into the /tftpboot/mop
directory. If you create a
link to the boot.mopformat
file with your VAX client's
ethernet address as its name, you can then boot your VAXstation from
the console without specifying the `/100' parameter. Better yet it
doesn't prompt you for the name of the bootloader. The VAX
automatically grabs whatever file is associated with the ethernet
address named file.
# cd /tftpboot/mop
# ln -s boot.mopformat 08002b1659bb.SYS
You will note the lower case letters used in the ethernet address name. In this case if you don't use the lower case letters, the MOP server will not acknowledge the filename as containing valid representation of the ethernet address. You must use the lower case form of the letters.
You can even take things one step further. At least on the VAXstation 3100's (and maybe others) you can set the default boot device to be the ethernet device.
From the VAXstation console prompt, type the following:
>>> set boot esa0
The next time you power on the VAXstation, it will try to boot from the ESA0 ethernet device. This in turn MOP loads the bootloader from your bootserver. Oooooh ahhhh, impress your friends.