Problem booting a SPARCstation 1 diskless client using SunOS 4.0.3

Richard Pigeon pigeon at ndcheg.cheg.nd.edu
Thu Dec 7 14:08:08 AEST 1989


Based on the information presented by Joseph Konczal, I will
try to present one possible solution.


konczal at mail-gw.ncsl.nist.gov (Joseph C. Konczal) writes:

>I have a new SPARCstation 1 (Sun4c) with two hard disks.  The Sun4c
>will not boot from the disks (no preinstalled operating system), and
>it has no tape drive, so I followed the instructions to make my Sun3 a
>server so that I could boot the Sun4c as a diskless client.  (I
>upgraded my Sun 3/280 from SunOS 4.0.1 to 4.0.3 a couple weeks ago and
>installed the version of libc.so with resolver routines that use a
>nameserver, which Sun has made available on uunet.uu.net.)  When I try
>to boot the Sun4 over the internet this is what I get:

>Booting from: le(0,0,0)vmunix
>21a00 Using IP Address 129.6.48.12 = 8106300C		;client's address
>				;a very long delay, half an hour or longer
>Boot: RPC call failed (status 4)
>Boot: bad dialog with bootparam server (error 0x4)
>Boot: unable to mount root (error 0x4)
>root on  fstype
>Boot:							;hangs here forever


>The bootparamd and mountd are up along with eight nfsd's:

>mail-gw$ps ax
>  PID TT STAT  TIME COMMAND
>    0 ?  D     0:00 swapper
>    1 ?  I     0:01 /sbin/init -
>    2 ?  D     0:00 pagedaemon
>   45 ?  I     0:29 portmap
>   60 ?  I     0:10 in.named
>   80 ?  I     0:00 syslogd
>   89 ?  I     0:01 /usr/lib/sendmail -bd -q1h
>   97 ?  I     0:00  (nfsd)
>   98 ?  I     0:00  (nfsd)
>   99 ?  I     0:00  (nfsd)
>  100 ?  I     0:00  (nfsd)
>  101 ?  I     0:00  (nfsd)
>  102 ?  I     0:00  (nfsd)
>  103 ?  I     0:00  (nfsd)
>  104 ?  I     0:00  (nfsd)
>  105 ?  IW    0:00 rpc.mountd -n
>  111 ?  I     0:01 rarpd ie0 mail-gw.ncsl.nist.gov
>  115 ?  I     0:05 rpc.bootparamd
>  132 ?  I     3:56 update
>  136 ?  I     0:00 cron
>  151 ?  I     0:02 inetd
>  155 ?  I     0:00 /usr/lib/lpd
>  168 ?  IW    0:00 - D2400 ttyh0 (getty)
>  169 ?  IW    0:00 - D2400 ttyh1 (getty)
>...
>  182 ?  IW    0:00 - PC9600 ttyhf (getty)
> 3120 ?  I     0:01 rpc.mountd
> 3524 ?  IW    0:00 - PC9600 ttyh5 (getty)
> 4057 ?  I     0:00 - D2400 ttyh2 (getty)
>   49 co IW    0:00 keyserv
>  120 co IW    0:00 rpc.statd
>  121 co IW    0:00 rpc.lockd
>  212 co IW    0:00 - std.9600 console (getty)
>...
>mail-gw$


>The filesystems for the client exist and are exported by the server:
>(The server is mail-gw and the client is sunmgr.)

>mail-gw$exportfs
>/home/export/root/sunmgr.ncsl.nist.gov -root=sunmgr.ncsl.nist.gov,access=sunmgr.ncsl.nist.gov
>/home/export/swap/sunmgr.ncsl.nist.gov -root=sunmgr.ncsl.nist.gov,access=sunmgr.ncsl.nist.gov
>/home/export/exec/kvm/sun4c
>/usr/share
>mail-gw$


>mail-gw$cat /home/export/root/sunmgr.ncsl.nist.gov/etc/fstab
>mail-gw.ncsl.nist.gov:/home/export/root/sunmgr.ncsl.nist.gov / nfs rw 0 0
>mail-gw.ncsl.nist.gov:/home/export/exec/sun4 /usr nfs ro 0 0
>mail-gw.ncsl.nist.gov:/home/export/exec/kvm/sun4c /usr/kvm nfs ro 0 0
>mail-gw.ncsl.nist.gov:/usr/share /usr/share nfs ro 0 0
>#mail-gw.ncsl.nist.gov:/home/mail-gw.ncsl.nist.gov /home/mail-gw.ncsl.nist.gov nfs rw 0 0
>#mail-gw.ncsl.nist.gov:/export/crash /var/crash nfs rw 0 0
>mail-gw$


>I called the Sun hotline almost 48 hours ago and they haven't been
>able to figure it out yet.  Does anyone have any idea what is wrong?
>Are there more daemons I need to run on the server?  When will the GNU
>operating system be available?  (The SunOS 4.0.3 update contains a
>limited warrenty notice that reminds me of the FSF no warrenty
>statement, but SunOS 4.0.3 is not free, and the source costs even
>more.)

>  Joe Konczal
_________________________________________________________________________

