[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

corrupted disk labels

>     Date: 21 Feb 90  3:29
>     From: razzell%cs.ubc.ca@Warbucks.AI.SRI.COM (Dan Razzell)
>     How does one recover from a corrupted disk on a standalone machine?
>     Assuming just a few blocks are corrupted, and one of them happens to
>     be the label block, what can be done from the FEP to repair them? Or
>     do I have to reformat the whole thing?
>     In Genera 7.2, the only useful FEP command is Disk Format, and it looks
>     like a big hammer. Might there be something more graceful?
> The FEP label is replicated a number (like ~ 32) of times, so you must
> have more than a few blocks corrupted if you cannot boot Lisp.
> Assuming that only some of the label copies are damaged, you can
> rewrite them from Lisp.  Look at SI:EDIT-FEP-LABEL in


We had the same problem, called Arlene at Symbolics customer support who
sent the following:
[The note indicates that we already powercycled the machine --a mistake]

Good luck, Leslie Walko


Received: from wind.bellcore.com by flash.bellcore.com (5.58/1.1)
	id AA15033; Fri, 20 Oct 89 18:33:05 EDT
Received: from [] by wind.bellcore.com (5.58/1.1)
	id AA20264; Fri, 20 Oct 89 18:32:56 EDT
Received: from COMBINATOR.SCH.Symbolics.COM by
VERMITHRAX.SCH.Symbolics.COM via CHAOS with CHAOS-MAIL id 157767; Fri 20-Oct-89 11:58:54 PDT
Date: Fri, 20 Oct 89 12:02 PDT
From: Arlene Altshuler <Arlene@vermithrax.sch.symbolics.com>
Subject: A hack to access other disk labels
To: attila@wind.bellcore.com, collier@wind.bellcore.com
Cc: Arlene@vermithrax.sch.symbolics.com
Message-Id: <19891020190202.1.ARLENE@COMBINATOR.SCH.Symbolics.COM>
Character-Type-Mappings: (1 0 (NIL 0) (NIL :ITALIC NIL) "CPTFONTI")
                         (2 0 (NIL 0) (NIL :BOLD NIL) "CPTFONTCB")
Status: RO

These instructions assume you can put a second disk on the XL400.

After doing a hello.boot but before booting, type in the command:

	Set LMFS FSPT Unit unit-number

where unit-number refers to the disk with the LMFS partition on it.

After the machine is booted, compile the function below.  This
function will allow the disk to read other disk labels on it.  

Once the function has been compiled, you should be able to access the
LMFS on the disk.  Backup anything you wish to keep.

If you have questions/problems, you can call 1-800-824-4263 and ask for
Chuck (I'll be doing jury duty at least the first part of the week).

1;;; When accessing a FEP file, don't read just the first disk label, try
;;; them all until one works.  Use this if one of the disk labels get
;;; smashed.  Extracted from SYS:L-SYS;FEP-STREAM.LISP.  Should be in
;;; the SI package.
(defun fep-directory-read (access-path pathname directory disk-block
			   &optional not-found-ok)
  (using-resource (disk-event disk-event)
    (let ((dpn (cond ((eq directory :root)
		      (let ((unit (send access-path :unit)))
1;0			(disk-read disk-block disk-event (dpb unit %%dpn-unit 0))
			2(read-fep-label unit disk-block disk-event)
0			(check-block-feph disk-block "LABL")
			(dpb unit %%dpn-unit (labl-root-directory-dpn disk-block))))
		      (let ((entry (fep-file-lookup
				     (send pathname :directory-pathname-as-file))))
			(when (null entry)
			  (if not-found-ok
			      (return-from fep-directory-read nil)
			      (error 'fs:fep-directory-not-found :pathname pathname)))
			(fep-directory-entry-file-header-dpn entry))))))
      (disk-read disk-block disk-event dpn)
      (when (zerop (fepf-directory disk-block))
	(ferror "Not a directory file: ~S" pathname))