WBFS

Aus Wiiki
Wechseln zu: Navigation, Suche

WBFS steht für Wii Backup File System und legt das Format eines Datei-Archivs fest, welches von USB-Loadern zum Laden von Wii-Spielen genutzt wird.



Geschichte

WBFS (Wii Backup File System) ist ein sehr einfaches Dateisystem, welches nur Wii-Images auf einer einzigen Verzeichnisebene speichern kann. WBFS wurde Anfang 2009 von Kwiirk und Waninkoko explizit für die Nutzung von USB-Loadern entwickelt und anfangs nur als Partition (ähnlich wie eine FAT, NTFS oder ext234-Partition) eingesetzt. Die Entwickler stellten die Zugriffs- und Verwaltungs-Funktionen als C-Quelltext-Bibliothek LIBWBFS unter der GPL2-Lizenz zur Verfügung, so dass Dritte aufbauend auf diese Bibliothek sehr schnell eigene USB-Loader und WBFS-Manager entwickeln konnten. Die WBFS-Manager werden benötigt, weil kein Betriebssystem mit WBFS-Partitionen umgehen kann.

Als Wiimm dann Ende 2009 mit der Entwicklung seines WBFS-Manager wwt (Aufgegangen in Wiimms ISO Tools) für Linux begann, veränderte er zu Testzwecken die LIBWBFS minimal, so dass auch WBFS-Dateien auf anderen Dateisystemen verwaltet werden konnten. Es war dann Oggzee, der Entwickler des CFG Loaders, der Monate später diese Art von WBFS-Dateien für seinen USB-Loader entdeckte. Dabei übernahm er dann Wiimms Namensgebung »TITEL [ID6].wbfs« und führte das Splitten von WBFS-Dateien ein, die größer als 4 GiB sind. Mittlerweile können alle aktuellen USB-Loader und WBFS-Manager mit WBFS-Dateien umgehen.

Bei der Entwicklung seiner Tools und einem konsequenten Code-Review der LIBWBFS entdeckte Wiimm rund ein Dutzend Programmierfehler in der LIBWBFS, 3 davon waren so gravierend, dass sie das gesamte WBFS-Archiv unbrauchbar machen konnten. Die Fehler-Korrekturen wurden auf GBAtemp[1] veröffentlicht und diskutiert. Da diese Fehler bis Mitte 2010 entdeckt wurden, ist davon auszugehen, dass alle Loader und Tools, die älter sind, definitiv fehlerhaft mit WBFS umgehen und Inhalte zerstören können. Der beliebte WBFS Manager 3.0, der im April 2009 veröffentlicht wurde, gehört zu dieser Kategorie, so dass von dessen Benutzung abzuraten ist.

Technisches

Eine WBFS-Partition oder -Datei wird in Blöcke aufgeteilt. Ein WBFS-Block ist mindestens 2 MiB groß. Da maximal 65535 Blöcke verwaltet werden können, werden z.B. Blöckgrößen von 8 MiB für 500 GiB-Platten und 16 MiB für 1 TiB-Platten genutzt.

Der allererste WBFS-Block wird zur Verwaltung (Inhaltsverzeichnis, Block-Belegungs-Tabellen und mehr) genutzt. Der allererste Disk-Block, der üblicherweise 512 Bytes groß ist, enthält einen 12 Byte großen Bereich mit WBFS-Kennung und den Geometrie-Daten. Die restlichen 500 Bytes enthalten eine Liste, welche Slots von einem Spiel belegt sind. Daher kann ein WBFS-Archiv unabhängig von der Gesamtgröße maximal 500 Images aufnehmen.

Dieses 500-Image-Begrenzung ist allerdings nur die halbe Wahrheit. In dem 12 Byte großen WBFS-Header steckt nämlich die Information, wie groß ein Disk-Block ist; es ist also nur ein logischer Wert, der nur eine 2-er Potenz und ≥512 sein muss. Die LIBWBFS kann auch mit anderen Größen umgehen, so dass man wesentlich mehr Images verwalten könnte. Wiimms ISO Tools und der Wii Backup Manager beherrschen diese alternativen Formate, allerdings werden sie nicht von den USB-Loadern unterstützt. Dieses ist auch gar nicht notwendig, weil erstens kein ehrlicher Nutzer 500 Wii-Spiele besitzen wird und zweitens diese Grenze durch Verwendung von FAT/NTFS oder von mehreren WBFS-Partitionen umgangen werden kann.

