--------------- Introduction ---------------
Completly re-written SFSCheck 1.x which can be found
in most SFS distributions. All functions from the old program
are available in this new utility. Additionally there are many new
features and bug fixes.
Although it is not the final version, its functionality
overtakes the original SFSCheck.
There are stil some upgrades to come in the final version.
--------------- Legal ---------------
The author DOES NOT take any responsibility for any damage
occured while using this tool.
!THERE ARE NO WARRANTIES!
SFSCheck may be freely distributed. It is freeware!
--------------- New Features ---------------
- checks and displays device fragmentation
- able to create a list of fragmented files
- able to create a list of objects with special SFS attributes
- able to check the links state (SOFT only SFS currently do not support the HARD links)
and inform about broken ones !
- recognizes volumes given as a argument
- support for locale.library (fully localized)
- displays crucial information about device
- reduced memory fragmentation
- support for CTRL+C command
- buildin defragmenter
- can' purge .recycled directory before defragment device
- smart .recycled detection (you can safely rename .recycled directory)
- smartbuffer feature for optimal defragmentation speed
- stackextension (no more crashes due low stack situation)
--------------- Usage ---------------
Template: DEVICE/A,
LOCK/S,FRAGLIST/S,SEEK/S,FORCE/S,QUICK/S,DEFRAGMENT/S,
P=PURGE/S,NFP=NOFULLPATH/S,
NCHK=NOCHECK/S,NORB=NOROOTBLOCKS/S,NOASC=NOADMINSPACECONTAINERS/S,NONC=NONODECONTAINERS/S,NOOC=NOOBJECTCONTAINERS/S,NOBMP=NOBITMAP/S,NOFRG=NOFRAGMENTATION/S,
FRL=FRAGMENTATIONLIMIT/N/K,ADDB=ADDBUFFERS/N/K,L=LINES/N/K,RAHS=READAHEADSIZE/N/K
Required arguments:
DEVICE/A: device/volume to check
Optional arguments:
LOCK/S: If you specify this parameter, SFScheck locks
the device/volume for the duration of the scan
by using ACTION_INHIBIT.
FRAGLIST/S: If you specify this parameter, SFScheck displays a
detailed list of fragmented files of the specified
device/volume with this syntax:
...
Fragmented file: FileName [Object Node Number], number of fragments
...
SEEK/S: If you specify this parameter, SFScheck displays a
detailed list of objects with special SFS attributes
of the specified device/volume with this syntax
...
Object Type: Object Name [Object Node Number] Attributes: [List of Attributes]
...
For liks it will also prints it's state and path to linked object.
FORCE/S: If you specify this parameter, SFScheck will force check or/and defragment
for too old version of SmartFileSystem or no SmartFileSystem devices.
QUICK/S: If you specify this parameter, SFSCheck will perform only
ObjectContainers and fragmentation check.
You can also specyfy a SEEK/S, FRAGLIST/S FORCE/S or FP=FULLPATH/S options.
DEFRAGMENT/S: If you specify this parameter, SFSCheck will defragment the device
after check it. For now it's only a simple reworked old SFSDefrag
but I will change this ... soon.
Also this option require SmartFileSystem 1.83+ and refuset to work
with anything bellow.
P=PURGE/S: If you specify this parameter, SFSCheck will unprotect if nesesary and
delete all files in .recycled directrory before defragment device.
SFSCheck will detect is .recycled directory exists then specyfy
this option when device is formated without it is safe.
You can also rename this directory and PURGE/S will still work without
any problem.
Requires DEFRAGMENT to work
NFP=NOFULLPATH/S: Forces SEEK, FRAGLIST and PURGE to display only the object names
without a full path to it. Requires either of these to work.
NCHK=NOCHECK/S: If you specify this parameter, SFScheck will skip all it's
checks (RootBlocks, AdminSpaceContainers, NodeContainers,
ObjectContainers, Bitmap, Fragmentation)
Useful when you want only defragment the device
NORB=NOROOTBLOCKS/S: If you specify this parameter, SFScheck will skip
RootBlock check
NOASC=NOADMINSPACECONTAINERS/S: If you specify this parameter, SFScheck will skip
AdminSpaceContaines check
NONC=NONODECONTAINERS/S: If you specify this parameter, SFScheck will skip
NodeContainers check
NOOC=NOOBJECTCONTAINERS/S: If you specify this parameter, SFScheck will skip
ObjectContainers check and fragmentation check
NOBMP=NOBITMAP/S: If you specify this parameter, SFScheck will skip
Bitmap check
NOFRG=NOFRAGMENTATION/S: If you specify this parameter, SFScheck will skip
Fragmentation check
FRL=FRAGMENTATIONLIMIT/N/K: If you specify this parameter, SFScheck will skip
device defragmentation if fragmentation is lower
than limit.
example: if fragmentation is 27% and
fragmentation limit is set to 50 SFSCheck
will skip defragmentation because
fraglimit > fragmentation
but if fragmentation
is for example 73% SFSCheck will defragment
device (fraglimit < fragmentation)
ADDB=ADDBUFFERS/N/K: Indicate how many buffers SFSCheck will add for defragmentation.
There is higly recomendet to set rather high values to speed up
defragmentation process. All buffers are removed after defragmentation.
L=LINES/N/K: The number of lines SFScheck uses for its cache
during the check. Default is 128 lines
RAHS=READAHEADSIZE/N/K: The size of each cache line;
the entered value is treated as the number
of kilobytes to use. Default is 8 kb
example: L=512 RAHS=32 forces SFScheck to use 512 lines, 32 kb each,
requires 16 MB of free memory (512 * (32 * 1024))
--------------- Notes - SFSCheck ---------------
This tool checks a SFS disk's structure and looks for anything which is wrong.
It makes no modifications, it only reads the device.
Any error it finds will be displayed.
You can use this tool to give more detailed information when
reporting bugs to SFS author, but also to convince yourself that the SFS
device is still working smoothly.
If SFScheck reports errors, the best thing to do would be
to backup important files and reformat.
Continous using of a SFS disk with errors will eventually
result in fatal errors which could mean you lose all data on that
device. In that case try to use a SFSSalve utility to recover your data.
Do not run SFScheck when you are writing something to the
disk. SFScheck will get confused (because the structure
changes right under its feet) and reports errors which
are not really there. This is not dangerous as SFScheck only
reads the disk (it can not repair a disk), but you should be
aware of this when using SFScheck. Use LOCK/S to avoid this.
SFScheck can be used on SFS devices only. Using it on other type
of devices is harmless. SFScheck will simply report that
the device is not in the correct format.
SFScheck returns following values:
- 0 (OK) - everything is OK
- 5 (WARN) - CTRL+C break detected
- 10 (ERROR) - wrong command line argument
- 20 (FAIL) - scan error occured (bad block, cache error, SFS fails?)
Increase the ReadAhead cache size by using L=LINES/N/K and RAHS=READAHEADSIZE/N/K
to speedup the check process. The default values makes check slow
exp. when you have a many small fileson it, increase it
can dramaticly speedup check process.
--------------- Notes - Defragmenter ---------------
Defragments files and free space.
100% transparent; defragment a disk while you're still
reading and writing data from/to it (SFS won't guarantee
a 100% defragmented disk when the disk has been modified
during defragmentation though).
Defragmentation uses the same safe-writing techniques which
SFS always uses. This means a crash, reset or power failure
will not cause you to lose any data, even while the
defragmenter is running.
The price you pay for this feature is speed and a not 100%
optimal defragmentation (there is a big difference between
a simple defragmenter and a disk optimizer like ReOrg).
A very simple interface is provided to activate the
defragmenter built-in SFS. See packets.h and the source of
SFSdefragmentGUI for more information.
Increase the Buffer size by using ADDB=ADDBUFFERS/N/K to
speedup defragmentation process. The recomended value
for 512 bytes / block partition is '10 buffers/MB' ...
With the dafault value the defragmentation process will be
*EXTREMALY SLOW* exp. for quite big and full partitions.
--------------- Notes - SmartBuffer ---------------
From version 2.41 SFSCheck try to chose a best buffer size
for defragmentation process, to get best defragmentation speed.
The SmartBuffer chose ADDBUFFERS parameter automaticly.
This method is called smart because it check many things before
add a buffers to device to avoid a low memory situation for
example.
If you do not want use a SmartBuffer feature for some reason's
you can disable it by specyfy the ADDB=ADDBUFFERS/N/K directly.
--------------- History ---------------
2.3 (26.07.2002) - First public release.
2.4 (31.08.2002) - Fixed a small bug in Volume's support
- No longer print "General device init. error"
when there is no space for it's internal caches
- Added FORCE/S and QUICK/S switch
- Added DEFRAGMENT/S, FL=FRAGMENTATIONLIMIT/N/K and ADDB=ADDBUFFERS/N/K
- Added NCHK=NOCHECK/S,NORB=NOROOTBLOCKS/S,
NOASC=NOADMINSPACECONTAINERS/S,NONC=NONODECONTAINERS/S,
NOOC=NOOBJECTCONTAINERS/S,NOBM=NOBITMAP/S,NOF=NOFRAGMENTATION/S
- Added polish locale
- Added français locale
- Added deutsch locale
- Added SFSCheck.script and SFSDefrag.script
WARNING: Both of them require something about 20 MB free memory
in one block !!
2.41 (1.12.2002) - Rebuild completly after a major HD crash :(
- Added stackextension
- Added SmartBuffer feature
- Fixed problem with SEEK/S, in previous versions
it ignored empty directories
- Extended SEEK/S
- Reduce memory consumption
- Some optimalization's and speedup's, now should work faster
on 68040/68060 machines
- Fixed a tons of small potential problems and bugs
- Fixed DOSBuffers display, previously it shows
the initial buffer state, now it shows the acctual state
- Removed 'Check Caches' information
- Added Hungarian locale
- Added some notes about ReadAhead and Buffers
2.42 (5.12.2002) - Fixed a terrible bug in SmartBuffer feature
- Improved error handling, please note that this makes a
old locale a partialy not usable with new version.
I do not know nothing about update I do not manage
to contact any of my translators.
- Modified FORCE/S switch, now affect's also
a defragmentetion process
- Extended SFSCheck.script and SFSDefrag.script
2.43 (11.02.2002) - Fixed a links problem with FULLPATH/S option
Now it prints a path to linked object and also check
the link state (OK, Local or Broken one)
- Makes FULLPATH/S to default and changed name to
NOFULLPATH/S
- Fixed scripts in Scripts/ directory
- Removed some obsolete parts of distribution archive
- Working MorphOS Port
- Final update, this project is dead now ... sorry folks
2.45 (25.07.2003) - Added support for some extensions in SFS 1.201 (MorphOS version)
2.45u (6.05.2004) - Added support for more extensions in SFS 1.210 (MorphOS version)
--------------- ToDo ---------------
- find the rest of the bugs ;)
- ... any suggestions ?
--------------- Bugs ---------------
- As far I know ... none ;)
--------------- ThX ---------------
MorphOS Team.
--------------- Support ---------------
Feel free to send me your suggestions and/or bug reports.
--------------- Author ---------------
Marcin "Morgoth" Kurek
morgoth6@box43.pl
--------------------------------------
|