# WinBtrfs

WinBtrfs ist ein von Grund auf neu geschriebener freier Dateisystem-Treiber für Windows, der die Verwendung des Btrfs-Dateisystems auf Microsoft Windows-Betriebssystemen und ReactOS ermöglicht. Da der Treiber von Grund auf neu geschrieben wurde, enthält dieser keinen Code des Linux-Kernels.

## Funktion

WinBtrfs ist in der Lage, das Btrfs-Dateisystem in Windows zu integrieren, indem es einen Treiber installiert, der das Btrfs-Dateisystem erkennt und die notwendigen Funktionen zur Verfügung stellt. Dies funktioniert sowohl auf 32- als auch auf 64-Bit-Versionen von Windows.

## Einbindung in Betriebssysteme

WinBtrfs ist seit ReactOS 0.4.1 Bestandteil des freien Windows-Nachbaus. Mit ReactOS 0.4.10 wurde auch der Start des Systems von einer Btrfs-Partition möglich. Zudem werden virtuelle Festplatten (oder im Besonderen das VHD-Format) unterstützt.
Seit WinBtrfs 1.6 ist es in Verbindung mit dem ebenfalls freien Windows-Bootloader Quibble möglich, Windows von einem Btrfs-Volumen zu starten. Jedoch ist eine Installation auf einem Btrfs-Volumen nur durch eine nachträgliche Umwandlung des Dateisystems möglich, da der Treiber erst nach der Windows-Installation installiert werden kann.

## Versionsgeschichte

