FixDisk V1.0 (C) Copyright Werner Gunther 1989 Freeware BENUTZEN SIE DIESES PROGRAMM AUF EIGENE GEFAHR FixDisk ist ein Programm, um soviel, wie möglich von einer defekten Disk- ette zu retten. Ich möchte nicht behaupten, daß es besser ist, als `DiskDoctor` oder `Disksalv`, aber es hat einige Eigenschaften, die die anderen Programme nicht haben: Zuerst einmal kann es beschädigte (nicht lesbare) Spuren retten, es hat Funktionen, die die Vollständigkeit einer Datei (eines Programms) überprüfen, die die Directory-Struktur überprüfen, die eine gelöschte, aber noch nicht überschriebene Datei (bzw. Programm) retten, die (auch defekte) Dateien (bzw. Programme) kopieren und anzeigen und beschädigte Directory-Sprungmarken wieder richtig setzt, usw. Alles kann über eine Intuition-Schnittstelle angewählt werden, so, das jeder bestimmen kann, welche Handlung von ihm gebraucht wird. Nun die schlechten Nachrichten: Das Programm kann nicht die Spuren von `unendlichen Blocks` aufnehmen; z.B.: Dateien (bzw. Programme) ohne file header (Dateianfang) wie `Disksalv`. Es kann nur mit Teilen einer Diskette arbeiten (max. 4063 Blocks). Es ist möglich, daß das Programm mit mehr Blocks zusammen- menarbeitet, aber da ich keine Hard Disk besitze, konnte ich es auch nicht ausprobieren. Disketten mit mehr als 4063 Blocks werden von dem Programm zurückgewiesen. Sie können versuchen das Programm herauszu- fordern, 48 MB Teile zu verarbeiten, indem Sie den Befehl `DOOM` im CLI an den Aufruf zum Programmstart anhängen (z.B.: `FixDisk doom`). Wie schon gesagt, es wurde nicht getestet und sollte nur benutzt wer- den, wenn alle anderen Hilfsmittel versagt haben und Sie bereit sind den angewählten Bereich neu zu formatieren. BENUTZUNG : Nach dem Start von FixDisk vom CLI oder der Workbench aus werden Sie eine Reihe von Gadgets (Schaltern) mit den verfügbaren Laufwerken am oberen Rand des Windows (Fensters) sehen. Wählen Sie das gewünschte Laufwerk an, indem Sie den entsprechenden Schalter mit der Maus an- klicken. Wenn das angewählte Laufwerk ein 3,5" oder ein 5.25" Lauf- werk ist, werden Sie aufgefordert, die zu bearbeitende Diskette ein- zulegen. Darauf startet das Programm damit, die Diskette einzulesen, Zylinder für Zylinder, um die Datei- und Directory-Anfänge zu finden. Dies kann eine Weile dauern, bitte bleiben Sie ruhig. Neben Lese- fehlern kann es sein, das Sie auch andere Mitteilungen zu Gesicht be- kommen: Block 0 muß mit `DOS` oder `KICK` starten. Wenn dies nicht der Fall ist, werden Sie gefragt, ob Sie es korrigieren wollen. Das Programm kann den root Block (im Sinne : Hauptblock) nicht finden, und FixDisk möchte einen neuen machen. Die Diskette ist nicht für gültig (validated) erklärt, und das Programm will sie für fültig erklären. Die Diskette hat keinen root Block und keinen file header, die Disk- ette ist wahrscheinlich eine gewöhnlich Diskette (oder die Kickstart- Diskette). FixDisk wird nichts überprüfen (und wird sie nichts über- prüfen, ändern oder eintragen lassen) ausschließlich von Lesefehlern. Sie können die Tastenkombination CTRL-C jederzeit drücken, wenn Sie die zur Zeit behandelte Handlung unterbrechen möchten. Wenn die Disk- ette untersucht wurde, erscheint ein file requester (im Sinne : Datei- Befrager) auf der linken Seite des Windows (Fensters). Die erste Spalte zeigt den `key` (die Nummer des Blocks in dem der file header gefunden wurde), gefolgt von `DEL` für gelöschte Dateien oder `-->`, gefolgt von dem Namen der Datei. Rote Einträge zeigen an, das es sich hier um einen Ordner (Directory) handelt. Wählen Sie eine Datei aus, indem Sie sie anklicken oder wählen Sie mehrere Dateien an, indem sie zusätzlich die `SHIFT` Taste gedrückt halten. Um einen Ordner zu öffnen, benutzen Sie den Doppel-Klick Die rechte Hälfte des Fensters ist mit 17 Schaltern (Gadgets) gefüllt. Wie Sie bemerken werden, sind einige durch den Start unbrauchbar ge- macht worden. Dies sind Schalter, mit denen man auf die Diskette schreiben kann. Um sie brauchbar zu machen, müssen Sie `Write enable` im Menü `Miscellaneous` anwählen (Es gibt nur ein Menü). Die Schalter: Directory - Parent Dieser Schalter ist Teil des file requesters. Der requester wird die Dateien aus dem `parent - directory` anzeigen. Directory - Root Funktioniert wie `Directory Paren`, aber benützt das root directory. Show - Selected Zeigt eine Datei in ASCII oder Hex. Wie bei allen anderen Befehlen, läuft die Datei ab, ohne das DOS zu bemühen, allerdings wird jeder eingelesene Block überprüft und angezeigt. Es arbeitet genauso wie `Copy` (siehe weiter unten) es tut, und deshalb können Sie diese Funktion benutzen, um zu sehen, was genau von einer defekten Datei gerettet werden kann. Wenn die Datei auf einer `Standard Filesystem` (keine FFS) Diskette ist, werden Sie gefragt, von wo das Programm die Datei-Glieder nehmen soll. Jeder Block, der zu einer Datei ge- hört, wird in dem Block für den file header angezeigt (und in einem oder mehreren `file list blocks`, wenn die Datei zu lang ist). Im `Standard Filesystem` hat jeder Block eine Sprungmarke zum nächsten Block, der auch zur Datei gehört. So haben wir zwei Wege, um zu sehen, wie die Datei aufgebaut ist: Benutzung der Glieder, die im file header aufgeführt sind oder der Sprungmarken der Blocks. Es ist auf jeden Fall sicherer, wenn Sie die Glieder benutzen, die im file header aufgeführt sind, wenn nur ein Block falsch ist, be- kommen Sie eine Menge Müll, wenn Sie die Sprungmarken der Blocks benutzen. Check Files - Selected Diese Funktion überprüft die angewählten Dateien. Mit dem `Stan- dard filesystem` ist es sehr leicht, festzustellen, wenn eine Datei in Ordnung oder defekt ist, wie jeder Daten-Block eine Prüf- summe (Checksum) hat, eine Sprungmarke zum file header, Sprung- marken zum nächsten Block usw. Dies ist nicht mit FFS der Fall, und es gibt keine Möglichkeit genau festzustellen, ob ein gegebener Daten-Block zur gegebenen Datei gehört. Genauso, wenn die Datei den Überprüfungsvorgang besteht, ist es nicht sicher, ob die Datei in Ordnung ist. Check Files - Deleted Diese Funktion überprüft lediglich gelöschte Dateien, und Sie kön- nen feststellen, ob sie wiederhergestellt werden können. Check Files - All Diese Funktion überprüft alle Dateien. Undelete Files - Selected Diese Funktion überprüft die angewählten Dateien. Mit dem `Standard Filesystem` ist es sehr einfach, festzustellen, ob eine Datei in Ord- nung oder defekt ist, ob jeder Daten-Block eine Checksumme, eine Sprung- marke zum Datei-Angfang, eine Sprungmarke zum nächsten Block usw. hat. Dies ist mit dem FFS nicht möglich und es gibt auch keine Möglichkeit festzustellen, ob ein gegebener Daten-Block wirklich zu der bestimmten Datei gehört. Es kann also sein, auch wenn die Datei den Test besteht, daß die Datei nicht in Ordnung ist. Check Files - Deleted Diese Funktion überprüft nur gelöschte Dateien, so daß Sie sehen kön- nen, ob sie wiederhergestellt werden können. Check Files - All Diese Funktion überprüft alle Dateien. Undelete Files - Selected Zuerst ruft diese Funktion die Funktion `Check File` auf. Wenn die Datei in Ordnung ist, wird der Datei-Anfang in das zerstückelte Datei- Gefüge seines Haupt-Directories eingefügt und die `Bitmap` (Bitplan) wird aufgefrischt, aber das `Bitmap Flag` (Bitplan Legende) wird auf `FALSE` (Falsch) gesetzt, nur um sicher zu gehen, daß die Diskette nach diesem Vorgang für gültig erklärt wird. Undelete Files - All Diese Funktion versucht alle gelöschten Dateien wieder zu retten. Copy Files - Selected Diese Funktion arbeitet wie `Show` (siehe oben). Sie werden gefragt, ob Sie ein(en) Output Path/Directory (Ausgabe Pfad/Ordner) anwählen wollen, denn falls der Ordner voll sein sollte, sollten Sie einen Pfad angeben. Wenn eine gegebene Datei bereits im Bestimmungsordner enthalt- en sein sollte, wird das Programm den Anhang `.2` an den Dateinamen an- hängen (wenn `.2` schon am Dateinamen hängt, wird daraus `.2.2`. Er- zählen Sie mir nicht, das wäre unsinnig - ich weiß es schon). Wie bei `Check File` kann es sein, daß Sie einige Fehler-Mitteilungen erhalten, während das Programm arbeitet. Wenn ein Block nicht zur gegebenen Datei gehören zu scheint, werden Sie gefragt, ob Sie weitermachen, abbrechen oder es ignorieren wollen (`SKIP IGNORE ABORT`).`SKIP` bedeutet, daß der beschädigte Block nicht kopiert wird, `IGNORE` bedeutet, daß der Block trotzdem kopiert wird und mit `ABORT` verlassen Sie `Copy Files`. Die Schreibschutz-Bits werden erhalten, das dazugehörige Datum nicht. Copy Files - All Diese Funktion kopiert die gesamte Diskette unter der Bemühung, soviel wie möglich zu retten. Wipe Files - Selected Diese Funktion löscht den Datei-Anfang einer gelöschten Datei. Hilfspro- gramme wie `DiskDoctor` und `Disksalv` versuchen alle Dateien zu retten, auch wenn sie gelöscht worden sind. Wenn Sie nicht wollen daß einige Da- teien mit den oben erwähnten Programmen wiederhergestellt werden, benut- zen Sie diese Funktion. ACHTUNG : Nach diesem Vorgang brauchen Sie einen Diskettenmonitor/Zylindereditor (Disk monitor/sector editor) um die Daten zurückzubekommen. Wipe Files - All Diese Funktion säubert alle gelöschten Dateien. Delete - Selected Diese Funktion löscht eine Datei, z.B. wird der Datei-Anfang aus dem zer- stückelten Gefüge genommen, und der Bitplan (Bitmap) wird aufgefrischt. Die Bitmap Legende (Bitmap Flag) wird auf Falsch (False) wie in `Unde- lete` (siehe oben) gesetzt. Diese Funktion arbeitet auch, wenn der Dele- te-Befehl des DOS einen Fehler ausgibt. Delete - Faulty Überprüft alle Dateien und löscht diejenigen mit Fehlern. Das Programm fragt Sie, ob die fragliche Datei gelöscht werden soll, wenn Sie es wol- len. Info - Device Gibt einige Informationen über die angewählten Geräte aus. Validate - Disk Dies ist nicht der Amiga Validator (Programm, daß Disketten für gültig erklärt), aber mein eigener. Der Hauptunterschied zwischen den beiden ist, daß dieser versucht die Disketten-Struktur zu reparieren. Es kann sein, daß Sie Fehleraufstellungen erhalten: Schleifen in einem zerstük- keltem Dateigefüge, falsche oder unleserliche Datei-Anfänge, Checksum- men-Fehler oder `key already set`, zwei Dateien beanspruchen ein und denselben Daten-Block. Die gewöhnliche Handlung beinhaltet die Frage, ob Sie wünschen, daß defekte Dateien gelöscht werden. Sie können später mit `Show` und `Check file` überprüfen, was falsch war. Recover - Track Diese Funktion versucht soviel wie möglich von einer defekten Spur zu lesen. Sie benutzt den RAWREAD-Befehl vom trackdisk.device und deshalb arbeitet sie nur mit dem trackdisk.device. Sie versucht momentan die Spur wieder in den Buffer einzulesen, die Syncronisation zu finden und den Zylinder zu entschlüsseln (dies kann einige Sekunden dauern, denn die Routine zum Entschlüsseln ist nicht sehr schnell). Wenn eine Zylin- der-Syncronisation vermißt wird, versucht das Programm festzustellen, wo der Zylinder startet. Ab und zu arbeitet dies, aber es kann falsch sein. Wenn die Spur entschlüsselt worden ist, sehen Sie ein Fenster mit folgendem Inhalt: Die Nummer des Zylinders (1-1-1), die ersten vier Langworte dieses Zylinders, ob die Checksumme OK oder `BAD` (Falsch) ist und ob dieser Block besetzt (ALLOC) oder frei (FREE) ist. Wenn ein Eintrag rot ist, hat der Zylinder keine Syncronisation. Wenn dies der Fall ist, sehen sie anstatt der ersten paar Bytes die Information `Un- readable` (Unlesbar), außerdem kann das Programm auch nicht ausarbei- ten, wo der Zylinder sein sollte. Wenn Sie mit dem Ergebnis nicht zu- frieden sein sollten, klicken Sie `RETRY` (Nochmal versuchen) an und die Funktion wird noch einmal aufgerufen und gibt gewöhnlich ein and- eres Ergebnis aus (wenn die Spur einen `hard error`, z.B. eine be- schädigte Oberfläche hat). Wenn Sie meinen, daß Ergebnis sei gut (oder gut genug) klicken Sie `WRITE` an, damit die Spur neu formatiert und die Daten wieder darauf geschrieben werden können. Es kann passieren, daß die Spur nicht formatiert werden kann. Klicken Sie `RETRY` öfters, vielleicht `fällt` der defekte Part unter den Tisch. Wenn dies nicht arbeiten sollte, nehmen Sie die Diskette heraus und legen Sie eine neue LEERE! ein, gegebenenfalls auch unformatierte Disketten, und schreiben Sie die Spur auf diese Diskette. Nun kommt der knifflige Teil: Kopieren Sie die Original-Diskette und kopieren Sie die geret- tete Spur mit DiskZap/DiskX/Sectorama auf die Kopie. Hmmm, nein, viel zu kompliziert, der Amiga ist ein Multitasking-Maschine! Kopieren Sie die Diskette WÄHREND FixDisk läuft, legen Sie die kopierte Diskette in das angewählte Laufwerk und klicken Sie `RETRY`. Das Menü Es gibt zur Zeit nur zwei Menüpunkte: Ignore readerrors: Gewöhnlich erscheint ein Fenster mit `RETRY` `IGNORE` wenn ein Fehler wahrscheinlich ist. Dieses kann sehr lästig werden, wenn die Diskette sehr viele defekte Spuren hat. Dieser Menüpunkt läßt das Fenster Sie nicht mehr nerven Er hat eine zweite Funktion: Wenn Sie die `Copy`-Funktion benutzen, stoppt das Programm jedesmal, wenn eine Datei defekt erscheint und fragt Sie nun, was gemacht werden soll. Wenn der Menüpunkt `Ignore readerrors` angewählt ist, werden Fehler zwar angezeigt, aber der Ab- lauf der Funktion wird nicht gestört. Write Enable Macht diejenigen Schalter brauchbar, die auf die Diskette schreiben. Das ist alles. Tja, fast. Das Programm hat mehr als 80 Rückfragenfen- ster, einige von ihnen wurden nicht erklärt, aber sie sollten sich eigentlich von selbst erklären. Senden Sie Fehlerlisten und Fragen bitte an: Werner Gunther Wingertspfad 12 D 6900 Heidelberg (FRG) Übersetzt im August 1989 für WOLF Computertechnik von Roland Reimann Häuserweg 5 D 5450 Neuwied 21 (FRG) Vorschläge für die Übersetzung bitte nur an den Übersetzer schicken.