rcd@fed.frb.gov (07/12/89)
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@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