4.0.3 Dataless Upgrade Fails

rcd at fed.frb.gov rcd at fed.frb.gov
Thu Jul 13 02:10:07 AEST 1989


When upgrading a "dataless" node to 4.0.3, you may run into some trouble.

In my case, I had a 3/60 with a 91MB CDC "paging pack" (configured with
root, swap and /tmp only), and a tape drive on a remote 3/180, already
upgraded to 4.0.3 (with considerable trouble... my 9-track distribution
had a hard read error in the middle of miniroot <aaarrrggghhh!>. Luckily I
had 1/4" distribution as well, although I had to do meatball surgury on a
couple of machines to make use of it :-(.

*Anyway*, what happens is there are (entirely too many) scripts in
/usr/etc/upgrade on the miniroot, and one of them, extract_clntroot, has a
bug in it that causes the upgrade procedure to reject a perfectly good
tape. If your tape goes offline in the middle of the upgrade, you can
guess that this is the problem.

On line 34 of extract_clntroot, there is an assignment,

	clientarch=archtype

which should read

	clientarch=${archtype}

Which means that the install procedure will fail unless you can find a
SunOS distribution tape for architecture "archtype". A context diff is
provided below.

NB: if you have gone through the install procedure a couple of times, you
may find that the file /tmp/delpos aleady exists (it gets deleted if you
exit normally, but with this error, you get caught in a loop and have to
abort). That file has the "delta file positions", telling the script how
many files to fsf to get to the desired file.  extract_clntroot has a
statement 

	tapepos=`awk '{ if ($1 == "root) print $2 }' /tmp/delpos`

which, for my sun3 tape, is supposed to result in tapepos=6. But the
procedure that creates delpos must append on that file, since there were
three "root 6" records in that file, resulting in tapepos being set to "6
6 6", throwing off the call to chkextract. If this happens to you, just rm
/tmp/delpos.

Bob Drzyzgula
rcd at fed.frb.gov; uunet!fed!rcd
Senior Information Systems Analyst
Federal Reserve Board
Washington, DC   20551

---------------------Context Diff Follows---------------------

*** extract_clntroot	Wed Jul 12 10:52:21 1989
--- extract_clntroot.old	Wed Jul 12 10:51:50 1989
***************
*** 31,37 ****
  else
      basedir=${UFS}/
      clientname=""
!     clientarch=${archtype}
  fi

  awk '{ if ((NR > 4) && ( $5 == "tar")) print $3 " " $2 }' ${workdir}/TOC >> /tmp/delpos
--- 31,37 ----
  else
      basedir=${UFS}/
      clientname=""
!     clientarch=archtype
  fi

  awk '{ if ((NR > 4) && ( $5 == "tar")) print $3 " " $2 }' ${workdir}/TOC >> /tmp/delpos



More information about the Comp.sys.sun mailing list