Dateistruktur

Die Dateistruktur ist einfach nur eine Liste. Jedes Images belegt je nach Gesamtanzahl der WBFS-Sektoren zwischen ca. 1 bis 3 KB im Header. Die Suche eines Spieles findet über die ID6 statt, die eindeutig sein muss.

Dadurch, dass sich alle Verwaltungsdaten inklusive Mapping im ersten WBFS-Block und damit in den ersten 2 bis 16 MiB befinden, kann der Header komplett in den Hauptspeicher geladen werden. Dieses erlaubt das Verwalten, Suchen oder Reparieren in nur Bruchteilen einer Sekunde. Die Verwaltungsdaten können nach Hinzufügen oder Entfernen in einem Rutsch geschrieben werden, so dass auch hier die Fehleranfälligkeit minimiert ist. Dieses alles sieht bei großen vielseitigen Dateisystemen wie FAT, NTFS oder ext234 ganz anders aus; hier ist der Verwaltungsaufwand viel komplexer und es werden viele Einzelzugriffe auf die Platte benötigt. Dieses macht sich dann auch in der Zugriffsgeschwindigkeit bemerkbar.

Fragmentierung

Fragmentierung gibt es bei WBFS-Partitionen nicht!

Das ist erst einmal eine mutige Aussage. Man sollte aber beachten, dass eine FAT- oder NTFS-Datei als nicht fragmentiert gilt, wenn die durchschnittliche Fragmentgröße im Megabyte-Bereich liegt. Defragmentier-Tools fassen solche Dateien meist erst gar nicht an.

Diese Fragmentgröße im Megabyte-Bereich ist WBFS aber durch die sehr großen WBFS-Blöcke von mindestens 2 MiB garantiert. Selbst bei einem 4 GB Spiel, welches sehr selten vorkommende 10 Fragmente hat, ist jedes Fragment im Durchschnitt 400 MB groß, also ein mehr als hundertfaches vom dem, was noch als fragmentiert zählt.

Und ohne Fragmentierung benötigt man auch kein Defragmentier-Tool. Dieses ist ein klarer Vorteil von WBFS-Partitionen gegenüber FAT/NTFS-Lösungen.

Bei FAT und NTFS sollte man übrigens darauf achten, dass die WBFS-Dateien defragmentiert sind. Dem cIOS wird nämlich eine Mapping-Liste mit maximal 20.000 Elementen übergeben. Besitzt eine Datei mehr als diese 20 Tausend Fragmente, dann kann sie als Spiel nicht ordnungsgemäß geladen werden. So müssen z.B. bei einer 8GB Double-Layer-Disc die Fragmente im Durchschnitt größer als 400 KiB sein, was schon nahe an der ist-nicht-defragmentiert-Grenze liegt. Gerade bei vollen (>75%) oder lange nicht mehr defragmentierten Platten kann diese Maximalzahl leicht überschritten werden. Dieses kann sich dann gerade bei großen Spielen wie SSBB oder Metroid Triologie bemerkbar machen. Das wit Kommando FRAGMENTS[2] zeigt übrigens die Anzahl der Fragmente u.a. von WBFS-Dateien an und berücksichtigt dabei sowohl die Fragmentierung der Datei als auch die innere Fragmentierung des ISO-Abbildes.

Verwendung als Datei

Obwohl eine WBFS-Datei dieselbe Struktur hat, wie eine WBFS-Partition, und daher viele Images aufnehmen kann, wird üblicherweise nur ein Wii-Image pro WBFS-Datei gespeichert. Damit ist eine WBFS-Datei eine Alternative zu den Dateiformaten ISO, CISO, WDF, WIA und GCZ, wobei nur WBFS durchgängig von den aktuellen USB-Loadern unterstützt wird.

