Datenverlust - Na und? Teil 1

Datenverluste gehören leider untrennbar zum Computeralltag. Kaum ein Anwender dürfte diese Erfahrung nicht bereits gemacht haben. Wurden rechtzeitig Kopien angefertigt, ist man auf der sicheren Seite. Fehlt jedoch ein Backup, kann es düster aussehen. Aber die Chancen, verlorene Daten zurückzugewinnen, sind erheblich größer, als vielfach angenommen wird.

Daß Backups wichtiger Daten die beste Rückversicherung gegen einen Datenverlust sind, ist eigentlich eine Binsenweisheit. Dennoch gibt es erschreckend viele Anwender, die auf das Anfertigen von Sicherungskopien verzichten. Dies mag daran liegen, daß auch nach jahrelanger Arbeit mit dem Rechner nichts weiter passiert ist, also eine trügerische Sicherheit herrscht. Und es ist ja in der Tat nicht so, daß Datenverluste in schöner Regelmäßigkeit auftreten. Aber der Fall des Falles kann jederzeit eintreten und dessen sollte man sich bewußt sein. Vorbeugung ist auch auf dem Computersektor immer noch die beste Medizin.

Prinzipielles

Ein Backup kann man mit verschiedenen Methoden anlegen, die nicht zuletzt von der eigenen Computerausrüstung abhängen. Prinzipiell sind zwei Arten der Datensicherung denkbar. So lassen sich Dateien entweder im Rahmen eines Kopiervorgangs auf dem Backup-Medium unterbringen oder aber es wird ein Backup in der Art angelegt, daß alle belegten Sektoren eines Laufwerks (meist auf Disketten) gesichert werden.

Backups in Form einzelner Dateien haben den großen Vorteil, daß die Daten zu einem späteren Zeitpunkt selektiv zurückgeholt werden können. Nachteilhaft wirkt es sich aus, daß der Zeitaufwand für solche Backups dann besonders groß ist, wenn die Daten auf Disketten oder Streamern untergebracht werden sollen. Besitzer einer Wechselplatte brauchen sich keine großartigen Gedanken über den Zeitfaktor zu machen, denn die Wechselplatte stellt ein recht schnelles und flexibles Backup-Medium dar. Datei-Backups werden in der Regel inkrementell angefertigt, was besagt, daß nur diejenigen Dateien neu gesichert werden, die sich seit dem letzten Backup geändert haben. Diese Methode bringt gegenüber einem vollständigen Backup eine erhebliche Zeitersparnis mit sich.

Backup-Verfahren, die nicht datei-orientiert arbeiten, sichern alle belegten Sektoren eines Medium unabhängig von deren Zuordnung zu den einzelnen Dateien. Diese Art des Backups ist dann die schnellste, wenn große Datenmengen auf Disketten untergebracht werden müssen. Im Falle eines Datenverlustes lassen sich die gesicherten Daten aber nur in ihrer Gesamtheit zurückspielen. Somit ist dieses Verfahren weniger flexibel als das Sichern auf Datei-Ebene, ein inkrementelles Arbeiten ist prinzipbedingt nicht möglich.

Bei beiden Backup-Varianten können die Daten komprimiert werden, insbesondere um Disketten zu sparen. Zu komprimierten Backups ist allerdings zu sagen, daß hier die Datensicherheit insofern zu wünschen übrig läßt, als daß beim Auftreten von Fehlern auf den Backup-Disketten in der Regel mehrere Dateien unwiderruflich verloren sind. Zudem benötigt das Komprimieren der Daten Zeit, die man vielleicht gar nicht investieren will. Bei den heutigen Preisen für Disketten ist es ohnehin eher nebensächlich, wenn ein Backup zwei oder drei Disketten mehr verschlingt.

Glossar

Backup
Als Backup bezeichnet man die Sicherungskopie einer Festplatte oder Diskette. Ein aktuelles Backup beugt bei einem Datenverlust Ärger oder großen Schwierigkeiten vor.

Boot-Sektor
Der Boot-Sektor ist immer das erste Segment eines logischen Laufwerks. Bei Disketten ist es Sektor 1 bei Spur 0, bei Festplatten immer der erste Sektor einer Partition. Im Boot-Sektor stehen beispielsweise Informationen über die Partitions- und Cluster-Größe.

Cluster
Im Gegensatz zu zahlreichen anderen Betriebssystemen verwaltet GEMDOS Disketten und Festplatten nicht in Sektoren, sondern in Clustern. Normalerweise sind Cluster zwei aufeinanderfolgende Sektoren .Für jeden Cluster existiert in der FAT ein freier Platz (12 Bits oder 3 Nibbles), wo festgehalten wird, ob ein Cluster frei oder belegt ist. Die Programmierung bzw. Handhabung geschieht allerdings nicht über Cluster, sondern über Sektoren. Vielleicht sollte man noch erwähnen, daß Cluster auch aus mehr als 2 Sektoren, beispielsweise aus 4 oder 8 bestehen können.

