Skip to content
NTFS2exFAT

So funktioniert NTFS2exFAT

Fünf Phasen, und keine davon wird übersprungen. Diese Seite erklärt, was bei jedem Schritt mit Ihren Daten geschieht und welche Prüfungen zwischen Ihnen und einem Fehler stehen.

Die fünf Phasen

1. Laufwerk prüfen (nur lesend)

Die App scannt das Laufwerk, ohne etwas zu verändern. Sie zählt Dateien und Ordner, markiert Namen, die exFAT nicht erlaubt, überspringt Systemordner wie System Volume Information und $RECYCLE.BIN und vergleicht den vom Laufwerk gemeldeten belegten Speicher mit den Dateien, die macOS tatsächlich sehen kann. Eine große Lücke ist ein Warnzeichen, dass manche Daten für macOS unsichtbar sein könnten.

  • Auf das Laufwerk wird nichts geschrieben
  • Nicht lesbare Objekte werden aufgelistet, nicht stillschweigend übersprungen
  • Sie sehen, wie viel Speicherplatz für die Sicherung nötig ist

2. Mit Prüfsummen sichern

Die Dateien werden in einen von Ihnen gewählten Ordner kopiert. Während jede Datei kopiert wird, wird ihre SHA-256-Prüfsumme berechnet. Der Fortschritt wird in einem nur anfügbaren Manifest gespeichert, sodass Sie pausieren, beenden und fortsetzen können.

  • Die Sicherung darf nicht auf dem Laufwerk liegen, das gelöscht wird
  • Sicherungspfade vermeiden Kollisionen auf Volumes ohne Groß-/Kleinschreibung
  • Dateien werden unter einem temporären Namen geschrieben und erst nach Abschluss umbenannt

3. Sicherung prüfen

Jede Sicherungsdatei wird am Cache vorbei von der Festplatte zurückgelesen, und ihre Prüfsumme wird mit der des Originals verglichen. Ein einziges gekipptes Byte lässt die Prüfung scheitern.

  • Gelesen wird von der Festplatte, nicht aus dem Speicher
  • Jeder Fehler stoppt den Vorgang vor dem Formatieren

4. Geschütztes Löschen

Der Formatierschritt ist nur verfügbar, wenn alles Folgende zutrifft: Die Sicherung ist vollständig geprüft, die Sicherungsdateien existieren noch mit den richtigen Größen, das Laufwerk hat noch dieselbe Volume- und Datenträgeridentität und Größe, die Sicherung liegt nicht auf diesem Laufwerk, und Sie haben den genauen Laufwerksnamen eingegeben. Die App hält fest, dass sie gleich löschen wird, bevor sie das Laufwerk anfasst, damit eine Unterbrechung später erkannt werden kann.

  • Es werden nur externe Laufwerke angeboten
  • Der Formatierbefehl zielt auf genau das Volume, das gesichert wurde
  • Wenn das Formatieren eine Berechtigung braucht, fragt macOS Sie

5. Zurückkopieren und prüfen

Alles wird auf das neue exFAT-Volume kopiert und erneut gelesen, um die Prüfsummen zu vergleichen. Namen, die exFAT nicht erlaubt, werden umbenannt und aufgelistet. Ein abschließender Bericht wird neben der Sicherung gespeichert.

  • Eine beschädigte Sicherungsdatei wird nie auf das neue Laufwerk kopiert
  • Die Sicherung bleibt erhalten, bis Sie sie löschen

Was „geprüft“ hier bedeutet

Eine Datei gilt als geprüft, wenn ihr Inhalt, nach dem Schreiben vom Laufwerk zurückgelesen, dieselbe SHA-256-Prüfsumme ergibt wie das Original. Die App verlässt sich nicht allein auf Dateigröße oder Datum. Die einzige Ausnahme sind macOS-Metadatendateien mit dem Namen ._*: Nach dem Kopieren auf exFAT bindet macOS sie in erweiterte Attribute ein, sodass sie nur als geschrieben bestätigt, aber nicht erneut gelesen werden können.

Dateinamen und Metadaten

exFAT erlaubt die Zeichen " * : < > ? \ | nicht, ebenso keine Steuerzeichen und keine Namen, die mit Leerzeichen oder Punkt enden. Solche Namen werden ersetzt und im Bericht aufgelistet. Namen, die sich nur durch Groß- und Kleinschreibung unterscheiden, werden eindeutig gemacht. Änderungsdaten von Dateien und Ordnern bleiben erhalten.

Die ehrliche Grenze

Der in macOS eingebaute NTFS-Leser kann Dateien verbergen oder umbenennen, deren Namen Windows nicht erlaubt. NTFS2exFAT arbeitet mit dem, was macOS ihm zeigt. Es warnt, wenn der belegte Speicher des Laufwerks deutlich größer ist als die sichtbaren Dateien, kann aber keine einzelne versteckte Datei erkennen. Wurde Ihr Laufwerk von einem NTFS-Treiber unter Mac oder Linux beschrieben, prüfen Sie es vor der Konvertierung unter Windows oder mit einem auf ntfs-3g basierenden Treiber wie NTFSTool.

Unter der Haube

Die Konvertierungs-Engine ist eine kleine Swift-Bibliothek ohne Abhängigkeiten außer Foundation und CryptoKit. Sie wird von der Mac-App und vom Kommandozeilenwerkzeug gemeinsam genutzt.

  • Manifest: eine JSON-Zeile pro Datei mit Pfad, Größe, Prüfsumme und Status
  • Kopieren: 4-MiB-Puffer, ungecachte Lese- und Schreibvorgänge, fsync, atomares Umbenennen
  • Parallelität: mehrere Dateien gleichzeitig, pro Worker jeweils eine große Datei
  • Die Sicherheitsprüfungen liegen in der Engine, sodass App und Kommandozeile dieselben Regeln durchsetzen

Wie getestet wurde

Die Engine hat Unit-Tests (darunter einen Test, der in einer geprüften Sicherung ein Byte kippt und erwartet, dass die Prüfung fehlschlägt) sowie Ende-zu-Ende-Tests, die ein echtes NTFS-Datenträgerabbild bauen, die komplette Konvertierung ausführen und jede wiederhergestellte Datei per SHA-256 vergleichen. Tests auf physischen externen Laufwerken laufen noch, und das ist einer der Gründe, warum dies eine Beta ist.

Lieber die Kommandozeile?

Dieselbe Engine gibt es als ntfs2exfat-cli.

ntfs2exfat-cli list
ntfs2exfat-cli start disk4 ~/Backups
ntfs2exfat-cli backup ~/Backups/NTFS2exFAT-<job>
ntfs2exfat-cli erase ~/Backups/NTFS2exFAT-<job> --confirm "MY DRIVE"
ntfs2exfat-cli restore ~/Backups/NTFS2exFAT-<job>

Quellcode auf GitHub →

Bereit, Ihr Laufwerk umzustellen?