home *** CD-ROM | disk | FTP | other *** search
-
-
- FixDisk V1.0
- © Copyright Werner Gunther 1989
- Freeware
- USE THIS PROGRAM AT YOUR OWN RISK
-
-
- FixDisk is a program to recover as much as possible from a defective
- disk. I don't claim it is better than DiskDoctor or DiskSalv, but it
- has some features the others don't have: First of all it can recover
- damaged (unreadable) tracks, it has functions to check file integrity,
- to check the directory structure and functions to undelete, copy or
- show (even defective) files, fix corrupted directory pointers, etc.
- Everything can be selected with an intuition interface, so everyone
- can determine what action should take place by himself.
-
- Now the bad news: The program does not keep track of "loose blocks",
- i.e. files without a file header - like DiskSalv does. It does only
- work with disks and partitions using a maximum of 4063 blocks. It may
- work with larger disks too, but I don't have a hard disk, so I
- couldn't test it.
-
- Disks with more than 4063 blocks are rejected by the program. You may
- force the program to accept <48 Mb partitions adding DOOM to the
- command line (i.e. FixDisk doom). As I said before, it has not been
- tested and should only be used if anything else failed, and you're
- just about to format the partition.
-
- USAGE:
-
- After starting FixDisk from Cli or Workbench you will see a set of
- gadgets with the available drives on the top of the window. Choose the
- desired drive by clicking its gadget. If the choosen drive is a 3.5in
- or a 5.25in drive you will be asked to insert a disk. Now the program
- starts to read in the disk, cylinder by cylinder, searching for file
- and directory headers. This may take a while, please be patient.
- Beside read errors, you may get some other messages at this point:
-
- Block 0 has to start with DOS or KICK. If it does not, you are asked
- if you want to fix it.
-
- The program couldn't find the root block and FixDisk wants to build a
- new one.
-
- The disk isn't validated, the program is going to validate it.
-
- There is no root block and no file header on the disk. The disk is
- probably a custom disk or the Kickstart disk. FixDisk won't check
- anything - and won't let you check, change or fix anything - except
- read errors.
-
- You may press break Ctrl-C anytime if you want to abort this
- operation. When the disk has been examined, you'll get a file
- requester on the left half of the window. The first column shows the
- key (the block number where the file header has been found) followed
- by DEL for deleted files or -->, followed by the filename. Red (Color
- 3) entries are directories. Click on the filename to select it or
- Shift-click for multiple selections. Double click a directory to enter
- that directory.
-
- The right half of the window is filled with 17 Gadgets. As you will
- notice, some of them are disabled at startup. These are gadgets that
- will write on to the disk. To enable them you have to choose Write
- Enable from the Miscellaneous menu (there is only one menu anyway).
-
- THE GADGETS
-
- DIRECTORY - Parent
-
- This gadget is part of the file requester. The requester will show
- the files from the parent directory.
-
- DIRECTORY - Root
-
- Same as above, but steps to the root directory.
-
- SHOW - Selected
-
- Shows a file in Hex or Ascii. Like all other commands, the file is
- processed without using DOS, but each sector (block) is read in,
- checked and displayed. It works exactly the same way Copy (see below)
- would do, so you can use this function to see what exactly can be
- recovered from a defective file. If the file is on a Standard File
- System (non FFS) disk, you will be asked where the program should take
- the file links from. Each block that belongs to a file is listed in
- the file header block (and in one or more "file list blocks" if the
- file is too large). On the Standard File System each data block has a
- pointer to the next block belonging to the same file, too. So we have
- two ways to determine how the file is build up: Using the links listed
- in the file header, or using the inter-block links. Anyway, it is much
- safer if you select the file header links, if only one block is wrong,
- you'll get a lot of rubbish using the inter-block links.
-
- CHECK FILES - Selected
-
- This function checks the selected files. With the Standard File System
- it is very easy to determine if a file is OK or defective, as each
- data block has a checksum, a pointer to the file header, pointer to
- the next block, etc. This is not the case with the FFS and there is no
- way to determine if a given data block really belongs to that file.
- So, even if the file passes the test, it may still be corrupted.
-
- CHECK FILES - Deleted
-
- Checks only deleted files, so you can see which one can be undeleted.
-
- CHECK FILES - All
-
- Checks all files.
-
- UNDELETE FILES - Selected
-
- The first thing this function does, is call Check Files. If the file
- seems to be OK, the file header is inserted into the hash chain of its
- parent directory and the bitmap will be updated, but the Bitmap Flag
- will change to FALSE, just to make sure the disk is going to be
- validated after this operation.
-
- UNDELETE FILES - All
-
- Tries to undelete all deleted files.
-
- COPY FILES - Selected
-
- Works like Show (see above). You'll be asked to enter a output path or
- directory. If the directory gets full, you may enter a new path. If a
- given file already exists in the destination directory, the program
- will append ".2" to the filename. If ".2" exists too, you'll get
- ".2.2". Don't tell me this is dumb, I know that already.
-
- Like Check File you may get some error messages while the program is
- working. If a block doesn't seem to belong to a given file, you'll be
- asked to SKIP IGNORE ABORT. Skip means the damaged block won't be
- copied, Ignore means the block will be copied no matter what is on
- that block, and Abort leaves Copy Files. Protection bits are
- preserved, dates are not.
-
- COPY FILES - All
-
- Copies the entire disk, trying to recover as much as possible.
-
- WIPE FILES - Selected
-
- This function clears the file header of a deleted file. Utilities like
- DiskDoctor and DiskSalv will try to recover all files, even if they
- have been deleted. If you don't want some files to pop up again using
- one of the programs above, you may use this function. Be warned: After
- this operation you'll have to use a disk monitor or sector editor to
- get the data back.
-
- WIPE FILES - All
-
- Purges all deleted files.
-
- DELETE - Selected
-
- Deletes a file, i.e. the file header will be taken out of its hash
- chain and the bitmap updated. The Bitmap Flag will be set to FALSE as
- in Undelete (see above). This function even works if the DOS delete
- does return an error.
-
- DELETE - Faulty
-
- Checks all files and deletes those with errors. The program may ask
- you before deleting a file, if you wish.
-
- INFO - Device
-
- Returns some information about the selected device.
-
- VALIDATE - Disk
-
- This is not the Amiga validator, but my own. The main difference
- between them is that this one tries to repair the disk structure. You
- may get some error reports: Loops in a hash chain, wrong or unreadable
- file headers, checksum errors or Key Already Set, two files claiming
- to own the same data block. The usual action that takes place is to
- ask you if the corrupted file may be deleted. You may check what
- exactly was wrong using Show and Check Files afterwards.
-
- RECOVER - Track
-
- This function tries to get as much as possible from a defective track.
- It uses the RAWREAD command from the trackdisk.device and therefore
- works with the trackdisk.device only. What it actually does, is to
- RAWREAD the track into a buffer, search the syncs, and decode the
- sector. This may take some seconds, the routine to decode isn't very
- fast.
-
- If a sector sync is missing, the program tries to determine where the
- sector has to start. This works sometimes, but is usually wrong.
-
- When the track has been decoded, you'll get a window displaying the
- number of the sector (1-11), the first four longwords of that sector,
- if the checksum is OK or BAD, and if that block is ALLOCated or FREE.
- If an entry is red (color 3), the sector didn't have a sync. If,
- instead of the first few bytes, you get Unreadable, the program
- couldn't even work out where the sector should have been.
-
- If you are not satisfied with the result, you may click RETRY. This
- will restart the procedure and usually gives a different result (if
- the track has a hard error, i.e. a damaged surface).
-
- If you think the result is good (or good enough) click on WRITE. This
- will format the track and write those sectors back.
-
- It may happen that the track can't be formatted. Click RETRY several
- times, the defective part of the track may "fall" into the gap at some
- point. If this doesn't seem to work, pull out the disk and insert a
- new, EMPTY, even unformatted, disk and write the track on this disk.
- Now comes the tricky part: Back-up the original disk and copy the
- recovered track to the back-up with DiskZap, DiskX, Sectorama, etc.
-
- Hmmm... No, much too complicated. The Amiga is a multitasking machine!
- Back-up the disk WHILE FixDisk is running, insert the back-up into the
- drive you have selected and click RETRY.
-
- THE MENU
-
- There are actually only two menu items:
-
- Ignore Readerrors:
-
- Usually you get a requester asking RETRY IGNORE if an error occurs.
- This may be very annoying if the disk has a lot of defective tracks.
- This item will stop that requester popping up. It has also a second
- function: If you are using the Copy function, the program will stop
- every time a file seems to be damaged and ask what action should be
- taken. With Ignore Readerrors on, errors are just listed, but the
- program will act as if you have choosen IGNORE.
-
- Write Enable:
-
- Enables those gadgets that will write on to the disk.
-
- That's all. Well, almost. The program has about 80 requesters, some of
- them have not been explained, but they should be self-explanatory.
-
- Send flames, bug reports, requests to:
-
- G35@DHDURZ1.BITNET
-
- Werner Gunther
- Wingertspfad 12
- D 6900 Heidelberg (FRG)
-
-