home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
500.lha
/
DiskFragReport_v2.00
/
dfrags.docs
< prev
next >
Wrap
Text File
|
1991-04-08
|
11KB
|
255 lines
Disk Fragmentation Report Version 2.00
©1990 Custom Services
General:
This utility will read all the disk devices on your system and analyze the
BitMap for each partition(this is default). If the options are selected
It will also analyze the file system on each partition. The result for
the analysis will be the number of fragments on the disk(BitMap), and
file system(if selected). Several options exist to control how much is
reported. This is a CLI only utility.
This utility is released into the public domain as shareware. If you
find it useful, please send the basic registration fee to Custom Services.
The Options for registration are:
Amount | Fee | Service
-------+----------+-------------------------------------------------------
$5 | Basic | Basic Registration fee, everyone must send this!
-------+----------+------------------------------------------------------
$5 | Updates | Update fee for future version if I supply disk
-------+----------+------------------------------------------------------
$3 | Updates | Update fee for future version if you send a disk
-------+----------+------------------------------------------------------
Send $5 for the basic registration plus $5 for updates will get you a
copy of the next version of this program. I will supply the disk. Sending
$5 plus $3 will get you notification of updates. I include all my shareware
utilities on the disk.
Please send all registration and update fees of your choice to:
Custom Services
P. O. Box 254
Moorestown, NJ 08057
Compatibility:
This program is compatible with 1.3 and 2.xx versions of the operating
system. It has been tested with both operating systems. It should work
with any disk drive(either hard drive or floppy).
Now and the Future:
The future plans are to include additional file system/BitMap validity
checks. The bitmap may have blocks flagged as used when they are not or
blocks used but not flagged. These checks will catch these situations.
Currently, the root block is partially validated and the file system is
only checked for a few sanity checks. The Version 2.0 release includes
a complete file system verify that will check file data, hash indeces, and
parent pointers. This version is a CLI only.
Command:
DFRAGS <Options> <Single device>
Single device is an optional device/partition specification. If you give
DFRAGS a device, it will only check that device. If this is not present,
all devices will be checked. The device may have a colon ":" on the end
as in "DF0:", or it can be left out as in "DH0".
Options:
By default all the options are off. There are the following command
options:
-D Verbose Debug option. Every I/O will include the block(key)
number and the buffer address for example. Every memory
allocation will display the size, buffer address and what
memory available after the allocation. This information is
mostly for my purposes. If you should have a problem, this
option may help you locate bad blocks.
-R Report file allocation information. This option will display the
block numbers used for the root, directories and the files. The
sector information that is not zero is printed. It will print the
BitMap data also. It is important to note, that in a BitMap block
all the data is not used(in the last block). The file system does
not zero out those unused bits, they will generally be garbage.
-Z Report file allocation and zeros. This option is the same as the
"-R" option except that zeros are printed. The data is printed
exactly as in the sector.
-F Check File Fragmentation. This option will cause the file system
to be traversed. Each file is checked for contiguous disk blocks.
This option will cause the tested devices to have the file
fragmentation totaled and reported. -O, -I, or -V imply -F.
-I Display individual files. This option requests the file
fragmentation be reported on a file by file basis. This option
implies the "-F" option.
-O Assume the 1.3 file system. There is a difference in the way that
the 1.3 file systems allocate files versus the 2.xx file system.
The 1.3 file system will allocate the first block of a file in one
area and the rest in another. This option will remove one
fragment from the file total. Under 2.xx the file system is a bit
better, attempting to allocate a file in one contiguous area. This
option implies the "-F" option.
-V This option causes additional checks to occur. This implies the
"-F" option for file system checking. The datablocks of all files
are read to ensure readability. This option will slow things down
because it creates a lot of additional I/O operations. With this
option on, every file is read from beginning to end as they are
found on the disk. This will verify that everything is current.
These options are all off by default. This means that just typing in
the command "DFRAGS" will give you all devices/partitions bitmap
fragmentation without file data checks. To get the maximum information
use: DFRAGS -Z -V -D. The "-D" should not be used for "normal" situations,
I recommend the command: DFRAGS -O -V for 1.3, and DFRAGS -V for 2.xx.
This will give you a report on file fragmentation with the most integraty
checks. To see the individual files that are fragmented, just add the -I
option.
Error Messages:
^C - ***Break***
You entered a ^C and can abort or continue.
No Memory available for disk buffers
A memory allocation failed while trying to get buffers for the
disk. You will have to shutdown some of you other tasks and try
again.
Unable to get a Port from CreatePort
Unable to get pointer from CreateExtIO
Unable to Open device
These are messages that indicate that you have a very messed up
system! Your device tables are probably corrupt. A re-boot is
in order!
Error Reading Block Zero, error = nnn
A read was done on the BootBlock of the current device. It failed
with the indicated error code. This could indicate a bad spot on the
device or even a possible viral infection in your system.
Boot Block for device/partition is invalid or non-dos
The data in the first four bytes of the Boot Block was not an
indicator for either type of file system(DOS^@(SFS) or DOS^A(FFS)).
This disk is either corrupt, damaged, or contains a special boot
block. It is also a possible viral infection.
disk read error on Root block
The Root block was either not found or generated a disk error when
read from the disk.
Root Block may be corrupt.... skipping
The Root Block failed several sanity checks. It may work ok, but is
corrupt. A backup, format and restore are probably indicated for this
partition or floppy.
Bit Map shows as invalid(nnn)
The Root Block indicator says that the current bit map may be in the
process of being updated. nnn is the current value which should be
either 0(if invalid), or -1(if valid). If other values show up, your
root block is corrupt.
CheckSum Error in Root Block, may be corrupt... skipping
The checksum for the Root block of the current device is non-zero.
This indicates a corrupt Root directory.
I/O error reading BitMap block:nnnn
An I/O error occurred during the bit map processing. The error will
prevent an accurate count of the fragmentation.
BitMap Checksum error: Block nnn may be invalid or corrupt
The checksum of a BitMap block is invalid, the BitMap may be corrupt.
No Memory available for file/dir buffers at <name>
An Allocation of memory failed due to not enough memory. Shutting down
some other tasks will increase the memory available.
I/O error reading Dir/File block: nnnnn from <name>
A read error occurred while reading directory or file header
information.
Dir: <name> parent hash index (nn) not same as file hash index(nn)
File:<name> parent hash index (nn) not same as file hash index(nn)
The directory or file name hashes to a value that does not match the
location in the parent hash table. This probably indicates a corrupt
parent directory or the directory/file name is corrupted.
Dir: <name> parent (nnnn) not parent(mmmm) block
File:<name> parent (nnnn) not parent(mmmm) block
The block number of the parent directory(mmmm) does not match the
parent field in the directory or file header data. This indicates a
possible linkage problem or a corrupt disk.
Dir: <name> OwnKey (nnnn) not block number(mmmm)
File:<name> OwnKey (nnnn) not block number(mmmm)
The block number of the current file or directory does not match the
block number in the header data. This indicates a possible linkage
problem or corrupt disk.
Dir: <name> may be corrupt(spare words not zero)
Dir: <name> may be corrupt(checksum not zero)
File:<name> may be corrupt(spare words not zero)
File:<name> may be corrupt(checksum not zero)
The file header or directory block has failed one of the sanity checks
or the checksum is non-zero. This could indicate a corrupt disk.
Invalid block type in key nnnn for directory <name>
The directory has an entry for a sub-directory or file that is not
either. This is an indication of a corrupt disk.
ShareWare:
This program, the documentation and all files in the archive are
copyrighted by Custom Services ©1990,91. All rights are reserved. No
commercial use or financial gain may be made using this product without
the consent of Custom Services. This archive may be redistributed in
any public domain collection or on any BBS provided all files are left
intact. Support Shareware. Amazing Computing has permission to distribute
this archive.
History:
1.00 -- initial version.
1.01 -- fixed several small bugs
1.06 -- re-created all the 1.01 bug fixes to a pre 1.00 version due to
HD crash/source loss. Added several new features.
fixed a divide by zero error if no fragments on a device!
1.07 -- fixed a bug in the BitMap analysis. Fixed a debug output that
was not printing the whole bitmap(last word missing).
2.00 -- Added many sanity checks. Improved the BitMap fragmentation
removing several minor bugs. Fixed a bug that prevented the
processing of larger disk devices/partitions(53 meg limit).
Added error documentation. Added file data validation option.
Documentation updated, error information and new options added.
2.02 -- Corrected a couple of debug printouts to show the correct
information and updated the documentation.