FAT
File Allocation Table, Datei-bzw. Blockbelegungstabelle.

Die FAT existiert auf Disketten oder Festplatten jeweils zweimal. In den FATs sind die Belegung des Speichermediums und die Verkettung von Dateien abgelegt. Da GEMDOS auf Cluster (zwei Sektoren) zurückgreift, kann die Belegungstabelle recht kompakt gehalten werden. Allerdings wirkt sich dieser Vorteil nur bei Disketten größer aus, bei Festplatten ist er eher gering und kann fast vernachlässigt werden.

Headcrash
Beim Festplattenbetrieb schweben die Schreib-/Leseköpfe auf einem Luftpolster über der Magnetscheibe. Durch unsachgemäßen Transport bzw. durch Stöße während des Betriebs können die Köpfe auf die Magnetoberfläche schlagen; in diesem Fall spricht man von einem Headcrash, der fatale Folgen haben kann, die bis zum kompletten Verlust der abgelegten Daten führen können.

Heads
Köpfe; jedes Medium besitzt eine gewisse Anzahl von Köpfen bzw. Heads, bei ST-Diskettenlaufwerken sind 2 Köpfe mittlerweile Standard, bei Festplatten existieren in der Regel wesentlich mehr: 4,6,8 und mehr.

Backup-Strategien

Wie häufig man neue Backups anlegen sollte, hängt natürlich davon ab, wie schnell sich die jeweiligen Daten ändern. Außerdem wird man einen Kompromiß zwischen Geschwindigkeit und Häufigkeit des Backups schließen wollen. Das Sichern der Daten auf Disketten nimmt naturgemäß die meiste Zeit in Anspruch und ist daher verständlicherweise recht unbeliebt.

Die Verwendung von HD- oder gar ED-Disketten ist empfehlenswert, denn höhere Datendichten bringen nicht nur ein Plus an Kapazität, sondern auch an Geschwindigkeit. Auf bereits formatierten DD-Disketten läßt sich in einer Minute ca. 1 MByte an Daten unterbringen. Für die gleiche Datenmenge werden bei HD-Disketten 30, bei ED-Disketten nur ca. 15 Sekunden benötigt. Werden die Daten auf einer Wechselplatte oder einem Streamer gesichert, kann das ohne Zutun des Anwenders geschehen, so daß sich hier Backups in kürzeren Zeitabständen empfehlen.

Beim Anlegen von Backups sollte man darauf achten, die Backup-Medien wechselweise einzusetzen. Für Besitzer einer Wechselplatte hieße das, mit zwei Cartridges zu arbeiten, die abwechselnd benutzt werden. Schließlich sollte man sich auch Gedanken über dezentralisierte Kopien machen, besonders dann, wenn es sich um wirklich wichtige Daten handelt. Denn was nützt es, wenn alle Backups im gleichen Raum aufbewahrt werden, der durch einen Unfall (Feuer etc.) zerstört wird?

Vorbeugeuntersuchung

Nun ist es trotz aller guten Vorsätze nicht auszuschließen, daß widrige Umstände einen drohenden Datenverlust mit sich bringen. Auch die Backup-Medien bleiben ja von Fehlern nicht verschont. In solchen Fällen muß man noch lange nicht verzweifeln. Was auf den ersten Blick wie eine Katastrophe anmutet, kann sich bei näherer Betrachtung als relativ harmlos herausstellen. Aber auch ernsteren Problemen kann man durchaus mit Erfolg zu Leibe rücken. Unabdingbare Voraussetzung ist aber, daß man eines dieser häufig mit Mißtrauen beäugelten Programme besitzt, die sich Diskmonitor oder Diskdoktor schimpfen.

Nicht nur im Ernstfall, sondern auch im täglichen Gebrauch läßt sich solche Software vorteilhaft einsetzen. Oder können Sie sich sicher sein, daß auf Ihrer Platte alles im Lot ist und sich nicht schon irgendwelche Probleme anbahnen? Viele Datenverluste lassen sich durch eine regelmäßige Überprüfung der Medien abwenden. Dabei geht es nicht nur um die Frage, inwiefern defekte Sektoren vorhanden sind. Gravierender sind logische Fehler, die dazu führen, daß Daten in Unordnung geraten und dadurch die Zuordnung der Datensektoren zu den einzelnen Dateien verfälscht wird. Solche Effekte sind oft Folgen eines Absturzes zum denkbar ungünstigsten Zeitpunkt, nämlich dann, wenn gerade Daten auf die Platte geschrieben werden.

Gehört ein Viruskiller zur Standardausrüstung vieler Computerbesitzer, so findet man einen Diskmonitor schon seltener. Dabei sind Datenverluste durch Fehler auf Datenträgern wohl häufiger als Verluste durch die Machenschaften von Computerviren.