First off -- a review of what "should" be happening:

	(1) When the diskless client (sunmgr) is booted, the boot PROM 
	    issues a reverse address resolution protocol (rarp) broadcast 
	    to get its Ethernet address translated to its Internet
     	    address. 

	(2) The server (mail-gw), running the rarp daemon (/usr/etc/rarpd)
	    passes the IP address back to the client. 

	(3) sunmgr's PROM uses trivial file transfer protocol (tftp) to
	    get the boot program. mail-gw sends the boot program.

	(4) The boot program now issues a "whoami" request to mail-gw
   	    to discover sunmgr's hostname.

	(5) mail-gw looks up the hostname and responds to sunmgr.

	(6) The boot program then issues a "getfile" request to get the
	    boot parameters.

	(7) Using the boot parameter daemon (/usr/etc/rpc.bootparamd),
	    mail-gw responds with the information contained in
	    /etc/bootparams.

	(8) The boot program then NFS mounts the root file system
	    (/export/root/sunmgr.ncsl.nist.gov), loads /vmunix into
	    sunmgr's memory and transfers control to sunmgr.

	(9) sunmgr then proceeds to boot as usual.

Apparently, sunmgr is gettting stuck at step 3 -- the tftp request for
the boot program is made by sunmgr, but there is no response from mail-gw.

Assuming the SunOS 4.0.3 Sun-4c tapes were installed correctly, and
/usr/etc/install/script/setup_client was run properly, there
should be a symbolic link in the /tftpboot directory of mail-gw that
links the boot program (boot.sun4c -- same directory) to sunmgr:
    		8106300C.SUN4C -> boot.sun4c


Before I go any further, I'm going to suggest the following:

On mail-gw, modify the following files:

	/etc/hosts:

	129.6.48.x	mail-gw mail-gw.ncsl.nist.gov loghost
				(where x is specific for mail-gw of course)
	129.6.48.12	sunmgr sunmgr.ncsl.nist.gov
---------------------------------------------------

	/etc/bootparams:

	sunmgr  root=mail-gw:/home/export/root/sunmgr.ncsl.nist.gov \
	        swap=mail-gw:/home/export/swap/sunmgr.ncsl.nist.gov
---------------------------------------------------
	/etc/ethers:

	x:x:x:x:x:x  sunmgr
			(where x:x:x:x:x:x is sunmgr's E-net hardware add.)
----------------------------------------------------

	/etc/rc.local:

	/bin/domainame ncsl.nist.gov
---------------------------------------------------

	/etc/rc.boot:

	hostname=mail-gw
----------------------------------------------------

	/etc/exports:

	/home/export/exec/sun4c  --or -- /home/export/exec/kvm/sun4c
		(wherever the sun4c binaries are located; export one only)
	/usr/share
	/home/export/root/sunmgr.ncsl.nist.gov -root=sunmgr,access=sunmgr
	/home/export/swap/sunmgr.ncsl.nist.gov -root=sunmgr,access=sunmgr
	/home/mail-gw     (I guess this is where your home dir is located)
---------------------------------------------------
---------------------------------------------------

On sunmgr (i.e., /home/export/root/sunmgr.ncsl.nist.gov/...):

	/etc/hosts:

	129.6.48.x	mail-gw mail-gw.ncsl.nist.gov
	129.6.74.12	sunmgr sunmgr.ncsl.nist.gov loghost
---------------------------------------------------

	/etc/rc.local

	/bin/domaniname ncsl.nist.gov
---------------------------------------------------

	/etc/rc.boot

	hostname=sunmgr
----------------------------------------------------

	/etc/fstab:

	mail-gw:/home/export/root/sunmgr.ncsl.nist.gov	/ nfs rw 0 0
	mail-gw:/home/export/exec/sun4c 		/usr nfs ro 0 0
	mail-gw:/usr/share				/usr/share ro 0 0
	mail-gw:/home/mail-gw				/home/sunmgr rw 0 0

	(Make sure the necessary empty mount directories are present
	on sunmgr -- mkdir as necessary.)

	(I don't think you want to be exporting/mounting sun4 binaries
	into /usr and sun4c binaries into /usr/kvm as was attempted.)
----------------------------------------------------
----------------------------------------------------

Now try rebooting mail-gw.  After it comes up, try booting sunmgr. The rarp
daemon on mail-gw should now look like:
(from ps ax):
		rarpd ie0 mail-gw

This may seem like a trivial point, but I have seen problems in diskless
support because the entire internet name was used. i.e.,
		mail-gw.ncsl.nist.gov

That is why I recommended the changes as previously stated for the /etc/hosts,
/etc/rc.boot, and /etc/rc.local.


If sunmgr boots properly, should see the following:

	Booting from: le(0,0,0) vmunix
	21a00 Using IP Address 129.6.48.12 = 8106300C
	hostname=sunmgr
	domainame=ncsl.nist.gov
	... the rest of the boot process should follow ...

Since the SPARCstation1 came with two hard drives, I'm suprised a 3.5"
floppy drive wasn't included.  If there is no floppy drive but a floppy
drive controller is present, /home/export/root/sunmgr.ncsl.nist.gov/vmunix
must be configured not to look for the floppy drive (or the hard drive)
during the boot process, in order to do an lance ethernet (le) boot from
mail-gw.  Reroll the kernel as necessary and run make.

I hope this provides some useful insight.

Richard Pigeon
pigeon at ndcheg.cheg.nd.edu

Univeristy of Notre Dame
Department of Chemical Engineering
Notre Dame, IN 46556
219-239-5699



More information about the Comp.unix.wizards mailing list