Heute stelle ich wieder einmal eine etwas schon betagte CD vor, die ich in meinem Archiv nicht mehr missen möchte.

Amiga Repair Kit ist für 79.- DM bei Schatztruhe erhältlich.

Diese CD enthält folgende Programme:
- DiskSalv4
- DiskSalv4_E
- DiskSalv3
- DiskSalv3_E
- DiskSalv2
- RDB-Salv 1.0
- AmiCDFS2
- Kiskometer
- DisKey_3.0_Preview
- DiskProtection
- Recovery
- DSBackup

Von diesen Programmen möchte ich mit wenigen Worten DiskSalv 4 vorstellen.

Schatztruhe schreibt:
Mit DiskSalv 4 präsentieren wir Ihnen den Retter in der Not! DiskSalv 4 rettet und restauriert defekte, korrupte oder gelöschte Dateien, Disketten, Festplatten, etc. mit einer hohen Wahrscheinlichkeit innerhalb von Minuten. Dabei versucht DiskSalv 4 physikalische Schäden, SoftwareFehler und die Folgen von unsachgemäßer Datenträgerbehandlung zu reparieren und zu beheben.

Als weitere Features sind ein Backup-Programm sowie eine CleanUpFunktion enthalten. DiskSalv 4 arbeitet nun endlich auch mit Ami-FileSafe zusammen.

Der Autor Dave Haynie schreibt in seinem Vorwort vom 25.11.95:
Was ist neu an DiskSalv 4 (Version 13.6)? Unterstützung für Partitionen, die das AmiFileSafe (AFS) Dateisystem nutzen. Dies ist der erste Schritt in der Unterstützung zukünftig noch erscheinender Dateisysteme.

Die Funktion des Best-Guess wurde verbessert und erkennt zuverlässig alle bekannten Dateisysteme und erlaubt Ihnen die freie Wahl, wenn diese nicht eindeutig ist.

Ein neues Hilfssystem fügt eine kontextsensitive Bemerkung am unteren Rand vieler Disksalvfenster ein. Dies zeigt die Funktion der Gadgets oder des Funktionsbereiches unterhalb des Mauszeigers.

Der überarbeitete "Fix-in-Place"-Algorhythmus findet nun auch die Probleme, die vorher übersehen oder falsch interpretiert wurden.

Soweit nun der Auszug aus dem Vorwort. Um den Sinn dieses Programms zu erkennen, brauchen eigentlich nur 3 Fragen beantwortet werden:
- Warum werden Laufwerke defekt ?
- Warum behebt AmigaDOS keine Fehler ?
- Wie kann DiskSalv helfen ?

Das AmigaDOS ist selbst gegenüber kleinen Defekten in einem Laufwerksformat nicht sehr tolerant, und wird dieses fehlerbehaftete Laufwerk zurückweisen. Es gibt eine ganze Reihe von Dingen, die Probleme mit einem Laufwerk verursachen können. Ein physikalischer Schaden ist meist der offensichtlichste und zugleich auch der schlimmste Fall. Glücklicherweise ist dies nur bei Disketten üblich. Mechanische Überbeanspruchung, Magnetfelder oder einfach zu langer Gebrauch können physikalische Schäden an einer Diskette verursachen. Festplatten können auf dieselbe Art beschädigt werden, sind aber meist länger haltbar. Sie sind eben Stürzen, Kaffeeflecken oder anderem nicht so sehr ausgesetzt. Physikalische Schäden werden Hard Fehler genannt.

Viel häufiger treten - besonders auf Festplatten - Soft Fehler auf. Ein Soft Fehler ist jede Zerstörung der Filestruktur eines Laufwerks, die nicht durch physikalische Einwirkungen entstanden ist. DiskSalv kann sehr effizient mit solchen Defekten umgehen.

Auf dem Amiga ist ein Programm mit dem Namen "Dateisystem" für die Kommunikation zwischen der DOS.library (dem Kern des AmigaDOS) und dem "Device-Treiber" verantwortlich. Der Device-Treiber übernimmt die hardwarenahen Funktionen der Laufwerkssteuerung. Es gibt viele verschiedene Arten von Laufwerken. Manche werden über high-level (i.a. logically mapped) Protokolle, wie das SCSI (Small Computer System Interface) oder das IDE (Integrated Drive Electronics) Protokoll angesteuert. Andere werden auf einem niedrigeren Level unterstützt, sie werden über Blöcke, Sektoren und Offsets adressiert. Wieder andere existieren nur als ein Bereich des Speichers (die RAM-Disk beispielsweise). Der Device-Treiber macht es möglich, daß jedes Laufwerk als eine lineare Reihe von Blöcken adressiert wird, und daß das Dateisystem nur diese Art des Zugriffs kennen muß.