Datenrettung

Ist das Unglück nun eingetreten, so gilt es, den Fehler einzukreisen und ihn zu beheben. Klar, das ist leichter gesagt, als getan. Zumindest was die Fehleranalyse betrifft, lassen sich jedoch durchaus einige Hinweise geben und oft zeigt sich dann, daß auch eine Fehlerbeseitigung möglich ist. Alle im Rahmen dieser Serie vorgestellten „Rezepte“ dürften mit einem handelsüblichen Disk-Utility realisierbar sein. Als Mindestvoraussetzung gilt, daß die benutzte Software in der Lage ist, einzelne Sektoren zu lesen und zu schreiben. Beim Arbeiten mit Disketten sollten physikalische Zugriffe unter Angabe von Seite, Spur und Sektor erlaubt sein. Was die Festplatte angeht, ist die Möglichkeit zum absoluten Zugriff wichtig. Hierunter ist zu verstehen, daß man einen Sektor unabhängig von der Unterteilung der Platte in Partitionen durch seine physikalische Sektornummer ansprechen kann. Nur so ist ein Bearbeiten von Partitionen denkbar, die vom Treiber nicht mehr korrekt erkannt werden.

Es versteht sich von selbst, daß neben geeigneter Software auch die eigenen Kenntnisse der Materie von Bedeutung sind. Zwar bieten viele Disk-Utilities Funktionen zur automatischen Datenrettung, mit denen man in vielen Fällen bereits einen großen Schritt weiterkommt, aber Grundkenntnisse zum Thema Datenträger sind bei der Fehlerbeseitigung von großem Vorteil. Daher soll es zunächst um die Frage gehen, wie Daten auf Disketten und Festplatten eigentlich organisiert sind.

Grundlagen

Disketten und Festplatten sind erst dann zur Datenspeicherung geeignet, wenn sie vorher formatiert wurden. Dabei wird das Medium in konzentrische Spuren (Tracks) und Sektoren unterteilt. Bei Festplatten kommt noch die Partitionierung hinzu, bei der die Platte in mehrere, voneinander unabhängige Laufwerke eingeteilt werden kann. Die Kapazität eines Mediums hängt direkt von der Zahl der Spuren und Sektoren ab, wobei letztere die kleinste für die Datenspeicherung verwendete Einheit darstellen. Ein Sektor hat in der Regel eine Größe von 512 Bytes. Dies gilt nicht nur für den Atari, sondern auch für viele andere Systeme. Daß selbst bei gleicher Sektorgröße Disketten nicht ohne Weiteres zwischen Computern unterschiedlichen Typs ausgetauscht werden können, hängt nicht mit der physikalischen Formatierung, sondern mit der logischen Unterbringung der Daten zusammen. So erwartet jedes Betriebssystem gewisse Daten an ganz bestimmten Stellen des Mediums. Abweichungen sorgen dafür, daß ein Datenaustausch über Diskette nicht möglich ist. So lassen sich Daten auf HD-Disketten für den Apple Macintosh nicht auf dem Atari oder IBM-kompatiblen Geräten einlesen und umgekehrt. Die Formatierung ist in allen Fällen zwar identisch, nicht aber das logische Datenformat.

HEX 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
3 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
4 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
5 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
6 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
7 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
8 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
9 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
A 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
B 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
C 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
D 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223
E 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239
F 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

Tabelle zum Umrechnen von Hexadezimal- auf Dezimalzahlen

Sektoren zur Datenverwaltung

Genau Angaben über die Aufteilung eines Mediums befinden sich bei DOS-kompatiblen Medien, zu denen auch die vom Atari verwendeten Disketten zählen, auf dem sogenannten Boot-Sektor. Dieser befindet sich bei Disketten auf Seite 0, Spur 0, Sektor 0 und bei Festplatten-Partitionen (hier existiert keine für den Anwender erkennbare Unterteilung in Seiten und Spuren) auf dem ersten Sektor jeder Partition. Ein fehlerfreier Boot-Sektor ist eine wichtige Voraussetzung, damit TOS auf die Daten des Mediums zugreifen kann. Die Daten im Boot-Sektor machen Aussagen über die Organisation der restlichen Sektoren des Mediums. Hierzu zählen die Diskbelegungstabelle (File Allocation Table, FAT), das Wurzel Verzeichnis und schließlich die eigentlichen Datensektoren.

Die FAT enthält Angaben darüber, welche Sektoren zu welcher Datei gehören und ist stets in zwei Ausfertigen vorhanden. Das Wurzelverzeichnis enthält die Dateieinträge, die als erstes nach dem Öffnen eines Verzeichnis-Fensters auf dem Desktop angezeigt werden. Im Gegensatz zu Ordnern, die nahezu beliebig viele Dateien enthalten können, existiert für das Wurzelverzeichnis eine Obergrenze. Diese liegt bei Disketten häufig bei 144, bei Festplatten-Partitionen meist bei 256 Dateien.