| Version | Veröffentlichung | Beschreibung/Änderungen |
| 0.1 | 21. Feb. 2016 | Erste Testversion unterstützt schon das Lesen und Schreiben. |
| 0.2 | 13. März 2016 | Bug fix release (verschiedene Fehlerbehebungen). |
| 0.3 | 25. März 2016 | Bug fix release (verschiedene Fehlerbehebungen). |
| 0.4 | 2. Mai 2016 | Erstellen und Löschen von Subvolumes, Plug and Play, Cache für freien Speicherplatz; Behebung der Probleme bei Netzwerkfreigaben, Analysepunkten usw. |
| 0.5 | 24. Juli 2016 | Massive Stabilitätsverbesserungen und Erhöhung der Geschwindigkeit, RAID-Unterstützung (mit RAID0, RAID1 und RAID10), asynchrones Lesen und Schreiben, Sicherheitsverbesserungen usw. |
| 0.6 | 21. Aug. 2016 | Komprimierungsunterstützung (mit Zlib und LZO), bessere Unterstützung für entfernbare Geräte, weitere Einbindungsoptionen usw. |
| 0.7 | 24. Okt. 2016 | Seeding-Unterstützung, Unterstützung für RAID 5 und 6, Unterstützung für erweiterte Windows-Attribute, Wiederherstellung nach RAID-Prüfsummenfehlern, bessere Snapshot-Unterstützung usw. |
| 0.8 | 30. Dez. 2016 | Plug-&-Play-Unterstützung für RAID-Geräte, Datenträgerverwendung wird Prozessen im Taskmanager korrekt zugewiesen, Erstellung neuer Dateisysteme über mkbtrfs.exe, Volume-Eigenschafts-Tab usw. |
| 0.9 | 5. März 2017 | Bessere Handhabung von Volumes mit mehreren Geräten, täuscht kein NTFS-Volume mehr vor, Dateisysteme können mit dem Befehl format(.com) von Windows erstellt werden, Zlib aktualisiert usw. |
| 0.10 | 2. Mai 2017 | Unterstützung für das Lesen komprimierter Inline-Bereiche hinzugefügt, verschiedene Problembehebungen |
| 1.0 | 4. Sep. 2017 | Erste Version ohne Betastatus. Neuer Cache für freien Speicherplatz, Erweiterung und Verkleinerung von Volumen, verbessertes Abgleichverhalten auf Dateisystemen mit wenig freiem Speicherplatz usw. |
| 1.0.1 | 15. Okt. 2017 | Binärdateien signiert; Fehlerbehebungen. |
| 1.0.2 | 19. Mai 2018 | Fehlerbehebungen. |
| 1.1 | 15. Dez. 2018 | Überarbeitete Shell-Erweiterung, Durchreichen von Linux-Metadaten an LXSS, Unterstützung für die Zstd-Kompression. |
| 1.2 | 5. Mai 2019 | Es wurde u. a. die Verarbeitungsgeschwindigkeit erheblich erhöht, wenn viele kleine Dateien (beispielsweise mit einem Git-Repository) geöffnet werden. |
| 1.3 | 10. Juni 2019 | U. a. Unterstützung für neues Umbenennen und Löschen auf Windows 10. |
| 1.4 | 31. Aug. 2019 | U. a. Anzeige des Fragmentierungsprozentsatzes auf der Eigenschaftsseite, Unterstützung für Windows Server 2003 und Vista. |
| 1.5 | 11. Nov. 2019 | Unterstützung für Windows XP, Probleme beim Booten von Btrfs-Partitionen behoben und Unterstützung für die Umbenennung alternativer Datenströme. |
| 1.6 | 4. Feb. 2020 | ARM-Unterstützung (Experimentell), Korrekturen für das Booten von Windows 10 von Btrfs-Volumen, Fehler beim Einhängen von Dateisystems das unter Linux nicht sauber ausgehängt wurde behoben. |
| 1.7 | 26. Feb. 2020 | Kompressions- und Dekompressionsgeschwindigkeit stark verbessert, Unterstützung für Drei- und Vier-Festplatten-RAID1 und neue Prüfsummentypen (xxhash, sha256, blake2 hinzugefügt). |
| 1.7.1 | 2. März 2020 | Fehlerbehebungen. |
| 1.7.2 | 10. Apr. 2020 | Weitere Korrekturen für das Booten von Windows 10 von Btrfs-Volumen und weitere Fehlerbehebungen. |
| 1.7.3 | 24. Mai 2020 | Verbesserte Abwicklung auf sehr vollen Volumen, verbesserte Abwicklung des free space tree, Fehlerbehebungen. |
| 1.7.4 | 23. Aug. 2020 | Buildsystem zu cmake geändert, zstd-Upgrade, Fehlerbehebungen, Unterstützung für FSCTL_GET_RETRIEVAL_POINTERS. |
| 1.7.5 | 31. Okt. 2020 | U. a. erste Unterstützung für MinGW 8 |
| 1.7.6 | 14. Jan. 2021 | Windows muss nach der Erstinstallation nicht mehr neu gestartet werden, Dateiname wurde auf maximal 255 UTF-8-Zeichen beschränkt, Bugfixes. |
| 1.7.7 | 12. Apr. 2021 | Geschwindigkeit bei der Verzeichnissuche erhöht, mehrere Probleme behoben. |
| 1.7.8 | 9. Juni 2021 | Aktualisierung von zstd auf Version 1.5.0, Fehlerbehebungen, u. a. einen Fehler der verhindert hat, dass der Treiber unter Windows XP funktioniert hat. |
| 1.7.8.1 | 13. Juni 2021 | Fehlerbehebungen |
| 1.7.9 | 2. Okt. 2021 | Unterstützung für BitLocker-verschlüsselte Datenträger hinzugefügt, Fehlerbehebungen. |
| 1.8 | 12. März 2022 | Minimale Unterstützung für fs-verity hinzugefügt, Fehlerbehebungen |
| 1.8.1 | 23. Aug. 2022 | Fehlerbehebungen |
| 1.8.2 | 10. Jan. 2023 | Fehlerbehebungen, Dateien werden mit SHA256-Hash statt SHA1 signiert |

## Rezeption

Über WinBtrfs wird in vielen Fachmedien, wie zum Beispiel Admin-Magazin oder iX Magazin, berichtet.