home *** CD-ROM | disk | FTP | other *** search
/ Amiga Computing 67 / ac067a.adf / Utilities / FixDisk.doc < prev    next >
Text File  |  1978-03-30  |  12KB  |  264 lines

  1.                   FixDisk V1.2
  2.            (C) Copyright Werner Guenther 1990
  3.                 Freeware
  4.             USE THIS PROGRAM AT YOUR OWN RISK
  5.  
  6.  
  7.   FixDisk is a program to recover as much as possible from a defective disk.
  8.   I don't claim it is better than Diskdoctor or DiskSalv, but it has some
  9. features the others don't have:
  10.   It can recover damaged (unreadable) tracks. It has functions to check
  11. file integrity, to check the directory structure and functions to undelete,
  12. copy or show (even defective) files and fix corrupted directory pointers.
  13.   A damaged file structure can be recovered copying the data file by file
  14. to another disk (a la DiskSalv) or can be fixed in place (like Diskdoctor).
  15.   Everything can be selected with an intuition interface, so users can
  16. determine what action should be take place.
  17.   Now the bad news: The program does not keep track of loose blocks, those
  18. files without a file header, as DiskSalv does.
  19.   It doesn't process partitions > 48Mb.
  20.  
  21. USAGE
  22.  
  23.   After starting FixDisk from CLI or Workbench, you will see a set of
  24. gadgets with the available drives on the top of the window. Choose the
  25. desired drive by clicking its gadget. If the chosen drive is a 3.5" or a
  26. 5.25" drive, you will be asked to insert a disk. Now the program starts to
  27. read in the disk, cylinder by cylinder, searching for file/directory
  28. headers. This may take a while, so be patient.
  29.   You may be told of read errors and other messages at this point:
  30.   - Block 0 has to start with `DOS' or `KICK'. If it does not, you are
  31. asked if you want to fix it.
  32.   - The program couldn't find the root block and FixDisk wants to build a
  33. new one.
  34.   - The disk isn't validated and the program will validate it.
  35.   - There is no root block and no file header on the disk, meaning the
  36. disk is probably a custom disk or the Kickstart disk. FixDisk won't check
  37. anything and won't let you check, change or fix anything except read errors.
  38.    You may press break (CTRL-C) if you want to abort this operation. When
  39. the disk has been examined, you'll get a file requester on the left half of
  40. the window. The first column shows the key, the block number where the file
  41. header has been found, followed by DEL for deleted files or '-->' followed
  42. by the file name. Red (color 3) entries are directories. Click on the
  43. file name to select it or shift-click for multiple selections. Double-click
  44. a directory to enter the directory.
  45.   The right half of the window is filled with 17 gadgets. Some of them are
  46. disabled at startup. These gadgets will write onto the disk. To enable them,
  47. choose "Write enable" from the Miscellaneous menu.
  48.  
  49. THE GADGETS:
  50.  
  51. Scan mode - ALL
  52.     Tells FixDisk to read the entire disk, cylinder by cylinder. This is
  53.     the safest way of operation and makes sure you get any fileheader on
  54.     the disk. It is used if the disk is heavily damaged, or if you want
  55.     to undelete/recover all deleted files.
  56.  
  57. Scan mode - Directory
  58.     This is much faster than the previous one. It builds up the disk
  59.     structure by following the hash chains, i.e. by reading the directory.
  60.     Use this one for smaller problems like a 'key already set' error.
  61.  
  62. Scan mode - Deleted
  63.     Similar to 'Scan mode - All' but somewhat optimised to find
  64.     fileheaders. You may enter a filename to search for, if you wish.
  65.  
  66. Scan mode - Specify
  67.     Used to find deleted files. Lets you specify which cylinders to scan,
  68.     in case you already know where the fileheader was. The usual trick is
  69.     to type 'list keys' and to look where other files with the same date
  70.     are stored and to scan the cylinders in the vicinity.
  71.  
  72. Directory - Parent
  73.    This gadget is part of the file requester. The requester will show files
  74.    from the parent directory.
  75.  
  76. Directory - Root
  77.   Same as above, but steps to the root directory.
  78.  
  79. Show - Selected
  80.   Shows a file in Hex or ASCII. Like all other commands, the file is
  81.   processed without using DOS, but each sector (block) is read, checked and
  82.   displayed. It works just as "Copy" does (see below), so you can use this
  83.   function to see what exactly can be recovered from a defective file. If
  84.   the file is on a 'Standard Filesystem' (non FFS) disk, you will be asked
  85.   from where the program should take the file links. Each block that
  86.   belongs to a file is listed in the file header block and in one or more
  87.   "file list blocks" if the file is too large. On the "Standard Filesystem,"
  88.   each data block has a pointer to the next block belonging to the same file.
  89.   So there are two ways to determine how the file is built: using the links
  90.   listed in the file header, or using the inter-block links. It is much safer
  91.   if you select the file header links, since if only one block is wrong,
  92.   you'll get rubbish using the inter-block links.
  93.  
  94. Check Files - Selected
  95.   This function checks the selected files. With the standard filesystem it
  96.   is easy to determine if a file is good or defective, as each data block
  97.   has a checksum, a pointer to the file header, pointer to the next block,
  98.   etc. This is not the case with the FFS and there is no way to determine
  99.   if a given data block really belongs to that file. So even if the file
  100.   passes the test, it may still be corrupt.
  101.  
  102. Check Files - Deleted Checks
  103.   only deleted files, so you can see which one can be undeleted.
  104.  
  105. Check Files - All
  106.   Checks all files.
  107.  
  108. Undelete Files - Selected
  109.   This function first calls "check file." If the file seems to be OK, the
  110.   file header is inserted into the hash chain of its parent directory and
  111.   the bitmap is updated, but the "Bitmap Flag" changes to FALSE, just to
  112.   make sure the disk is validated after this operation.
  113.  
  114. Undelete Files - All
  115.   Tries to undelete all deleted files.
  116.  
  117. Copy Files - Selected
  118.   Works like "Show" (see above). You'll be asked to enter an output
  119.   path/directory. If the directory fills, you may enter a new path. If a
  120.   given file already exists in the destination directory, the program will
  121.   append ".2" to the filename (if .2 exists too, you'll get .2.2. (Don't
  122.   tell me this is dumb, I know that already.) As with "Check File," you may
  123.   get some error messages while the program is working. If a block doesn't
  124.   seem to belong to a given file, you'll be asked to "SKIP IGNORE ABORT."
  125.   Skip means the damaged block won't be copied, Ignore the block will be
  126.   copied, no matter what is on that block, Abort leaves "Copy Files."
  127.   Protection bits are preserved, dates are not.
  128.  
  129. Copy Files - All
  130.   Copies the entire disk, trying to recover as much as possible.
  131.  
  132. Wipe Files - Selected
  133.   This function clears the file header of a deleted file. Utilities like
  134.   Diskdoctor and DiskSalv will try to recover all files, even if they have
  135.   been deleted. If you don't want some files to pop up again using one of
  136.   the programs above, you may use this function. Be warned: After this
  137.   operation you'll have to use a disk-monitor/sector-editor to get the data
  138.   back.
  139.  
  140. Wipe Files - Deleted
  141.   Purges all deleted files.
  142.  
  143. Delete - Selected
  144.   Deletes a file, i.e. the file header will be taken out of its hash chain,
  145.   and the bitmap updated. The 'Bitmap Flag' will be set to FALSE as in
  146.   "Undelete" (see above). This function even works if the DOS delete does
  147.   return an error.
  148.  
  149. Delete - Faulty
  150.   Checks all files and deletes those with errors. The program may ask you
  151.   before deleting a file, if you wish.
  152.  
  153. Info - Device
  154.   Returns some information about the selected device.
  155.  
  156. Validate - Disk
  157.   This is not the Amiga validator but my own. The main difference between
  158.   them is that this one tries to repair the disk structure. You may get
  159.   some error reports: loops in a hash chain, wrong or unreadable file
  160.   headers, checksum errors or "key already set," two files claiming to own
  161.   the same data block. You will be informed about any error and prompted
  162.   before FixDisk attempts to fix it.
  163.  
  164. Rename - Selected
  165.   Rename a selected file.
  166.  
  167. Recover - Track
  168.   Tries to recover tracks with read/write errors on floppy disks. It uses
  169.   the RAWREAD command from the trackdisk.device and therefore works with
  170.   the trackdisk.device only. It will RAWREAD the track into a buffer,
  171.   search the syncs and decode the sectors. If a sector sync is missing, the
  172.   program tries to determine where the sector has to start. When the track
  173.   has been decoded, you'll get a window displaying: the number of the
  174.   sector (1-11), the first four longwords of that sector, if the checksum
  175.   is OK or BAD, and if that block is ALLOCated or FREE. If an entries is
  176.   red (color 3), the sector didn't have a sync. If instead of the first few
  177.   bytes you get "unreadable," the program couldn't even work out where the
  178.   sector should have been. If you are not satisfied with the result, you
  179.   may click RETRY to restart the procedure and usually get a different
  180.   result. If you think the result is good enough, click on WRITE. This will
  181.   format the track and write those sectors back. If the track has a hard
  182.   error, i.e. a damaged surface, it may happen that the track can't be
  183.   formatted. Click RETRY several times and the defective part of the track
  184.   may fall into the gap at some point. If this doesn't seem to work, select
  185.   SAVE from the requester and save the track to a file. Now exit FixDisk,
  186.   backup the disk and restart FixDisk using the backup. Select
  187.   Recover-Track and click LOAD from the requester, filling the buffer with
  188.   the data from the original disk. After selecting WRITE again, the track
  189.   should be recovered.
  190.  
  191.   Gadgets on the "Recover - Track" requester:
  192.  
  193.       RETRY
  194.     read and decode the same track again.
  195.  
  196.       WRITE
  197.     reformat the track an write the data back to the disk.
  198.  
  199.       NEXT / NEW
  200.     FixDisk builds a list of unreadable tracks. "NEXT" steps to the
  201.     next damaged track on the list. If the list is empty, the gadget
  202.     will display "NEW" instead.
  203.  
  204.       FIND
  205.     Searches a pattern anywhere in the buffer. Useful if you know the
  206.     first few bytes of a sector (which is quite easy to determine on a
  207.     standard file system disk).
  208.  
  209.       SAVE
  210.     Save the decoded track to a file.
  211.  
  212.       LOAD
  213.     Read a decoded track from a file into the buffer.
  214.  
  215.       CANCEL
  216.     Quit 'Recover - Track' and return to FixDisk's main window.
  217.  
  218.   The window displaying the sectors has several gadgets too:
  219.  
  220.       LEFT ARROW
  221.     If a sector sync mark is missing, FixDisk will compute the position
  222.     of that sector within the buffer and decode the sector from this
  223.     point. You may manually correct this position using the arrow
  224.     gadgets. The left arrow will shift the starting position one BIT
  225.     (not byte) to the left.
  226.  
  227.       RIGHT ARROW
  228.     Shift sector one bit to the right.
  229.  
  230.       NUMERIC STRING GADGET
  231.     the string gadget will display the position of the sector relative
  232.     FixDisk assumption.
  233.  
  234.       SECTOR DATA
  235.     clicking onto the sector data area will 'lock' the sector, i.e.
  236.     will prevent FixDisk from redecoding this sector when using
  237.     RETRY from the requester.
  238.  
  239. THE MENU
  240.   There are actually only two menu items:
  241.  
  242. Ignore Readerrors
  243.   Usually you get a requester asking RETRY IGNORE if an error occurs. This
  244.   may be annoying if the disk has many defective tracks. This item will
  245.   stop that requester popping up. It has also a second function. If you are
  246.   using the "Copy" function, the program will stop every time a file seems
  247.   to be damaged and ask what action should be taken. With "Ignore
  248.   readerrors" on, errors are just listed, but the program will act as if
  249.   you have chosen IGNORE.
  250.  
  251. Write Enable
  252.   Enables those gadgets that will write onto the disk.
  253.  
  254.  That's all. Well, almost. The program has about 80 requesters, some of
  255. them have not been explained, but they should be self-explanatory.
  256.  
  257. Send flames, bug reports, requests to
  258.  G35@DHDURZ1.BITNET
  259.  
  260. Werner Guenther
  261. Wingertspfad 12
  262. D 6900 Heidelberg (FRG)
  263.  
  264.