Previous Next Table of Contents

6. Automating The Bootserver and Booting Process

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.

6.1 Automating The Bootserver under NetBSD

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.

6.2 Automating The Bootserver under OpenBSD

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.

6.3 Automating The Bootserver under Linux

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).

6.4 Automating The Bootserver under FreeBSD

Not written yet!

6.5 More on MOP (or Look Mom, No Hands!)

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.


Previous Next Table of Contents