Boot-Sektor, FAT und Wurzelverzeichnis enthalten lediglich Informationen, die zur Verwaltung der eigentlichen Daten auf den Datensektoren benötigt werden. Fehler auf den Verwaltungssektoren eines Mediums können dazu führen, daß die Datensektoren nicht mehr korrekt angesprochen werden können. Dabei heißt das noch lange nicht, daß die gespeicherten Daten endgültig verloren sind.

Bild 1: Ein Blick auf den Boot-Sektor
Byte Name Bedeutung
0-1 Verzweigung auf Bootprogramm
2-7 reserviert
8-10 Seriennummer ($3C4D9B = 3952027)
11-12 BPS Bytes pro Sektor ($0200 = 512)
13 SPC Sektoren pro Cluster ($02 - 2)
14-15 RES reservierte Sektoren ($0001 = 1)
16 FAT Anzahl der FATs ($02 = 2)
17-18 DIR Zahl der Dateien im Wurzelverzeichnis ($0070 = 112)
19-20 SEC Gesamtzahl der Sektoren ($05A0 = 1440)
21 MEDIA Media Descriptor Byte, von TOS unbenutzt
22-23 SPF Sektoren pro FAT ($0005 = 5)
24-25 SPT Sektoren pro Track ($0009 = 9)
26-27 SIDE Zahl der Seiten ($0002 = 2)
28-29 HIDE versteckte Sektoren ($0000 = 0)

Tabelle 2

Der Boot-Sektor

Sofern Sie die Möglichkeit haben, sehen Sie sich doch einmal den Boot-Sektor einer formatierten Diskette mit Ihrem Diskmonitor näher an. Lesen Sie hierzu einfach den Sektor 0 ein. Der Bildschirm wird nun je nach Programm ähnlich aussehen wie der Ausschnitt auf Bild 1. Ganz links findet sich eine Angabe über die Position der Daten im Sektor. Im mittleren Bereich sind die Inhalte des Sektors im hexadezimalen Format dargestellt. Rechts davon erscheinen diese Werte zusätzlich im ASCII-Format, was bei der Analyse von Textdateien hilfreich ist. Die Verwendung von Angaben im hexadezimalen Format mag zwar etwas fremd anmuten, hat aber diverse Vorteile. (Einige Diskmonitore erlauben auch eine dezimale Anzeige.) Wer mit hexadezimalen Zahlen noch nicht vertraut ist, kann diese gemäß Tabelle 1 in ihre dezimalen Äquivalente umrechnen. Überdies unterstützt eine Reihe von Taschenrechnern die hexadezimale Arithmetik.

Die Boot-Sektor-Parameter, die eine Aussage über den Aufbau der Disketten machen, befinden sich in den Bytes 11 bis 29. Alle Daten sind im Intel-Format abgelegt, was besagt, daß das niederwertige Byte eines 16-Bit-Wortes dem höherwertigen voransteht. Fberzu ein Beispiel: $0002 in Intel-Schreibweise entspricht $0200 in Motorola-Notation, was gemäß der Tabelle einen dezimalen Wert von 512 ergibt.

Hier nun die Organisation der Parameter im Boot-Sektor. Die Angaben in Klammern beziehen sich auf die Werte im Boot-Sektor von Bild 1 und wurden bereits in das Motorola-Format überführt (s.Tabelle 2). SPT und SIDE kommt nur bei Disketten eine Bedeutung zu. Aber das liegt ja auf der Hand.

Glossar

INTEL-Format
Das TOS-Diskettenformat ist durch das INTEL-Format kompatibel zum MS-DOS-Format. Das hat den Vorteil, daß Speichermedien von beiden Betriebssystemen gelesen werden können. Allerdings erfordert das INTEL-Format ein Umdenken, weil das niedrigstwertige Byte eines 16-Bit-Wortes zuerst interpretiert werden muß.

Partition
Die Partitionierung ist die logische Unterteilung einer Festplatte, wobei jede einzelne Partition explizit angesprochen und verwaltet wird.

Sektoren
Disketten und Festplatten sind in sogenannte Tracks (Spuren) unterteilt, wobei jeder Track aus einer bestimmten Anzahl von Sektoren besteht. Bei Disketten besteht in der Regel ein Track aus 9 Sektoren. Bei Festplatten schwankt die Zahl hingegen gewaltig. Beim ATARI unterscheidet man zwischen physikalischen und logischen Sektoren, wobei die logischen alle Sektoren einer Festplatte bzw. Diskette bezeichnen, während die physikalischen auf einen Track beschränkt sind.

Root-Sektor
Der Root-Sektor ist nur auf Festplatten zu finden. Seine Position ist der logische Block 0. In diesem Sektor sind Informationen über Festplattengröße, Partitionsanzahl, wo sie liegen sowie eventuell ein Boot-Programm untergebracht.

