UnDelete.doc V1.5 vom 13.09.1992 von Dirk-Michael Brosig und Mathias Nieting UnDelete ist ein in Assembler geschriebenes OS2.04-Tool, mit dessen Hilfe Mensch gelöschte Verzeichnisse und Dateien auf Festplatte und Diskette wiederherstellen kann. Bitte lesen Sie unbedingt die Warnungen unter Punkt 3.5! 1. Anwendungsbereich UnDelete ist in der Lage alle angemeldeten Drives zu erkennen. Es sucht selbstständig nach Laufwerken mit den Bezeichnungen DF0: bis DF3: und DH0: bis DH9: . Zu Festplatten muß noch gesagt werden, daß der Partitions- und der Devicename übereinstimmen muß (DH0: muß auch als Partitionsnamen DH0 haben). UnDelete erkennt sowohl OFS und FFS. Es kann auch beide Formate bearbeiten, Mensch sollte sich aber bei FFS darüber klar sein, daß keine absolute Datensicherheit von zurückgeholten Dateien besteht. Es können Partitionen bis zu einer Maximalgröße von 16.777.215 Blocks behandelt werden (also rund 8000 MB). So sich jemand wundert, warum Mensch kein Ausgabedevice angeben kann (wie mal angekündigt), sei Ihm darauf geantwortet, das UnDelete gelöschte Files direkt auf dem Datenträger zurückholt, dort wo sie früher auch gestanden haben. 2. Programmstart UnDelete kann sowohl von der Workbench, als auch aus der CLI gestartet werden. 3. Änderungen zu Version 1.0 3.1 Das Zerstören Ab dieser Version besteht die Möglichkeit Files und Directories vollständig vom Drive zu verbannen (praktisch wird die Check- summe des Headerblocks vermauschelt). Das hat den Sinn, daß die Liste der gelöschten Files nicht von Mal zu Mal länger wird und damit Files/DIR's , die Mensch wirklich nicht mehr haben will, aus der Liste entfernten werden. So muß Mensch nicht mehr in einer Liste von 400 Files ein einziges suchen. Kann ein File nicht zurückgeholt werden, z.B. weil es von einem anderen Programm teilweise überschrieben wurde, so wird es automatisch zerstört und taucht beim nächsten Scannen nicht mehr auf. 3.2 Das Zurückholen und Zerstören von Directories Der wohl hauptsächlichste Mangel der Version 1.0 lag darin, das Mensch nicht die Möglichkeit hatte den Inhalt eines Directories mit einem Aufruf zurückzuholen. Der Mangel wurde in dieser Version abgestellt. Wurde ein Directory zurückgeholt, so kann der User dann entscheiden, ob alle Files dieses Direktories zurückgeholt werden sollen oder nicht. Das trifft auf auch darin enthaltene Subdirectories zu. Diese Funktion steht auch beim Zerstören zur Verfügung und zwar genau seit dem Tag, an dem ich versucht habe das Spiel "EMERALD MINE" (3 Dirs und 303 Files) von meiner Platte zu verbannen. TIP: Hat Mensch "ausversehen" das FONTS-Dir gelöscht, so wird zwar der ganze Inhalt gelöscht, aber nicht das Verzeichnis selber, weil meistens ein ASSIGN oder PATH drauf steht. In diesem Fall wird empfohlen das ASSIGN (assign fonts: remove) und den Pfad (path fonts: remove) zu entfernen, und das Verzeichnis dann auch zu löschen. Das hat den Vorteil, daß Mensch dann mit UnDelete nur noch das Verzeichnis FONTS komplett zurückzuholen braucht, ohne sich um einzelne Files oder Unterverzeichnisse kümmern zu müssen. Das gilt natürlich für alle assign'ten Verzeichnisse. 3.3 Dauer des Scannens Als Grundlage dafür gilt: Je voller die Diskette (Festplatte), umso schneller geht das Scannen. Mensch kann für eine fast leere Diskette ungefähr mit 2-3 Minuten rechnen. Bei einer zu 42% gefüllten 52MB-Festplatte dauer es ungefähr 8-9 Minuten. 3.4 Fehlermeldungen Wie üblich gibt es mehrere Arten von Fehlermeldungen, solche die zum Abbruch einer Aktion führen und solche die dem User auf etwas aufmerksam machen wollen. Zur ersten Sorte gehören die, die beim Scannen auftreten. Und das sind genau drei/vier. 1. ABBRUCH: Lesefehler auf Drive Dieser Fehler hat eine ganz besondere Bedeutung, weil beim Scannen immer nur die Blöcke beachtet werden, die in der Bitmap als nicht belegt gekennzeichnet sind. Testprogramme wie z.B. DisCovery testen immer nur die belegten Blöcke, der Fehler kann also von DisCovery nicht bemerkt werden. Tritt dieser Fehler auf heißt das also: ein noch nicht belegter Block ist defekt. Sie sollten die Diskette neu formatieren (natürlich nachdem sie die Daten gerettet haben), denn wenn sie versuchen die Diskette ganz voll zu machen kommt es garantiert zu Fehlern. Der Fehler tritt natürlich auch auf, wenn Sie die Diskette einfach entnehmen. 2. ABBRUCH: Zu wenig Speicher Es sind so viele gelöschte Files auf der Disk, daß sie im Speicher nicht mehr untergebracht werden können. Pro File mu ein Platzbedarf von rund 50 Bytes eingeplant werden. Es gibt immer noch die Möglichkeit UnDelete von der InitialCLI zu starten, oder seinen Speicher zu erweitern. 3. ABBRUCH: Kann nur OFS / FFS Disks bearbeiten Klar, die Diskette ist nicht in Ordnung. Meistens nicht forma- tiert. Ansonsten kann UnDelete den Bootblock nicht finden oder Die Bitmap ist als ungültig gekennzeichnet. 4. ABBRUCH: Diskette gewechselt Der Fehler tritt zwar nicht beim Scannen auf (sondern beim Entfernen/Wechseln der Diskette in der File/Dir-Auswahl), hat aber dieselbe Wirkung , wie seine drei Brüder. Es wird sofort nach der Bestätigung in die Drive-Auswahl zurückgekehrt. Die anderen Fehler treten auf, wenn UnDelete nicht in der Lage ist ein File oder Dir zurückzuholen. Der Grund wird dann angezeigt und davon gibt es der Stücker fünf. 1. (Lesefehler) ... Ein Block konnte nicht gelesen werden. Dieser Fehler ist eigentlich unmöglich, weil das normalerweise schon beim Scannen bemerkt wird. Es tritt nur auf wenn die Diskette während der Bearbeitung eines Files/Dirs enfernt wurde. 2. (Struktur defekt) ... Vor der Wiederherstellung eines Files wird sehr genau darauf geachtet, ob die Drivestruktur noch korrekt ist. Bei OFS werden sämtliche Parameter eines Blocks überprüft. Bei FFS ist die Sache schon schwieriger. Dort basiert der Test darauf, daß an der Stelle wo normalerweise die Checkksumme steht, keine gültige Checksumme stehen darf. Die Datensicherheit ist also nicht besonders groß. Das sollte Mensch unbedingt beachten !!! Also noch mal im Klartext um Mißverständnisse zu vermeiden: Es wird lediglich die Diskstruktur getestet. Die Filestruktur bei ausführbaren Files wird nicht überprüft. Schön wäre es ja, vorallem würde es auch die Datensicherheit bei FFS-Disks er- höhen. Es ist für die nächste Version geplant. 3. (benutzte Sektoren) ... Der häufigste Fehler. Ein Block des alten Files wurde bereits von einem anderen Programm überschrieben. 4. (existiert schon) ... Es existiert schon ein File mit demselben Namen. Das File wurde nicht zurückgeholt. Es wurde aber, wie bei allem anderen Fehlern, nicht zerstört. Mensch kann also das Originalfile umbenennen, und es dann noch einmal versuchen. 5. (zu wenig Speicher) ... Dieser Fehler dürfte normalerweise nicht auftreten es sei denn, das System ist wirklich am Ende. Der benötigte Speicher hängt von der Länge des Files ab (Anzahl Blocks*4). 3.5 Fehlerreports Dank umfangreicher Tests können Fehler (außer den Aufgeführten) mit fast 99%-iger Sicherheit ausgeschlossen werden ( siehe Murphy). Alle Fehler der V1.0 wurden abgestellt. Auftretende Bugs bitte an Adresse unter 5. melden. BUG: Hat ein File nicht komplett auf eine Diskette gepaßt, so ist dies aus der Struktur (auch bei OFS) nicht zu erkennen, und das Programm meldet keinen Fehler beim Wiederherstellen! (Das ist auch nicht zu ändern.) WARN: Hat eine Festplatte defekte Blocks, die vom Forma- tierungsprogramm in eine eigens dafür vorhandene Liste der Platte eingetragen werden, sollte Mensch Undelete nicht einsetzen, da dieser Fall nicht berücksichtigt wurde. (ab Version 2.0 sollte das dann funktionopeln) WARN: Schreiben Sie NIEMALS auf ein Drive auf dem UnDelete gerade seine Arbeit verrichtet (lesen ist erlaubt)!!! WARN: Entnehmen Sie niemals eine Diskette, solange Sie sich in der File/Dir-Auswahl befinden. 4. Programmbeschreibung 4.1 Die Auswahl des Drives Mensch hat die Möglichkeit aus einem ListView-Gadget das gewünschte Laufwerk auszuwählen. Für den Fall, daß Mensch sich mit der Maus mal verklickern sollte, wird eine Bestätigung verlangt (es ist immer blöde statt DF0: die 200-MB-große DH0: anzuklickern, vorallem wenn Mensch wenig Zeit hat), weil nämlich das Scannen NICHT unterbrochen oder abgebrochen werden kann!!! 4.2 Die Auswahl des Files Nachdem Mensch nun mehr oder weniger lange gewartet hat, kann er sich ein File oder Dir auswählen, oder nicht, wenn keins gefunden wurde :-). In dem Fall bleibt dem User nur noch das ZURÜCK-Gadget, denn im Gegensatz zu Version 1.0 gehts nicht automatisch in die Drive-Auswahl zurück. Als ausgewählt gilt ein File nur dann, wenn unter dem ListView- Gadget auch "GEWÄHLT: " steht, und auch erst dann kann Mensch es ZERSTÖREN oder ZURÜCKHOLEN. Das Zurückholen oder Zerstören eines Files/Dirs muß, mit einer Ausnahme, immer bestätigt werden. Die Ausnahme betrifft auf das Bearbeiten von Directories zu (siehe 3.2). Denn dort wird der ganze Inhalt des Dirs Stück für Stück und nacheinander be- arbeitet, ohne das der User die Möglichkeit des Abbruchs hat (also, einmal JA gesagt heißt auch JA gemeint!!!). 5. Credits Mathias Nieting Heinrich-Heine-Straße 10 O-2530 Warnemünde Z-Netz: MATHIAS@MAFIA.ZER Voice : 03781/51100 6. Kohle Wer beim nächsten UpDate dabei sein will schicke mir mal was nettes. :-) Ansonsten viel Spasss und allzeit 4 MB unterm Kiel !!!