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