Sollte eine WBFS-Datei größer sein, als das gastgebende Dateisystem erlaubt, dann wird die logische WBFS physikalisch in bis zu 10 Teilen aufgeteilt. Dabei sind 2 Regeln zu beachten:

  • Die Größe einer jeden Einzeldatei ist das Vielfache von 32 KiB (0x8000 bytes).
  • Das letzte Zeichens des Dateinamens (wegen »*.wbfs« ist es immer ein »s«) wird bei den Fortsetzungsdateien fortlaufend durch die Ziffern »1« bis »9« ersetzt. So erhält man z.B. die Dateinamen »a.wbfs«, »a.wbf1« und »a.wbf2« für eine dreifach geteilte Datei.

Beim Öffnen einer WBFS-Datei erkennt ein geeignetes Tool, dass die erste Datei zu klein ist und sucht dann automatisch nach den Fortsetzungsdateien.

WBFS oder FAT/NTFS

Was ist nun besser: Eine WBFS-Partition oder eine FAT/NTFS-Partition mit WBFS-Dateien?

Mit den modernen Tools läuft eine WBFS-Partition sehr stabil. Einige Tools wie z.B. Wiimms ISO Tools, führen bei jeder Verwendung einen vollständigen Check des Dateisystems unbemerkt vom Benutzer im Bruchteil einer Sekunde durch, so dass Inkonsistenzen immer erkannt und meistens auch repariert werden können.

Da aber immer ein WBFS-Manager benötigt wird, ist für den durchschnittlichen Benutzer klar ein FAT- oder NTFS-Dateisystem mit WBFS-Dateien zu empfehlen. Ein weiterer Vorteil dieser Lösung liegt darin, dass die Partition auch für andere Dinge verwendet werden kann.

Nur für den Profi, der den Umgang mit einem WBFS-Manager nicht scheut und optimale Performance mit nicht vorhandener Fragmentierung haben möchte, für den empfiehlt sich eine WBFS-Partition für die Wii-Spiele und evtl. eine zusätzliche FAT/NTFS-Partition für andere Dinge.

Die WBFS-Unterstützung wird wahrscheinlich niemals eingestellt werden, weil die WBFS-Dateien auf einem FAT/NTFS-System identisch wie eine WBFS-Partition behandelt werden müssen.

Zusammenfassung in wenigen Worten

  • WBFS-Partitionen sind umständlicher als FAT/NTFS zu handhaben.
    • Eine FAT/NTFS-Partition kann auch für andere Dinge als Wii-Images verwendet werden.
    • Für den Anfänger und den Durchschnittsbenutzer sind FAT/NTFS-Lösungen klar zu empfehlen.
  • WBFS-Partitionen haben gegenüber FAT/NTFS-Lösungen technische Vorteile.
    • WBFS-Partitionen sind niemals fragmentiert.
    • WBFS-Partitionen sind viel seltener defekt, wenn man moderne Tools einsetzt.
    • Der Zugriff auf WBFS-Partitionen ist schneller.
  • Für WBFS sollten ausschließlich aktuelle WBFS-Manager eingesetzt werden.
    • Der Klassiker »WBFS Manager 3.0« sollte auf keinen Fall verwendet werden.
  • Sowohl WBFS-Partitionen als auch FAT/NTFS-Lösungen haben ihre Daseinsberechtigung.

Tipps und Tricks

Immer, wenn eine WBFS-Platte an Windows angeschlossen wird, erscheint eine Aufforderung zur Formatierung. Kann man das abschalten?
Ja. Dazu müssen die folgenden Schritte ausgeführt werden:
  • Die USB-Platte anschließen und die Formatieraufforderung verneinen.
  • Computerverwaltung starten.
  • Datenträgerverwaltung starten.
  • Die WBFS-Partition mit rechts anklicken und dann Laufwerksbuchstabe und -pfade ändern... auswählen.
  • Den Laufwerksbuchstaben anklicken und entfernen.

Fußnoten

  1. GBAtemp.net
  2. Wiimms ISO Tools, Kommando wit fragments