OPTIMIZE, Version 2.9
Harddisk-Optimizer  1993-1999 by H.-P. Vetter

This program is distributed in the hope that it may be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.


OPTIMIZE ist ein auf Geschwindigkeit getrimmter Festplatten-Defragmentierer.
Das Umkopieren der Daten erfolgt deshalb im RAM. Bei manchen anderen 
Defragmentierern, die auf Sicherheit setzen, sind alle Daten whrend der 
Umkopier-Phase noch einmal auf der Platte vorhanden. Dies ist bei OPTIMIZE 
_nicht_ der Fall!

Deshalb die ausdrckliche WARNUNG: Whrend der Optimierungs-Phase, d.h. 
wenn die KBs der noch zu optimierenden Daten ("to do") heruntergezhlt 
werden, darf kein Reset erfolgen, der Rechner nicht ausgeschaltet werden 
und auch kein Stromausfall erfolgen! Wenn das doch passiert, ist die 
betreffende Partition mit ziemlicher Sicherheit hinber!
Auerdem darf die Platte (Partition) _keine_ defekten Sektoren haben, 
sofern diese nicht als defekt in der FAT markiert sind. Das Programm 
versucht zwar in diesem Fall zu retten, was zu retten ist, aber dafr 
gibt's keine Garantie. Deshalb vorher wenigstens einmal den physikalischen 
Check (Prflesen) laufen lassen. Der ist z.Zt. zwar grndlich, aber auch 
ziemlich langsam.

OPTIMIZE legt die Daten "am Ende" der Partition ab, damit TOS schnelleren 
Zugriff beim Suchen nach freien Clustern hat. Daraus kann die Meldung eines 
anderen Optimierers, die von OPTIMIZE optimierte Partition sei nicht 
optimiert, resultieren.
Diese Organisation hat zudem den Vorteil, da bei regelmiger Anwendung 
Dateien, die nicht verndert werden, ans hintere Ende geschoben werden, 
und dann auch vom Optimierer nicht mehr berhrt werden mssen.


Zur Bedienung:

Im wesentlichen erklrt sich das Programm von selbst, da es unter GEM 
eingebunden ist.

(1) Physikalischer Check    = Prflesen aller Sektoren (Cluster)
(2) Logischer Check         = Konsistenz der FAT
(3) Optimierung             = Defragmentieren