Das Dateisystem ist in der Fehlersuche wirklich gut. Es verwaltet eine Bitmap der benutzten Laufwerksblöcke und ein Flag, das anzeigt, ob die Bitmap ok ist. Bevor das Dateisystem die Laufwerksstruktur ändert, erklärt es die Bitmap für ungültig. Wenn es dann die geforderten Änderungen durchgeführt hat, markiert es die Bitmap am Ende wieder als gültig. Wenn irgendein Fehler, egal welcher Art (hard oder soft), während einer Modifikation auftritt, wird die Bitmap noch als ungültig gesetzt sein, wenn das Dateisystem das nächste Mal gestartet wird.

Das Dateisystem benützt diese Bitmap als Voraussetzung für eine Routine, die Disk-Validator genannt wird. Wenn AmigaDOS diese auf einer Ihrer Partitionen laufen läßt, wird der Info Befehl für diese "Validating" anzeigen. Während des Validierungsprozesses überprüft das Dateisystem jedes Objekt, das es erreichen kann, indem es vom Root Block des Volumes aus durch die Laufwerksstruktur geht. Solange hier keine defekten Blöcke gefunden werden, kann eine neue Bitmap aufgebaut werden. Wenn ein defekter Block gefunden wird, werden keine weiteren Zugriffe auf diesen Block erlaubt, bis das Problem gelöst ist.

In den meisten Fällen kann das Dateisystem jedoch das Problem nicht lösen, so daß es dann am einfachsten ist, im Falle eines kleinen Defekts das Volume als read-only - also für Schreibzugriffe gesperrt - oder NDOS ("not understood by AmigaDOS") zu setzen, wenn das Volume für AmigaDOS ohne jeden Sinn ist. Es ist dem Dateisystem nicht möglich viel mehr zu unternehmen. Es wäre natürlich denkbar dem Dateisystem die Fähigkeiten von DiskSalv oder anderen Reparaturprogrammen zu geben, aber dazu besteht kein Anlaß. Es ist kein Vorteil, wenn raffinierte Reparaturfunktionen in das Dateisystem eingebunden werden. Ein Nachteil wäre unter anderem die Größe: das Dateisystem ist ungefähr 25K groß, während DiskSalv 2 zur Zeit fast 120K auf die Waage bringt und sich DiskSalv 4 über der 200 Kilobytemarke liegt. Sogar ohne eine komplette GUI und in Maschinensprache effizient programmiert, wäre dies eine Speicherverschwendung.

Die meisten Betriebssysteme besitzen irgendein Laufwerksreparaturprogramm, obwohl diese meist sehr primitiv sind. Ein Programm namens "DiskDoctor" war früher im AmigaOS Lieferumfang enthalten, es hatte leider eine Reihe von Fehlern und war nicht sehr vertrauenswürdig.

DiskSalv wurde entworfen, um Laufwerke mit Problemen zu analysieren und diese Probleme zu lösen. Es baut für jede Operation ein Modell des Laufwerks im Speicher auf, und benutzt dann dieses Modell, um es zu restaurieren. DiskSalv kann dies bei jeder Art von Fehler machen, und kann so in vielen Fällen das betroffene Laufwerk wiederherstellen. Der Erfolg hängt natürlich davon ab, was dem Laufwerk zugestoßen ist. Wenn ein Laufwerk nicht mehr repariert werden kann, versucht DiskSalv wenigstens möglichst viele der Daten in ein anderes "Volume" zu retten.

Das gewünschte Ergebnis eines Durchgangs mit DiskSalv ist natürlich die komplette Wiederherstellung eines defekten Volumes. Idealerweise wäre die Störung dann nicht besonders schwerwiegend und könnte behoben werden, ohne daß irgendetwas auf dem Laufwerk gelöscht werden müßte. Obwohl dies selbstverständlich möglich ist, ist dies nicht immer der Fall. Manchmal muß DiskSalv eine Datei oder - seltener - ein Verzeichnis löschen, um die Laufwerksstruktur korrigieren zu können. Gelegentlich kann ein Laufwerk allerdings überhaupt nicht mehr repariert werden. In den meisten Fällen kann DiskSalv jedoch das Laufwerk wiederherstellen.

Hard Fehler verursachen den meisten Ärger, denn eine Software kann sehr wenig tun, um ein Problem der Hardware zu lösen. Man kann darumherum arbeiten, was natürlich von der Stelle abhängt, an der der Fehler sitzt. Ein weniger kritischer Hard Fehler wird innerhalb einer Datei auftreten. DiskSalv kann das Laufwerk wieder les- und beschreibbar machen, indem es diese Datei aus der aktiven Laufwerksstruktur entfernt. Ein Hard Fehler in einem Verzeichnis oder in einem anderen Block der Laufwerksstruktur kann manchmal unmöglich umgangen werden, weil der Block selbst geändert werden müßte, um die Laufwerksstruktur zu reparieren.

