WBFS-Wartung
Dieser Artikel befasst sich mit der Wartung und der Reparatur von WBFS-Partitionen.
Inhaltsverzeichnis
Überblick
- Dateiformate
- Tools
- Patcher
Eine WBFS-Partition ist ein logisches Laufwerk, welches als WBFS formatiert wurde. Da kein Betriebssystem (Windows, Linux, OS X,...) diese Art des Dateisystems kennt, stellen die Betriebssysteme auch keine Tools zur Wartung bereit. Unter Wartung versteht man u.a.:
- Formatierung
- Fast alle USB-Loader und WBFS-Manager können WBFS-Partitionen erstellen. Dabei wird der Inhalt einer Partition überschrieben und geht damit unwiderruflich verloren. Überschreibt ein WBFS-Tool nur den Header, dann besteht die Chance, Spiele wieder herzustellen.
- Disk-Check
- Ein Disk-Check wird von einigen Tools beherrscht. Die meisten überprüfen aber nur die Free-Blocks-Table, in der die freien Blocks markiert sind. Nur wenige Tools können auch Überlappungen feststellen.
- Wiederherstellung von gelöschten Dateien
- Die Wiederherstellung ist im Prinzip relativ einfach möglich. Jedoch sollten die wiederhergestellten Spiele noch verifiziert werden. (siehe nächsten Punkt).
- Verifizierung von Spielen
- Bei der Verifizierung werden die Prüfsummern, die sich auf jeder DVD befinden, mit berechneten Prüfsummern verglichen. So kann man die Unversehrtheit des eigentlichen Spieles bestimmen.
- Defragmentierung
- Spiele auf WBFS-Partitionen gelten aufgrund der Blöckgröße zwischen 2 und 16 MiB immer als defragmentiert. Daher ist auch kein Defragmentier-Tool notwendig (siehe »WBFS: Fragmentierung«).
Die folgenden Anleitungen basieren alle auf Wiimms ISO Tools, da sie die einzigen sind, die WBFS-Partitionen reparieren und gelöschte Spiele wiederherstellen können. Die Tools werden über die Kommandozeile[1] ausgeführt. Es existieren auch graphische Oberflächen[2] (GUI) für die Tools, mit denen sich einige der folgenden Kommandos ausführen lassen.
Analyse von Platten
Das Tool wwt aus Wiimms ISO Tools kennt das Kommando ANALYZE[3]. Dieses untersucht alle Festplatten auf WBFS-Partitionen. Dabei wird der WBFS-Header und auch Reste von Spielen gesucht. Daher hilft dieses Kommando auf der Suche nach funktionierenden und ehemaligen WBFS-Partitionen.
- Beispiel einer Ausgabe
# wwt analyse --long ANALYZE /dev/sda ANALYZE /dev/sda1 ANALYZE /dev/sdc ANALYZE /dev/sdc1 ANALYZE /dev/sdc2 ------------------------------------------------------------------------------------ HD SECTORS WBFS SECTORS DISCS (all values in hex) WBFS total sec total sec max inode NAME magic vrs num size num size num size ADDITIONAL INFORMATION ------------------------------------------------------------------------------------ HEADER: ok 1 2e93bb82 200 ba4e 800000 1f4 a00 WBFS header scanning INODE-TIM: ok 1 2e93bb82 200 ba4e 800000 1f4 a00 2013-06-24 16:01:33 n=500 INODE-CNT: ok 1 5d27770 1000 ba4e 800000 7fd 1000 2011-01-25 20:37:07 n=1733 DISCS: - 0 2e93bb82 200 ba4e 800000 1f4 a00 67 disc header found CALC 512: - 1 2e93bb82 200 ba4e 800000 1f4 a00 calculation of init function CALC 1024: - 1 1749ddc1 400 ba4e 800000 3f4 c00 " but sector-size=1024 CALC 2048: - 1 ba4eee0 800 ba4e 800000 7f4 1000 " but sector-size=2048 CALC 4096: - 1 5d27770 1000 ba4e 800000 7fd 1000 " but sector-size=4096 ------------------------------------------------------------------------------------
Einige Platten wurden entdeckt, und nur auf /dev/sdc2 (Linux Schreibweise von Platten) wurden WBFS-Daten gefunden. Es wurden 1 Header und 500 definierte WBFS-Inodes gefunden. Dazu wurden noch 1733 Fragmente gefunden und 67 echte Spielheader. Die CALC-Anzeigen werden nur wegen der Option --long ausgegeben und geben die maximalen Werte an, die man bei den 4 verschiedenen HD-Sektorgrößen erhalten würde.
Wichtig ist aber, dass /dev/sdc2 offensichtlich eine WBFS-Partition ist oder war und damit Objekt weiterer Reparatur-Versuche. Da sich die Gerätekennungen ändern, wenn man USB-Geräte aktiviert oder entfernt, sollte nach jeder Änderung das Kommando wwt ANALYZE aufgerufen werden, um mit der korrekten Partition weiterzuarbeiten. Anderenfalls besteht die Gefahr, dass eine falsche Partition bearbeitet. wird.
Formatierung mit Wiederherstellung
Der erste HD-Sektor mit üblicherweise 512 Bytes (vergleiche »WBFS: Technisches«) hat den folgenden Aufbau:
- Magic
- 4 Bytes mit den Zeichen "WBFS" zur Erkennung
- Geometrie
- 8 Bytes mit Angaben diverser Größen.
- Slot-Tabelle
- 500 Bytes, die festlegen, ob ein definierter Speicherplatz durch ein Spiel belegt ist.
Nach diesen ersten 512 Bytes folgt eine Liste mit bis zu 500 Element, den sogenannten Slots. Für eine Spiel werden in jedem dieser Slots eine Kopie der ersten 128 Bytes der DVD sowie Zeitstempel und eine Tabelle mit den zugewiesenen Blöcken abgelegt.
Bei der Formatierung einer Partition als WBFS werden üblicherweise 2 Verfahren verwendet. Die einfache Methode beschreibt einfach den oben genannten ersten HD-Sektor mit den neuen Daten und löscht die Slot-Tabelle. Da sich die Geometrie-Daten aus der Partitionsgröße berechnen, sind die Daten praktisch immer identisch, egal wie häufig die Partition formatiert wird. Bei einer versehentlichen Formatierung durch diese Art lassen sich die Spiele wieder rekonstruieren. Dazu werden dann sie Slots mit analysiert und u.a. mit den ersten 128 Bytes der Spielekopie verglichen. Mehr Details folgen im nächsten Abschnitt.
Bei der zweiten Methode wird nicht nur der erste HD_Sektor überschrieben, sondern sämtliche Verwaltungsdaten. Bei einer so formatierten Partition ist das Wiederherstellen von gelöschten Spielen nicht mehr möglich.
Eine Formatierung ist übrigens nur dann notwendig, wenn der WBFS-Header überschrieben wurde und die Partition nicht mehr als WBFS-Partition erkannt wird.
Standard-Formatierung
Das Kommando für das Formatieren[4] mit Wiimms ISO Tools lautet:
wwt format /dev/sd98
Die Bezeichnung /dev/sd98 muss durch die richtige Bezeichnung ersetzt werden. Da die Formatierung eine bereits bestehende Datenpartition (z.B. FAT oder NTFS) komplett zerstört, zeigt die obige Kommandozeile sicherheitshalber nur an, was sie tun würde. Erst durch das hinzufügen von ---force wird die Formatierung tatsächlich ausgeführt:
wwt format /dev/sd98 --force
Diesen Befehl sollte man aber erst ausführen, wenn man sich ganz sicher ist.
Formatierung mit Reparatur
Der Reparatur-Modus wird aktiviert, indem der Kommandozeile die Option --recover zugefügt wird. Auch hier wird der Befehl erst durch die Option --force tatsächlich ausgeführt:
wwt format /dev/sd98 --force --recover
Die Ausgabe könnte z.B. so aussehen:
ANALYZE BLOCK DEVICE /dev/sdc2 FORMAT BLOCK DEVICE /dev/sdc2 [373 GiB, hss=512, wss=8 MiB] * 4 discs recoverd - slot #000 [SMNP01] New Super Mario Bros. Wii - slot #001 [RTYP01] Wii Schach - slot #005 [R64P01] Wii Music - slot #009 [RHAP01] Wii Play * Scan 4 discs in 500 slots. * Check for disc block errors. * Check free blocks table. * Summary of WBFS check: no errors found. ** 1 file formatted.
Wird eine WBFS-Partition als solche erkannt und ist noch lesbar, dann ist es besser, keine Formatierung vorzunehmen, sondern nur zu reparieren.
Gelöschte Spiele wiederherstellen
Das Tool wwt aus Wiimms ISO Tools kennt das Kommando RECOVER[5], welches gelöschte Spiele wiederherstellt:
wwt recover --auto
Die Option --auto gibt an, dass das Kommando selbständig nach WBFS-Partitionen suchen soll und das Kommando auf alle gefundenen WBFS-Partitionen anwenden soll. Möchte nur Spiele einer bestimmtem WBFS-Partition wiederherstelln, dann muss dann muss man die Gerätedatei direkt angeben, z.B.:
wwt recover /dev/sdc2
Das Kommando sucht im Management-Bereich nach WBFS-Inodes mit akzeptablen Daten. Dann kontrolliert es die Block-Liste auf gültige Blöcke. Diese Blöcke dürfen auch nicht von anderen Spielen belegt sein. Die ersten 128 Bytes des ersten Blocks müssen als 1:1 Kopie im WBFS-Inode vorliegen. Danach werden noch ein paar Daten, die sich auf jeder Wii-DVD befinden, kontrolliert. Schlägt keiner dieser Tests fehl, dann wird das Spiele wiederhergestellt.
Ein derartig wiederhergestelltes Spiel muss aber nicht zwangsläufig spielfähig sein. Es kann durchaus sein, dass auch Datenblöcke überschrieben wurden und somit falsche Daten enthalten. Hier kann eine Verifizierung der Daten helfen (siehe nächsten Abschnitt).
Spiele überprüfen
Ein Großteil der Daten eines Wii-Images ist verschlüsselt, mit Prüfsummen abgesichert und signiert (Details: »Wii-Image: Verschlüsselung und Prüfsummen«). Die Prüfsummen selbst sind auf dem Image abgelegt. Berechnet man die Prüfsummen neu und vergleicht sie mit den gespeicherten Prüfsummen, so kann man Block für Block überprüfen, ob die Daten korrekt sind. Da jedes Spiel anders verschlüsselt ist, können auch keine Verwechslungen mit anderen Spielen geschehen.
GameCube-Spiele sind übrigens weder verschlüsselt noch signiert. Daher können die auch nicht auf diese Art und Weise verifiziert werden.
Das Tool wwt aus Wiimms ISO Tools kennt das Kommando VERIFY[6], welches genau den gerade beschriebenen Test macht:
wwt verify --auto
Die Option --auto gibt an, dass das Kommando selbständig nach WBFS-Partitionen suchen soll und das Kommando auf alle gefundenen WBFS-Partitionen anwenden soll. Möchte nur Spiele einer bestimmtem WBFS-Partition wiederherstellen, dann muss dann muss man die Gerätedatei direkt via Option -p angeben:
wwt verify -p /dev/sdc2
Beide Kommandos überprüfen die Spiele. Da jedes Spiel entschlüsselt und jede Prüfsumme berechnet und verglichen werden muss, benötigt der Vorgang sehr viel Zeit.
Es besteht auch die Möglichkeit, einzelne Spiele zu prüfen, indem man die ID6 auf der Kommandozeile angibt:
wwt verify --auto RMCP01 RUUP01
Möchte man, dass defekte Spiele automatisch gelöscht werden, dann ergänzt man die Option --remove:
wwt verify --auto --remove
WBFS-Dateien und andere Images können übrigens mit dem wit Kommando VERIFY[7] überprüft werden:
wit verify a.wbfs b.wdf c.iso
Fußnoten
- ↑ Wiimms ISO Tools: Command Line
- ↑ Wiimms ISO Tools: graphische Oberflächen (GUI)
- ↑ Wiimms ISO Tools: Kommando wwt ANALYZE
- ↑ Wiimms ISO Tools: Kommando wwt FORMAT
- ↑ Wiimms ISO Tools: Kommando wwt RECOVER
- ↑ Wiimms ISO Tools: Kommando wwt VERIFY
- ↑ Wiimms ISO Tools: Kommando wit VERIFY