Track
Ein Track besteht aus einer gewissen Anzahl von Sektoren, bei Disketten bilden 9 Sektoren einen Track, bei Festplatten ist die Anzahl der Sektoren, die einen Track bilden, unterschiedlich.

Wurzelverzeichnis
Das Wurzelverzeichnis wird auch als Root-Verzeichnis tituliert. Es schließt sich nach dem Boot-Sektor sowie FAT 1 und 2 an. Das Root-Verzeichnis nimmt eine Sonderstellung ein, weil es auf einer festen Sektorposition liegt. Die Einträge in einem Wurzelverzeichnis sind begrenzt.

Zylinder
Ein Zylinder beinhaltet alle Tracks eines Mediums, die an derselben Position der mitunter zahlreichen Magnetscheiben liegen. Bei einer Diskette beinhaltet Zylinder 0 den ersten Track der Diskettenober- und -Unterseite.

Bild 2: Dateinamen im Rohformat

Interpretation

Somit stammt unser Boot-Sektor also von einer doppelseitigen Diskette, die mit 9 Sektoren pro Spur formatiert wurde. Da insgesamt 1440 Sektoren vorhanden sind, hat die Disk 1440/2/9 = 80 Spuren. Es gibt zwei je 6 Sektoren umfassende Diskbelegungstabellen, das Wurzelverzeichnis faßt maximal 112 Einträge. (Da jeder Dateieintrag 32 Bytes benötigt, werden also 7 Sektoren für das Directory bereitgestellt.) Bei dem einen reservierten Sektor handelt es sich um den Boot-Sektor. Versteckte Sektoren gibt es keine, d.h. alle weiteren Sektoren sind für die Datenspeicherung zugänglich.

Alle diese Angaben entsprechen genau dem Diskettenformat, das der Desktop beim Formatieren einer doppelseitigen DD-Diskette mit 720 KByte Kapazität (= 1440 Sektoren zu je 512 Bytes) erzeugt.

Insgesamt 18 Sektoren werden von Verwaltungsdaten belegt, so daß schließlich 1422 Sektoren für die eigentlichen Daten übrig bleiben.

Noch nicht geklärt ist der Begriff „Sektoren pro Cluster“. Ein Cluster stellt die kleinste Einheit dar, die das Betriebssystem für die Speicherung von Daten vergibt. Jede Datei benötigt stets Vielfache dieser Einheit, die in der Regel 2 Sektoren ausmacht. Bei IBM-kompatiblen HD-Dis-ketten besteht jeder Cluster lediglich aus einem Sektor. Mehr als 2 Sektoren pro Cluster können von TOS nicht verwaltet werden, was zu Inkompatibilitäten führt, falls DOS-Wechselplatten mit einer Kapazität von mehr als 32 MByte unter TOS bearbeitet werden sollen.

Die Numerierung der Cluster beginnt (wohl aus Kompatibilitätsgründen zu DOS) nicht bei 0 sondern bei 2. Aus unerfindlichen Gründen (wahrscheinlich durch eine Macke im Betriebssystem bedingt) lassen sich die letzten beiden Clusters eines Mediums nicht ansprechen, was dazu führt, daß bei Disketten im Endeffekt 1418 benutzbare Datensektoren übrig bleiben. Daraus resuliert dann auch die allseits bekannte Diskettenkapazität von 1418*512 = 726016 Bytes.

Bei DD-Disketten, die auf IBM-kompatiblen Geräten formatiert wurden, besitzt jede FAT übrigens nur 3 Sektoren, so daß hier vier zusätzliche Datensektoren vorhanden sind, was die Kapazität auf 728064 Bytes erhöht. Egal, welches dieser beiden Formate vorliegt, beide können sowohl von TOS als auch von DOS gelesen werden.

Wo wir gerade bei der IBM-Kompatibilität sind: Erst ab TOS 1.04 formatiert der Atari-Desktop Disketten DOS-kompatibel. Bei den älteren Systemversionen wurde das für TOS ohnehin bedeutungslose Media Descriptor Byte, welches codierte Angaben über das Diskettenformat enthält, auf einen von DOS nicht erkannten Wert gesetzt. Dadurch ließen sich Atari-Disketten nicht auf IBM-kompatiblen Geräten benutzen und man war gezwungen, den Datenaustausch mit Disketten durchzuführen, die unter DOS formatiert wurden.

Bild 3: Die Diskbelegungstabelle einer Festplatte
Bild 4: Schlecht zu durchschauen: Die FAT bei Disketten
Bild 5: Die ganze Wahrheit über Ordner

Dateinamen und mehr

