Retter der Waisen: Harddisk-Utility »Orphan«

Verwaiste Cluster auf der Festplatte sind ein Paar Sektoren, die als belegt gelten, aber dennoch zu keiner Datei geboren. Mit dem Utility »Orphan« holen Sie sich den geraubten Platz auf Ihrem Massenspeicher sofort zurück.

GEMDOS teilt alle seine Laufwerke in logische Einheiten (sogenannte Cluster) ein, um sie zu verwalten. Eine Datei betrachtet es als Kette von Clustern, über die es in einer Tabelle - der FAT (»File Allocation Table«) - Buch führt. In dieser Tabelle gibt es bei fehlerfreiem Betrieb genau drei Arten von Clustern: Freie, zur Zeit nicht benutzte Cluster, defekte Cluster, die nicht verwendet werden dürfen und belegte Cluster, die Teile einer Datei oder einer Verzeichnisstruktur sind.

Von Witwen und Waisen

Die Clusterverwaltung kann aber in bestimmten Situationen durcheinanderkommen. Wird ein Schreibzugriff vorzeitig durch einen Programmabsturz oder Reset abgebrochen, finden sich danach oft Cluster in der FAT, die als belegt markiert sind, obwohl sie zu keiner Datei gehören. Solche Cluster bezeichnet man dann als verloren oder verwaist. Die Waisenkinder liegen fortan als ungenutzer Speicherplatz brach und sind ohne entsprechende Tools verloren - es sei denn, Sic formatieren die entsprechende Partition.

Solche Fehler passieren übrigens gar nicht so selten, wie man glaubt. Dafür sorgt ein kleiner GEMDOS-Bug, der sich hartnäckig bis in die neuesten TOS-Versionen hinübergerettet hat. Versucht man nämlich mit der Funktion »Fwrite()« mehr Daten auf ein Laufwerk zu schreiben als dort hineinpassen, sollte die GEMDOS eigentlich nur so lange schreiben, bis das Laufwerk voll ist und dann aufhören. Mit dem Aufhören hapert es aber manchmal: Die Funktion verfängt sich in einer Endlosschleife, die nur durch einen Reset zu beenden ist. Danach hat man dann oft eine Datei mit Null Byte Länge, aber seltsamerweise keinen freien Platz mehr -ein ganz charakteristisches Indiz für ein Waisenproblem. Der Programmierer lernt daraus, daß er vor einem Schreibzugriff besser selbst nachschaut, ob der Platz noch reicht. Dem Anwender dagegen nützt diese Erkenntnis zunächst wenig.

Retter in der Not

Aus eben diesem Grund entstand das Programm »Orphan«, das verwaiste Cluster erkennt und auf Wunsch wieder freigibt. Dazu ist es zunächst einmal notwendig, in der FAT alle Dateien und Verzeichnisse eines Laufwerks zu verfolgen und dabei zu notieren, welche Cluster zu den Dateien und Verzeichnissen gehören. Auf diese Weise bekommen wir heraus, welche Cluster tatsächlich belegt sind. Sind dann noch weitere Cluster als belegt gekennzeichnet, sind diese logischerweise verwaist und stehen für weitere Nutzung zur Verfügung.

Konkrete Details der Programmierung entnehmen Sie dem Quelltext auf der TOS-Diskette im Archiv »Orphan«, der zudem hilfreiche Informationen zum direkten Einbinden von Resourcen in Programme enthält. Selbstverständlich finden Sie dort auch das compilierte Programm »ORPHAN.PRG«. (ah)

Das Utility »Orphan« gibt verwaiste Sektoren wieder frei

Mathias Tobollik
Aus: TOS 01 / 1992, Seite 96

Links

Copyright-Bestimmungen: siehe Über diese Seite