Google
 

Trailing-Edge - PDP-10 Archives - cuspmar86binsrc_2of2_bb-fp63a-sb - 10,7/dskrat/dskrat.mem
There are 3 other files named dskrat.mem in the archive. Click here to see a list.


                           DSKRAT

            DISK FILE DAMAGE ASSESSMENT PROGRAM








                    Date:  14-Nov-73
                    File:  DSKRAT.RNO
                    Edition:  3





        This document reflects the software of  version
        11.


        THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
        OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
        
        COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1973,1986. 
        ALL RIGHTS RESERVED.
DSKRAT                                                Page 2


1.0  INTRODUCTION

DSKRAT is a damage assessment program for Level D disk  file
structures.   It  scans  the  file  structure,  using  super
USETI's to  read  files,  and  reports  any  inconsistencies
detected to device LPT.  File name RAT.LST is used if LPT is
a directory device.

2.0  DSKRAT OPERATIONS

To run DSKRAT, log in as [1,2] (required for  super  USETI),
assign  to a file structure the logical name STR, assign LPT
if you wish it to be some device other than the printer, and
run  DSKRAT.  DSKRAT opens STR and LPT, reads the SAT blocks
into core and, if everything is acceptable,  types  RUNNING,
and begins to scan the file structure.

Note that DSKRAT now has a Lost Block Recovery routine which
will  get  called if the following additional conditions are
met.  1)  You  must  be  the  only  job  logged  in  and  2)
Scheduling must be set for no more logins.

If these conditions are not met, DSKRAT types  "%Lost  Block
Recovery  Will  Not Be Done" followed by the reasons for the
failure,  and  processing  will  continue  as  with  earlier
versions.

If the Lost Block Recovery routine is called and Lost Blocks
are  encountered  in  its  normal scan operations then files
with the  name  LSTBLK.XXX,  where  XXX  is  an  incremental
extension  beginning  with '001', will be created.  The RIBS
for these files will  be  modified,  via  Super-USETO's,  to
point to all Lost Blocks found on the specified unit(s).

DSKRAT looks up each file on the file structure and  reports
any  failures,  reads  and  verifies  all  RIBs of the file,
checksums each group and reports errors, reads the retrieval
information from the RIBs and constructs its own SAT blocks.
If there are any disagreements between the SAT's  read  from
disk  and  SAT's  constructed  by DSKRAT, error messages are
output.  That is, if any cluster is in more than  one  file,
or  in  a  file  but  not  marked  in  the SAT, that fact is
reported and the cluster and the file to  which  it  belongs
are  identified.   One  line is produced for each error.  It
includes the file name, cluster  number  and  logical  block
number of the cluster in question, and an error comment.

When DSKRAT has gone through the file structure  completely,
it prints a list of clusters in more than one file, clusters
DSKRAT                                                Page 3


in files by not marked in  SAT's,  and  clusters  marked  in
SAT's  but  not  in  any file.  Then, if any clusters are in
more than one file, it types

          END OF PASS 1, BEGINNING PASS 2

and starts over.  The second pass will produce an error line
for every file claiming clusters used by more than one file.
The first such file is not known in pass 1 until the  second
is found.  If pass 2 is not wanted, type CONTROL-C twice and
REENTER.  This will close LPT and DSKRAT will exit.

If no clusters are in more than one file, DSKRAT types

          END OF PASS 1, NO NEED FOR PASS 2

and exits.

Note that since DSKRAT reads in SAT's at  the  beginning  of
the  program,  if  other  users  are  referencing  the disks
(writing or deleting  files  or  reading  files  marked  for
deletion)  the  SAT  blocks will not be current and spurious
errors will  appear.   However,  true  errors  will  not  be
missed.

3.0  FLOW FOR DSKRAT

                    Read and verify home  blocks,  print  if
                      errors are found.

                    Save parameters.

                    Print the file  structure  name,  blocks
                      per cluster, time, and date.

                    Initialize disk SAT  (find  SAT.SYS  RIB
                      from  the  home block and read the SAT
                      blocks).

                    Clear the computed SAT and  the  trouble
                      SAT.

                    Read and verify MFD RIB, print if errors
                      are found.

                    Type RUNNING.

3.1  PASS1:         Call DOMFD.
DSKRAT                                                Page 4


3.2  END PASS 1:    List  all  lost  clusters.   (For   each
                      cluster,  list if the non-computed-SAT
                      and the disk-SAT = 1).

                    List  all  free  clusters.   (For   each
                      cluster,  list if the computed-SAT and
                      the non-disk-SAT = 1).

                    List all clusters used for more than one
                      file.   (For each cluster, list if the
                      trouble-SAT = 1).

                    Type END OF PASS 1

                    If there are no clusters used  for  more
                      than one file, type

                      NO NEED FOR PASS 2

                      and exit.

                    Otherwise, type BEGINNING PASS 2

3.3  PASS 2:        Clear the computed SAT.

                    Call DOMFD.

                    Exit.

3.4  DOMFD:         For all files in the MDF,

                     If the extension is UFD,

                       Get the  CFP  (which  points  to  the
                           first RIB),

                       Read and verify the first UFD RIB.

                       If the RIB is acceptable,

                         For all files in the UFD,

                           Perform   an   extended    lookup
                           (through  FILSER),  print  if  it
                           fails.
                           Get the CFP (which points to  the
                           first RIB).

                           Read and verify the first RIB and
                           all  extended  RIBs,  print if an
                           error occurs.

                           If any clusters are non-existent,
                           print and don't check the SAT's.
DSKRAT                                                Page 5


                           Checksum   each   group   (unless
                           RIPABC=1),   print  if  an  error
                           occurs.

                           Mark the  clusters  allocated  to
                           this file in the computed SAT.

                           If  any  clusters   are   already
                           allocated  or  have  a bit set in
                           the trouble SAT (for pass 2),

                             Set the  bits  in  the  trouble
                             SAT, and

                             Print MULTIPLY-USED.

                           If any clusters are not allocated
                           in the disk SAT, print FREE.

                         Continue.
            Continue.