Die nach dem Öffnen eines Verzeichnisfensters auf dem Desktop angezeigten Daten stammen aus dem Wurzel Verzeichnis des Datenträgers. Neben diesen jederzeit sichtbaren Informationen über die einzelnen Dateien sind im WurzelVerzeichnis eine Reihe weiterer Angaben untergebracht. Bild 2 zeigt einen Ausschnitt aus dem Directory einer Diskette. Wie bereits beim Boot-Sektor sind einige Daten der insgesamt 32 Bytes umfassenden Dateieinträge im Intel-Format organisiert.

Byte Bedeutung
$00-$0A Dateiname
$0B Dateiattribut
$0C-$15 reserviert
$16-$17 Uhrzeit der Dateierstellung
$18-$19 Datum der Dateierstellung
$1A-$1B Nummer des ersten Clusters der Datei
$1C-$1F Dateilänge in Bytes

Die erste Datei in Bild 2 hat somit den Namen MORE.TOS. Der Punkt zwischen Dateinamen und Extension ist redundant und wird daher nicht im Verzeichnis aufgeführt. Eventuelle Leerzeichen hingegen sind vorhanden. Datum und Uhrzeit sind im sogenannten GEMDOS-Format abgelegt, das für uns nicht weiter von Bedeutung ist. Wichtiger ist da schon die Angabe über den ersten Daten-Cluster. $0200 im Intel-Format ergibt sich zu einem dezimalen Wert von 2. Da die Zählung der Cluster ohnehin erst bei 2 beginnt, steht die Datei MORE.TOS also auf den ersten Datensektoren. Die Dateilänge beträgt (in Motorola-Format umrechnen!) $00006FE4 = 28644 Bytes.

Verbleibt noch das Dateiattribut. Dieses Byte schlüsselt sich wie folgt auf:

Bit 0: Datei ist schreibgeschützt (Read Only).
Bit 1: Datei wird nicht auf Desktop angezeigt (Hidden).
Bit 2: Systemdatei, wird ebenfalls nicht angezeigt (System).
Bit 3: Dieser Eintrag enthält den Diskettennamen (Volume Label).
Bit 4: Es handelt sich um einen Ordner.
Bit 5: Von dieser Datei wurde noch kein Backup erzeugt (Archivbit).

Schreibgeschützte Dateien lassen sich erzeugen, indem man die Datei-Information des Desktop abruft und das „Nur lesen“-Attribut setzt. Die neuen TOS-Versionen markieren solche Dateien mit einem „A“-Zeichen vor dem Dateinamen, sofern die Textdarstellung ausgewählt wurde Was die im Directory vorhandenen Informationen angeht, weisen Volume Labels und Einträge von Ordnern kleine Besonderheiten auf. So enthält die Angabe über die Dateilänge in beiden Fällen eine Null, wie an den Einträgen CPX und DISKNAME zu erkennen ist. Ein Volume Label enthält ferner keine Angabe über den Start-Cluster, so daß bei DISKNAME auch hier eine Null eingetragen ist. Dies sollte auch nicht weiter verwundern, denn es handelt sich hier um keine Datei im eigentlichen Sinne sondern es ist lediglich der Name von Bedeutung. Wie man sieht, muß der Name des Datenträgers nicht der erste Eintrag im Wurzel Verzeichnis sein. Das hängt ganz davon ab, wann (wenn überhaupt) das Medium seinen Namen bekommen hat.

Noch ein Wort zur Datei mit dem Namen „gEWDESK.INF“. Wer vermutet, daß dies eher „NEWDESK.INF“ heißen sollte, also der erste Buchstabe des Dateinamens irgendwie verfälscht ist. liegt vollkommen richtig. Ein „o“ als erstes Zeichen eines Dateinamens kennzeichnet eine gelöschte Datei, die nicht mehr auf dem Desktop oder im File Selector angezeigt wird. Wie man bei nähererer Betrachtung des Dateieintrags unschwer erkennen kann, sind bis aut den ersten Buchstaben des Namens alle weiteren Angaben noch vorhanden. Hier deutet sich bereits an. daß nach dem Löschen einer Datei noch lange nicht alle Informationen verloren sind. So läßt sich dem Directoryeintrag entnehmen. daß diese Datei auf Cluster 31 ($001F) begonnen haben muß und 3451 ($00000D7B) Bytes umfaßt hat. Auch Datum und Uhrzeit sind noch erhalten.

Ein Nullbyte als erstes Zeichen eines Dateieintrags markiert das Verzeichnisende. Alle Informationen, die eventuell noch folgen mögen, werden nicht weiter beachtet. Werden neue Dateien angelegt, werden zunächst die Einträge der gelöschten Dateien durch die Verzeichnisdaten der neuen Datei überschrieben. Sind keine gelöschten Dateieinträge mehr vorhanden, werden neue Einträge am Ende des Directory erzeugt.

Organisation der FATs