Man whlt die zu bearbeitende Partition (auch mehrere) aus, entscheidet 
sich fr eine oder mehrere der drei Arbeiten (1-3) und bettigt den dick 
umrandeten Button (Yes, it's okay), um die Arbeit auszulsen. Nach getaner 
Arbeit meldet sich das Programm wieder, damit man es verlassen oder eine 
andere Aktion auslsen kann. Beim Verlassen erfolgt ein automatischer Reset, 
um auf jeden Fall einen Plattenzugriff mit einer alten (vor dem Optimieren) 
FAT auf die umstrukturierte Platte zu verhindern.

Folgende Shortcuts existieren im Eingabedialog:

    <letter>            Laufwerk an/ausschalten
    ALT-<letter>        Funktionswahl (linker Kasten)
    CTRL-<letter>       (rechter Kasten)


Nachdem die zu bearbeitende Partition (log. Laufwerk) durch "devlock"
gesperrt wird, ist auch die Verwendung unter MTask-Systemen mglich.
Trotzdem sollte jede Arbeit auf einer zu optimierenden Partition
unterbleiben. Insbesondere mu hier auf ACCs oder im Hintergrund laufende
Programme geachtet werden.
Ein Reset nach dem Optimieren wird zwar empfohlen, vom Programm aber nicht
mehr erzwungen.


OPTIMIZE kann auch von einer Shell, die den Start von PRGs erlaubt, erfolgen.
Dann knnen die Dialog-Einstellungen ber die Kommandozeile vorgenommen 
werden. Das geht auch, wenn OPTIMIZE als GTP angemeldet wird.

Dabei steht

    -p   fr den phys. Check
    -l   fr den log. Check
    -o   fr die Optimierung
    -q   fr quiet (weniger Meldungen)
    -r   fr repair (verlorene Cluster wiederholen)
    -x   fr execute (mach das, was ich Dir gesagt habe)
    -2   eine Ziffer bestimmt die Anzahl der Retries im phys. Check (1-9)

Um also z.B: die Laufwerke C:, D: und E: zu optimieren, kann man 
folgenden Befehl verwenden:

    optimize -lox cde
oder
    optimize  ce  -lo  d  -x

Die Reihenfolge spielt keine Rolle. 
Ein Parameter mit '-' gibt Optionen an, 
ein Parameter ohne '-' definiert Laufwerke.

Zustzlich knnen ber die Kommandozeile Cluster-Nummern (mit vorangestelltem 
'#') angegeben werden. Die Namen der Dateien, die die angegebenen Clustern 
belegen, werden protokolliert. (Z.B.: "... #123 #4567")


Erwhnenswert ist noch, da ein logischer Check vor dem Optimieren 
unbedingt sinnvoll ist, da eine defekte Partition nicht optimiert werden 
kann!
Verlorene Cluster, die als belegt markiert aber von keinem Directory-
Eintrag referenziert sind, knnen mit der Option -r "freigegeben" werden.

Das Programm sollte mit allen Festplatten-Treibern harmonieren, da fr 
den Platten-Zugriff lediglich die Xbios-Funktion "Rwabs" benutzt wird.
Die gngigen Sektor-Gren (GEM/BGM) werden untersttzt, jedoch sollte 
die Sektoranzahl einer Partition nicht im oberen Grenzbereich 
(32110..32767, 65400..65535, 130800..131071, ...) liegen, da es hier 
zu (bisher unerklrlichen) Fehlern kommt.
Meine eigenen Partitionen haben i.A. Gren von 32100, 65400, 130800, 
261600 Sektoren (Die ersten beiden Zahlen sehen doch gut aus, und die 
anderen sind eben Vielfache).
OPTIMIZE luft bisher problemlos auf 520, 1040, MegaST, TT, F030, Medusa, 
Hades, am ACSI- und SCSI-Bus, mit Platten von der Megafile30 bis zur 
4-GB-Platte, ebenso Wechselplatten (Syquest 44 und 270) und MO-Laufwerken.


VFAT-Filesysteme (MagiC 5.0)
----------------------------

OPTIMIZE kann auch auf VFAT-Partitionen eingesetzt werden. Hierbei ist es
unerheblich, ob fr die Partition gerade VFAT ein- oder ausgeschaltet ist.
Normalerweise werden VFAT-Directory-Eintrge (VDIR) einfach ignoriert,
d.h., da VDIR-Eintrge, wenn sie vorhanden sind, in gleicher Weise nach
dem Optimieren noch immer da sind. (Ausnahme: ein ungltiger VDIR-Eintrag,
dem kein DIR-Eintrag zugeordnet ist, wird gelscht, wenn er der letzte
Eintrag in einem Verzeichnis ist.)

Durch die Option "correct l." werden beim _Optimieren_ ungltige VDIR-Eintrge
entfernt. Diese entstehen dann, wenn bei ausgeschalteten "langen Namen"
Dateien gelscht, verschoben oder umbenannt werden, da dann nur der DIR-
Eintrag aber nicht die VDIR-Eintrge verndert werden.

Durch die Option "kill longs" werden beim _Optimieren_ alle VDIR-Eintrge
entfernt. Man erhlt dann ein normales FAT-Filesystem.


phys. Check
-----------

Im physikalischen Check werden alle Sektoren/Cluster einer Partition gelesen.
Zur Geschwindigkeitssteigerung erfolgt dies zunchst blockweise (abhg. vom
verfgbaren Speicher). Im Fehlerfall werden die Sektoren dann einzeln gelesen,
um die genaue Fehlerstelle zu bestimmen.
Falls der fehlerhafte Sektor keiner Datei zugeordnet ist, so kann dieser als
defekt markiert werden. Andernfalls ist keine Markierung mglich.
Um die lstigen GEM-Alerts bei Lesefehlern los zu werden, zeigt der etv_critic-
Vektor whrend des Checks auf eine eigene Routine. D.h., man sollte das Programm
whrend dieses Checks NICHT "hart beenden" (nur in MT-Umgebung mglich), sondern
gegebenenfalls lieber gleich einen Reset auslsen.
Zum geordneten Abbruch mu die Maus ber dem Abbruchbutton gedrckt werden, bis
eine Reaktion des Programms erfolgt. Dies kann u.U. auch schon mal etwas lnger
dauern.
Markierungen in der FAT werden erst ganz zum Schlu auf die Platte geschrieben.
Bei Abbruch bleibt die FAT unverndert.
Dies kann (bei Shell-Aufruf) durch folgende Option gendert werden:

    -m      Markierung ohne Rckfrage setzen
    -mm     auch belegte Cluster als defekt markieren (*1)
    -mmm    FAT nach jeder nderung zurckschreiben
    -mmmm   auerdem keine Rckfrage
    -mmmmm  auerdem belegte Cluster markieren (*1)

(*1) Vorsicht: hierdurch wird die Cluster-Chain der Datei zerstrt. Dies sollte
               durch einen anschleenden log. Check geprft werden.
               Am besten lscht man die betroffenen Datei (z.B. vom Desktop aus)
               und durch die Repair-Option mit einem log. Check die restlichen
               Cluster wieder frei.


Neues in Version 2.3:

-   Vergrerung der Ausgabefelder von 5 auf 6 Stellen
-   Beschleunigung durch weniger Ausgaben beim Hochzhlen

Neues in Version 2.4:

-   Drive-Locking ("devlock" von Hans-Juergen Richstein, (c) 1994 Kaktus GbR),
    dadurch ist jetzt auch der Einsatz unter Multitasking-Systemen mglich.
    Der Reset nach dem Optimieren bleibt trotzdem.
-   verallgemeinerte Behandlung von "BAD-CLUSTER".
    Eigentlich sollten defekte Cluster durch den Wert 0xFFF7 markiert sein.
    Da aber einige Programme eigentlich nicht erlaubte Werte zur Markierung
    benutzen (z.B. 0xFFF1), werden jetzt alle Werte von 0xFFF0 bis 0xFFFE
    als Defekt-Markierung erkannt und bleiben unverndert.

Neues in Version 2.5:

-   Protokoll-Fenster von 400 auf 4000 Zeilen vergrert.
-   Men-Option zum Speichern des LOGs
-   neue Option: "#CLUSTER", liefert den Dateinamen zu diesem Cluster.
-   max. 30 Laufwerke
-   Optimierung und Korrektur fr VFAT-Filesysteme (MagiC 5.0)

Neues in Version 2.6:

-   Ausgabe des kompletten Pfades statt nur des Datei-Namens
-   Partitionen mit Sektorgren bis 32KB sind mglich
-   die "reservierten" Felder im DIR-Eintrag bleiben erhalten,
    und das erste Byte hinter dem Attribut [12] kann auch !=0 sein.

Neues in Version 2.7:

-   phys. Check funktioniert wieder, keine GEM-Alerts mehr bei Lesefehlern.

Neues in Version 2.8: (November 1998)

-   Anpassung an BigDOS (mehr als 2 Sektoren/Cluster und 
    mehr als 65536 Sektoren/Partition)
-   Nach einem phys. Check funktioniert die Maus wieder.
-   Shortcut ^S zum Sichern des Log's.
-   Korrektur eines Fehlers, der auftrat, wenn die Lnge des Root-
    Verzeichnisses kein Vielfaches des Clustergre war

Neues in Version 2.9:

-   Beim log. Check wird die Cluster-Chain auch bei Direktories geprft.
-   Es gibt nun eine deutsche und eine englische Version des Programms.
-   Dies vermutlich die letzte Version dieses Programmes.


Kommentare, Anregungen, Kritiken bitte an:

    H.-P. Vetter            (<H.Vetter@orbis-net.de>)
oder
    Peter Schneider @ SU2   (<Peter_Schneider@SU2.maus.de>)


Happy Optimizing

    hpv

