270 lines
12 KiB
HTML
270 lines
12 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<title>Datenrekonstruktion auf Abbild-Ebene</title>
|
|
<link rel="stylesheet" type="text/css" href="../include/dvdisaster.css">
|
|
</head>
|
|
<body>
|
|
|
|
<!-- Title header -->
|
|
<table width="100%" cellpadding="0" border="0">
|
|
<tr>
|
|
<td align="left">
|
|
<span class="fxxl"><b>dvdisaster</b></span>
|
|
<i>Version 0.72.4 / 0.72 (pl4)</i>
|
|
</td>
|
|
<td align="right">
|
|
<span class="fxxl"> </span><a href="http://dvdisaster.net/de/">Zur Internet-Version</a>
|
|
<a href="../cs/qa32.html"></a>
|
|
|
|
<a href="../en/qa32.html"></a>
|
|
<a href="../ru/qa32.html"></a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<!-- Language chooser or separator -->
|
|
<table width="100%" cellpadding="0" border="0">
|
|
<tr>
|
|
<td colspan="2" class="hsep"></td>
|
|
</tr>
|
|
<tr><td colspan="2" style="height: 10px">
|
|
</td></tr>
|
|
</table>
|
|
|
|
<!-- Main body (Navigation, actual page content, optional news column) -->
|
|
<table width="100%" cellspacing=0>
|
|
<tr>
|
|
<!-- Navigation -->
|
|
<td style="background-color:#f0f0f0; vertical-align:top; width:20%;">
|
|
<table width="100%" cellpadding="10">
|
|
<tr>
|
|
<td>
|
|
<span class="fs"><b>Inhalt</b></span>
|
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
<tr>
|
|
<td class="hsep"></td>
|
|
</tr>
|
|
</table><p>
|
|
|
|
<table width="100%">
|
|
<tr><td colspan=3><span class="fs"><a href="news.html">Neuigkeiten</a></span></td></tr>
|
|
<tr><td></td><td></td><td style="height:10px;"></td></tr>
|
|
<tr><td colspan=3><span class="fs"><a href="index.html">Überblick</a></span></td></tr>
|
|
<tr><td></td><td></td><td style="height:10px;"></td></tr>
|
|
<tr><td colspan=3><span class="fs"><a href="howtos.html">Typische Anwendungen</a></span></td></tr>
|
|
<tr><td></td><td></td><td style="height:10px;"></td></tr>
|
|
<tr><td colspan=3><span class="fs"><a href="download.html">Herunterladen</a></span></td></tr>
|
|
<tr><td></td><td></td><td style="height:10px;"></td></tr>
|
|
<tr><td colspan=3><span class="fs"><a href="qa.html">Fragen und Antworten</a></span></td></tr>
|
|
<tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="qa10.html">Technische Fragen</a></span></td></tr>
|
|
<tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="qa20.html">Fehlermeldungen</a></span></td></tr>
|
|
<tr><td style="width:1%; vertical-align:top;">·</td><td colspan=2><span class="fs"><a href="qa30.html">Hintergrundinformationen</a></span></td></tr>
|
|
<tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="qa31.html">Eigenschaften der Fehlerkorrektur</a></span></td></tr>
|
|
<tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs">Datenrekonstruktion auf Abbild-Ebene</span></td></tr>
|
|
<tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="qa33.html">RS01, RS02 und RS03</a></span></td></tr>
|
|
<tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="qa34.html">Lineares Lese-Verfahren</a></span></td></tr>
|
|
<tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="qa35.html">Angepaßtes Lese-Verfahren</a></span></td></tr>
|
|
<tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="qa36.html">Bemerkungen zu Lesefehlern</a></span></td></tr>
|
|
<tr><td></td><td style="vertical-align:top; font-size:small;">-</td><td><span class="fs"><a href="qa37.html">Fehlerkorrektur-Datei aufbewahren</a></span></td></tr>
|
|
<tr><td></td><td></td><td style="height:10px;"></td></tr>
|
|
<tr><td colspan=3><span class="fs"><a href="feedback.html">Fehler berichten</a></span></td></tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td></td>
|
|
|
|
<!-- Actual page contents -->
|
|
<td style="vertical-align:top; width:77%;" rowspan="2">
|
|
|
|
<!-- Insert actual page content below -->
|
|
|
|
<h3 class="top">Datenrekonstruktion auf Abbild-Ebene</h3>
|
|
|
|
Eine Datenträger-Rekonstruktion mit fehlerkorrigierenden Kodes findet in
|
|
zwei Schritten statt:
|
|
|
|
<ol>
|
|
<li>Zuerst wird versucht, möglichst viele Daten von dem Datenträger zu lesen.<p></li>
|
|
<li>Dann werden die noch fehlenden Daten durch den Fehlerkorrektur-Kode rekonstruiert.</li>
|
|
</ol>
|
|
|
|
Die Ausbeute an noch lesbaren Daten (Schritt 1) hängt nicht nur von dem
|
|
verwendeten Laufwerk ab, sondern auch davon, auf welcher logischen Ebene
|
|
auf den Datenträger zugegriffen wird. Diese Seite erklärt die logischen Ebenen
|
|
und warum dvdisaster auf der Ebene von Abbildern arbeitet:<p>
|
|
|
|
<b>Logische Ebenen eines Datenträgers</b><p>
|
|
|
|
Optische Datenträger sind in <i>Daten-Sektoren</i> von jeweils 2048 Bytes aufgeteilt.
|
|
Liest man diese Sektoren nacheinander aus und speichert sie ab,
|
|
so erhält man ein <i>Abbild</i> des Datenträgers.<p>
|
|
|
|
Das Arbeiten mit einzelnen Sektoren ist aus Benutzersicht sehr unhandlich.
|
|
Deshalb werden Datenträger
|
|
mit einem <i>Dateisystem</i> versehen, das Daten-Sektoren zu <i>Dateien</i>
|
|
zusammenfaßt. Dies erfordert eine genaue Buchführung darüber, aus welchen
|
|
Daten-Sektoren die Dateien bestehen (sowie weitere Merkmale wie
|
|
Dateinamen und Zugriffsrechte). Für diese Buchführung
|
|
wird ein Teil der Daten-Sektoren reserviert und mit entsprechenden Datenstrukturen
|
|
gefüllt.<p>
|
|
|
|
Datenträger lassen sich somit in verschiedene <i>logische Ebenen</i> einteilen:
|
|
Betrachtet man den Inhalt eines Datenträgers als eine Folge von Daten-Sektoren,
|
|
so arbeitet man auf der <i>Abbild-Ebene</i>. Stellt man ihn sich hingegen als eine
|
|
Menge von Dateien vor, so befindet man sich auf der <i>Dateisystem-Ebene</i>.<p>
|
|
|
|
In Hinsicht auf die Daten-Rekonstruktion haben die beiden Ebenen unterschiedliche
|
|
Eigenschaften:<p>
|
|
|
|
|
|
<a name="file"> </a>
|
|
<b>Probleme beim Lesen auf Dateisystem-Ebene</b><p>
|
|
|
|
Beim Lesen auf Dateisystem-Ebene wird versucht, die auf einem
|
|
defekten Datenträger enthaltenen Dateien einzeln soweit wie möglich auszulesen.<p>
|
|
|
|
Dabei entsteht ein Problem, wenn Daten-Sektoren beschädigt sind,
|
|
die zur Buchführung im Dateisystem dienen. Dies kann bewirken, daß die Liste
|
|
aller Dateien auf dem Datenträger unvollständig ist. Oder die Zuordnung
|
|
von Daten-Sektoren zu Dateien ist nicht mehr vorhanden.
|
|
Dadurch gehen Dateien oder Teile davon verloren,
|
|
selbst wenn die zugehörigen Daten-Sektoren
|
|
noch technisch lesbar sind. Das ist schlecht, denn auch die noch lesbaren Anteile
|
|
von beschädigten Dateien sind für den Fehlerkorrektur-Kode wichtig.<p>
|
|
|
|
Ein besonders schlechter Fall entsteht, wenn die Fehlerkorrektur-Daten auch
|
|
in Dateien abgelegt sind. Dann werden die Fehlerkorrektur-Daten gebraucht,
|
|
um das zugehörige Dateisystem zu reparieren, aber aufgrund des defekten
|
|
Dateisystems ist kein Zugriff auf die Fehlerkorrektur-Daten möglich.
|
|
Das führt zum vollständigen Datenverlust und hat auch Konsequenzen für das
|
|
<a href="qa32.html#eccfile"> Aufheben von Fehlerkorrektur-Dateien</a> - dazu gleich mehr.
|
|
<p>
|
|
Das gleiche Problem entsteht auch, wenn man Dateien mit dem PAR2-Format
|
|
um Fehlerkorrektur-Daten ergänzt und dann alle diese Dateien auf
|
|
einem Datenträger abspeichert. Wenn jetzt die Buchführung des Dateisystems
|
|
beschädigt wird, kommt man an die Dateien und damit auch an die
|
|
Fehlerkorrektur-Daten nicht mehr heran.<p>
|
|
|
|
|
|
Mit einem Abbild-basierten Ansatz sieht die Situation hingegen besser aus:<p>
|
|
|
|
<a name="image"> </a>
|
|
<b>Vorteile beim Lesen auf Abbild-Ebene</b><p>
|
|
|
|
Beim Einlesen auf der Abbild-Ebene wird auf die Daten-Sektoren durch direkte Kommunikation
|
|
mit der Laufwerks-Hardware zugegriffen.<p>
|
|
|
|
Der Erfolg beim Einlesen von Daten-Sektoren hängt nur von den Lesefähigkeiten des
|
|
Laufwerks ab, nicht aber vom Zustand des Dateisystems. Lesefehler in einem Sektor
|
|
verhindern nicht den Zugriff auf andere Sektoren. Weil <i>alle</i> noch technisch
|
|
lesbaren Daten gerettet werden können, liefert das Verfahren die günstigste
|
|
Ausgangsbasis für die Fehlerkorrektur.<p>
|
|
|
|
Das Abbild enthält alle Daten-Sektoren des Datenträgers. Deshalb ist nach der
|
|
Wiederherstellung des Abbilds auch das darauf gespeicherte Dateisystem
|
|
wieder vollständig. Ein Schutz des Datenträgers auf der Abbild-Ebene ist damit
|
|
umfassender als eine Fehlerkorrektur auf der Datei-Ebene.<p>
|
|
|
|
dvdisaster arbeitet ausschließlich auf der Abbild-Ebene, um von diesen Vorteilen
|
|
zu profitieren. Mit dem <a href="qa33.html">RS02-Verfahren</a>
|
|
ist sogar ein Ablegen der Fehlerkorrektur-Daten auf dem selben Datenträger
|
|
möglich, weil das Auslesen der Fehlerkorrektur-Daten auf der Abbild-Ebene
|
|
nicht durch Fehler an anderen Stellen verhindert wird (beschädigte
|
|
Sektoren mit Fehlerkorrektur-Daten verringern natürlich die Leistung der
|
|
Fehlerkorrektur, machen sie aber nicht unmöglich).<p>
|
|
|
|
Das <a href="qa33.html">RS01-Verfahren</a> schützt Datenträger ebenfalls
|
|
auf der Abbild-Ebene, legt die Fehlerkorrektur-Informationen aber in Dateien ab.
|
|
Auf mögliche Fallgruben in diesem Zusammenhang weist der nächste Abschnitt hin.<p>
|
|
|
|
<a name="eccfile"> </a>
|
|
<b>Konsequenzen für das Aufbewahren von Fehlerkorrektur-Dateien</b><p>
|
|
|
|
Datenträger sind durch die mit dvdisaster erzeugten Fehlerkorrektur-Daten
|
|
auf Abbild-Ebene geschützt. Aber was ist mit den Fehlerkorrektur-Dateien selbst?<p>
|
|
|
|
Da Fehlerkorrektur-Dateien auf Dateisystem-Ebene gelesen werden, unterliegen sie
|
|
den entsprechenden Einschränkungen. Wenn der Datenträger mit den
|
|
Fehlerkorrektur-Dateien schadhaft wird, ist nicht mehr
|
|
sichergestellt, daß sich die Fehlerkorrektur-Dateien noch vollständig lesen
|
|
lassen.<p>
|
|
|
|
<table width="100%"><tr><td class="vsep"></td><td>
|
|
Deshalb ist es unverzichtbar, auch Fehlerkorrektur-Dateien auf der
|
|
Abbild-Ebene zu schützen: Die
|
|
<a href="qa37.html">Datenträger mit Fehlerkorrektur-Dateien</a>
|
|
müssen ebenfalls mit dvdisaster gesichert werden.
|
|
</td></tr></table><p>
|
|
|
|
|
|
Weil dies vorausgesetzt wird, enthalten RS01- Fehlerkorrektur-Dateien <i>keinen</i>
|
|
eigenen Schutz gegen Beschädigung! Dies würde auch nicht viel nutzen:
|
|
Natürlich könnten die Fehlerkorrektur-Dateien so aufgebaut werden,
|
|
daß sie auch im beschädigten Zustand
|
|
noch eine verminderte Fehlerkorrektur leisten<sup><a href="qa32.html#footnote1">*)</a></sup>.
|
|
Aber egal wie ausgeklügelt der innere Schutz-Mechanismus auch wäre,
|
|
es bliebe ein Schutz auf Dateisystem-Ebene mit den oben beschriebenen Nachteilen!<p>
|
|
|
|
Hinzu kommt, daß die dafür benötigte Rechenzeit und Redundanz besser
|
|
auf der Abbild-Ebene investiert sind: Die Reed-Solomon-Fehlerkorrektur profitiert davon,
|
|
wenn Fehlerkorrektur-Informationen über große Datenmengen verteilt werden.
|
|
Das Abbild als Ganzes läßt sich besser schützen als die einzelnen
|
|
Fehlerkorrektur-Dateien darin.
|
|
|
|
<pre> </pre>
|
|
<table width="50%"><tr><td><hr></td></tr></table>
|
|
|
|
<span class="fs">
|
|
<a name="footnote1"><sup>*)</sup></a> Mit dem neuen RS03-Kodierer
|
|
erzeugte Fehlerkorrektur-Dateien haben genau diese Eigenschaften,
|
|
d.h. sie sind robust gegen Beschädigungen soweit wie die
|
|
Fehlerkorrektur-Kapazität reicht. Dies ist möglich da mittlerweile
|
|
genügend Rechenleistung und schnelle Festplattenzugriffe zur Verfügung
|
|
stehen um die Dateien entsprechend aufzubauen. Zur Zeit der Entwicklung
|
|
von RS01 war dies noch nicht der Fall. Aber auch für RS03-Fehlerkorrektur-Dateien
|
|
gelten die oben erwähnten Nachteile des Lesens auf Dateisystem-Ebene!
|
|
</span>
|
|
|
|
<!-- do not change below -->
|
|
|
|
</td> <!-- end of page contents -->
|
|
|
|
</tr>
|
|
|
|
<!--
|
|
<tr valign="bottom">
|
|
<td style="background-color:#f0f0f0;">
|
|
<table cellpadding="10"><tr><td><a href="http://dvdisaster.net/legacy/de/index.html"><span class="fs"></span></a></td></tr></table>
|
|
</td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
-->
|
|
</table> <!-- end of main body table -->
|
|
|
|
|
|
<!-- Page footer -->
|
|
<table width="100%" cellpadding="0" border="0">
|
|
<tr><td colspan="2" style="width:100%; height:10px;"></td>
|
|
</tr>
|
|
<tr><td colspan="2" class="hsep"></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center">
|
|
<span class="fs">
|
|
<i> Copyright 2004-2012 Carsten Gnörlich.<br>
|
|
Die unveränderte Wiedergabe und Verteilung dieses gesamten Textes in beliebiger Form ist gestattet, sofern dieser Hinweis erhalten bleibt.
|
|
</i>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
<tr><td colspan="2" class="hsep"></td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|