Liegen Boot-Sektor und Wurzel Verzeichnis lediglich in einfacher Ausführung vor, ist die Diskbelegungstabelle gleich in doppelt vorhanden. Nur in seltenen Fällen findet man Disketten mit nur einer FAT. Diese wurden mit spezieller Software unter DOS formatiert und können ab TOS 2.06 bzw. 3.06 auch vom Atari verwendet werden.

Die erste FAT liegt grundsätzlich direkt hinter dem Boot-Sektor, also auf Sektor 1. Sie stellt das eigentliche Doppel dar, das zwar beim Schreiben von Dateien stets aktualisiert, ansonsten aber von TOS nicht verwendet wird. Grundlegend für alle datei-orientierten Zugriffe ist FAT 2, die sich zwischen FAT 1 und dem Wurzelverzeichnis befindet. (Weichen die Inhalte von FAT 1 und FAT 2 voeinander ab, so weist dies auf einen Fehler hin.)

Ich hatte bereits angedeutet, daß die FAT Informationen über die Zuordnung der Datensektoren zu den Dateien enthält. Genauer gesagt geht es bei diesen Angaben nicht um die Sektoren an sich, sondern um die Daten-Cluster. Während die Nummer des ersten Clusters einer Datei im Dateieintrag vermerkt ist, lassen sich alle weiteren Cluster anhand der FAT ermitteln. Bild 3 zeigt einen Ausschnitt aus dem Beginn einer FAT, wie sie bei Festplatten oder ED-Disketten auftreten kann. Jeder Eintrag umfaßt 16 Bit, die wieder einmal im Intel-Format angeordnet sind. Da die Zählung der Daten-Cluster erst bei 2 beginnt, kommt den ersten beiden FAT-Einträgen keine Bedeutung zu. Bei Festplatten-Partitionen findet man hier in der Regel Nullen. Bei Disketten hingegen enthält das erste Byte eine Kopie des Media Descriptor Bytes aus dem Boot-Sektor, die beiden restlichen Bytes haben meist den Inhalt $FF.

Cluster-Verkettung

Um alle Cluster zu erfassen, die zu einer bestimmten Datei gehören, muß man sich zunächst am entsprechenden Directoryeintrag orientieren. Dieser enthält eine Angabe über die Nummer des Start-Clusters dieser Datei (s.o.). Der Eintrag der Datei MORE.TOS aus Bild 2 gibt Cluster 2 als ersten Cluster an. Dies entspricht gleichzeitig der Nummer des FAT-Verweises, der die Nummer des nächsten Clusters enthält. Ein Blick auf die FAT auf Bild 3 zeigt, daß es sich hierbei um Cluster 5 handeln muß, denn an der zweiten (eigentlich vierten) Position in der FAT steht nach Umwandlung in die Motorola-Notation der Wert $0005, also 5. FAT-Eintrag 5 wiederum macht eine Aussage über den nächsten Cluster usw. Ist der letzte Cluster einer Datei erreicht, liegt ein Eintrag mit dem Wert -1 ($FFFF) vor. (Genaugenommen kann der letzte Cluster einer Verkettung durch $FFF8 bis $FFFF markiert werden, aber als Standardwert findet man $FFFF).

Klar, daß auch unbelegte Cluster in irgendeiner Weise gekennzeichnet werden müssen. Ein Cluster wird dann von keiner Datei belegt, wenn er in der FAT einen Nulleintrag enthält. (Da die Zählung der Cluster erst bei 2 beginnt ist dies eindeutig.) Defekte Cluster schließlich werden mit $FFF7 markiert. (Um ganz präzise zu sein: Alle Werte zwischen $FFF0 und $FFF7 werden als Werte für defekte Cluster angesehen.)

Bei FATs auf Disketten ist die Lage ähnlich, aber leider ein wenig komplizierter. Bei DD- und HD-Disketten besitzt jeder FAT-Eintrag lediglich eine Größe von 12 Bit, wohl weil sich hierdurch ein wenig Speicherplatz sparen läßt. Dies hat aber zur Folge, daß sich der FAT-Inhalt nicht so leicht interpretieren läßt, wie es bei Einträgen zu 16 Bit der Fall ist. Man muß jedes Byte in zwei sogenannte Nib-bles zu je 4 Bit aufteilen, von denen pro FAT-Eintrag drei benötigt werden. Die in Bild 4 dargestellte FAT einer Diskette entschlüsselt sich folgendermaßen:

F9 FF FF 03 40 00 05 60 FF

Die Unterteilung in Nibbles erschwert die Zuordnung der FAT-Einträge merklich. Die fett gedruckten bzw. unterstrichenen Nibbles bilden jeweils eine Einheit. Glücklicherweise übernehmen manche Diskmo-nitore die Umrechnung der FAT-Daten in Dezimalangaben, so daß es dann für den Benutzer keine Rolle spielt, ob man eine 12- oder 16-Bit-FAT vor Augen hat.