Selbst wenn es DiskSalv gelingt ein Laufwerk zu reparieren, das einen Hard Fehler enthält, wird der Fehler vielleicht immer wieder auftreten, weil ein Fehler im Laufwerk selbst vorhanden ist. Zur Zeit kann DiskSalv bei einem solchen Problem nicht viel machen. Die nächste Veröffentlichung von DiskSalv 4 wird vielleicht die Fähigkeit besitzten, fehlerhafte Blöcke durch ausklammern zu entfernen und so unschädlich zu machen.

Soft-Fehler können perfekt repariert werden, solange nach einem Absturz von der Laufwerksstruktur genügend viel übrig geblieben ist, also das Laufwerk noch ziemlich in Ordnung ist. Im schlimmsten Fall muß eine Datei entfernt werden, um einen derartigen Fehler zu reparieren. DiskSalv versucht nicht die Dateistruktur selbst an Ort und Stelle zu reparieren, sondern ermöglicht, daß solche fehlerhaften Dateien so intakt wie möglich auf ein anderes Volume übertragen werden. Ein Verzeichnis kann, vom internen Laufwerksmodell von DiskSalv ausgehend, komplett wieder aufgebaut werden. DiskSalv muß ein Verzeichnis nur löschen, wenn es einen Hard Fehler enthält.

Wie schon erwähnt, sind die Fix-in-Place-Routinen von DiskSalv dazu entworfen, eine logische Partition so zu reparieren, daß das Dateisystem der Partition sicher auf dieser funktioniert. Um das möglich zu machen, müssen auch Dateien gelöscht werden - wenn DiskSalv die Ursache der Validationsunterbrechung des Dateisystems beseitigt, sollte der Validator wieder in der Lage sein, seinen Job zu tun.

Wenn Dateien gelöscht werden, gibt DiskSalv im DiskSalv Dateibrowser die Möglichkeit, diese Dateien noch auf ein anderes Gerät zu retten. Liegt der Fehler in einer bestimmten Datei vor, kann diese spezielle Datei beseitigt und in der Liste angezeigt werden. Wenn aber das Mutterverzeichnis einer Datei beschädigt ist, wird eventuell die Datei darin nicht aufgelistet. In diesem Fall kann bei einer Reparatur die Datei nicht gerettet werden, da es für die Reparaturroutine wie eine gelöschte Datei erscheint.

Nach einem Reparaturdurchlauf können solche Dateien immer noch zurückgewonnen werden. Mit den Funktionen "Bergung" und "Löschen" können diese Dateien gefunden und auf ein anderes Gerät gerettet werden. Wenn Sie eine Vielzahl solcher Dateien haben, benutzen Sie die Funktion "Format". Diese führt ein globales Rückgängigmachen des Löschens aller Dateien auf der Disk durch, wobei allerdings neben den gewünschten Dingen auch eine Menge Dinge wieder auftauchen können, die schon lange nicht mehr gebraucht werden.

Wenn DiskSalv eine Datei, ein Verzeichnis oder ein ganzes Laufwerk nicht direkt reparieren kann, bietet es dem Benutzer die Wiederherstellen-durch-Kopieren Option an. DiskSalv löscht nie eine Datei, es sei denn es wird explizit durch den Aufräumen Modus dazu aufgefordert. Wenn der Fix-in-Place Modus ein Objekt nicht reparieren kann, wird dieses Objekt einfach aus seinem Mutterverzeichnis entfernt, es wird aber nie wirklich vom Laufwerk gelöscht. Manche DiskSalv-Modi sind also so ausgelegt, daß sie das Eingabelaufwerk primär nicht verändern.

Während einer Wiederherstellen-durch-Kopieren Operation wählt der Benutzer ein Ausgabedevice, das nicht mit dem Eingabedevice identisch sein darf. Dies kann eine andere Festplatte, eine Reihe von Disketten, eine RAM Disk, eine Datei auf einem Laufwerk, ein Tape oder ein anderes AmigaDOS Device sein. Eine Wiederherstellen-durch-Kopieren Operation arbeitet im wesentlichen wie eine Kopier oder Backupfunktion, außer daß sie einen speziellen Satz von Routinen benutzt, der Daten von einem potentiell fehlerbehafteten Laufwerk extrahiert.

Die Ausgaberoutinen in DiskSalv erlauben dem Benutzer auszuwählen, welche Dateien tatsächlich wiederhergestellt und auf welches Ausgabedevice, sie überschrieben werden sollen. Dies gilt, ob nun der Wiederherstellen - durch Kopieren Modus explizit gewählt oder es nötig wurde ihn aufzurufen, weil etwas während eines Fix-in-Place Laufes gelöscht werden mußte. Die Ausgabe kann als AmigaDOS Dateisystem geschrieben werden, sofern das Ausgabedevice dies unterstützt. Sie kann wahlweise auch im DiskSalv Archivformat auf jedes AmigaDOS Device ausgegeben werden.

Soweit nun meine Ausführungen zu Disksalve 4, wobei ich kräftig den Guide Text mit herangezogen habe.