Da mit einer FAT im 12-Bit-Format maximal 4095 ($FFF) Werte codiert werden können, die Werte $FF0 bis $FFF aber reserviert sind, können in einer 12-Bit-FAT Informationen für maximal 4079 Cluster untergebracht werden. Datenträger mit größerer Kapazität besitzen deshalb stets eine 16-Bit-FAT. Bei Festplatten-Partitionen, die mit dem Atari erstellt wurden, haben die FATs unabhängig von der Kapazität einer Partition grundsätzlich das 16-Bit-Format. Bei DOS-forma-tierten Platten ist das nicht so, was dazu führt, daß DOS-Partitionen, die kleiner als etwa 4 MByte sind, von den meisten Festplattentreibern für den Atari nicht korrekt angesprochen werden können. Wer daher eine Partition unter TOS und DOS gleichermaßen benutzen will, darf diese „magische Grenze“ nicht unterschreiten.

Ordner als Sonderfall

Abschließend soll uns noch der Aufbau von Ordnern beschäftigen, der in vielen Punkten an das Wurzel Verzeichnis erinnert. Bild 5 zeigt einen Ausschnitt aus dem Start-Cluster eines Ordners. Auf den ersten Blick fällt auf, daß die ersten beiden Dateieinträge die ominösen Namen und besitzen. Diese bekommt man auf dem Desktop nie zu Gesicht und für TOS haben diese Namen auch keine besondere Bedeutung. Wichtig sind sie lediglich für die Bewahrung der IBM-Kompatibilität.

Erstellungsdatum und -uhrzeit der Verwaltungseinträge und stimmen mit den Daten des entsprechenden Ordners überein. Auch der Wert für die Dateilänge ist auf Null gesetzt, lediglich der Eintrag für den Start-Cluster ist gültig. Dieser verweist bei auf den Start-Cluster des Ordners, also auf denselben Cluster, in dem sich auch die beiden Verwaltungseinträge befinden. hingegen macht eine Aussage über die Cluster-Nummer des übergeordneten Ordners. Ist hier eine Null eingetragen, wie in unserem Beispiel, liegt der Ordner im Wurzelverzeichnis.

Wer bereits unter DOS oder auch UNIX gearbeitet hat, dem sind die Pseudo-Dateinamen und wohl nicht neu. So wechselt man auf beiden Systemen! mit dem Befehl „CD..“ in ein höhergelegenes Verzeichnis. Warum dem so ist läßt sich nun leicht einsehen. Der Eintrag enthält schließlich einen Verweis auf die nächsthöhere Verzeichnisebene.

Obwohl den ersten beiden Dateieinträgen eines Ordners unter TOS keine weitere Bedeutung zukommt, können sich fehlerhafte Daten an dieser Stelle ungünstig auswirken. Dies ist genau dann der Fall, wenn ein Datenträger auch unter DOS benutzt werden soll. Falsche Angaben bei den Verwaltungseinträgen eines Ordners können zu Fehlern bei der Nutzung des Mediums auf IBM-kompatiblen PCs führen.

Erste Eindrücke

Nun sollte der prinzipielle Aufbau eines Datenträgers für Sie kein Buch mit sieben Siegeln mehr sein. Auch wenn ein wenig Rechnerei dazugehört, lassen sich die Informationen in Boot-Sektor, FAT und Directory mit ein wenig Übung recht schnell interpretieren. Viele Diskutilities zeigen einige dieser Angaben im Klartext an, so daß man weitgehend auf die Analyse hexadezimaler Zahlen verzichten kann.

Es dürfte sich bereits jetzt gezeigt haben, daß ein Datenträger mehr nützliche Informationen bereithält, als man auf dem Desktop gewahr wird. Kenntnisse über die internen Strukturen auf Disketten und Festplatten sind eine unerläßliche Hilfe beim Begrenzen von Datenverlusten.

Ausblick

Nachdem nun das wichtigste Rüstzeug vorhanden ist, kann es in den nächsten Ausgaben ums Eingemachte gehen. Unter anderem wird uns die Frage beschäftigen, wie man Datenverluste durch Lesefehler in den Griff bekommen kann. Weiterhin werden logische Fehler auf dem Boot-Sektor oder in FAT und Directory behandelt. Auch fehlerhafte Rootsektoren bei Fest- bzw. Wechselplatten werden Thema sein.

Wie wäre es, wenn Sie sich bis dahin ein wenig mit den Strukturen auf einer Diskette anfreunden? Freude am Experimentieren ist hier höchst nützlich. Solange Sie lediglich unwichtige Disketten oder RAM-Disks und keine Festplatten-Partitionen mit Ihrem Diskmonitor bearbeiten, kann schließlich nichts schiefgehen.


Uwe Seimet
Aus: ST-Computer 03 / 1993, Seite 84

Links

Copyright-Bestimmungen: siehe Über diese Seite