Ntfs2btrfs-Technik zur In-Place-Konvertierung des NTFS-Dateisystems in das Open-Source-Btrfs
(github.com/maharmstone)Ntfs2btrfs
Ntfs2btrfs ist ein Werkzeug zur Konvertierung des NTFS-Dateisystems von Microsoft in das Open-Source-Dateisystem Btrfs. Es ist ähnlich zu btrfs-convert, das ext2 konvertiert. Nach der Konvertierung wird das ursprüngliche Abbild als image/ntfs.img gespeichert; wenn die Konvertierung beibehalten werden soll, kann diese Datei gelöscht werden, um Speicherplatz freizugeben. Es gilt als stabil, aber bei Problemen wird keine Haftung übernommen. Ebenfalls interessant sein könnte WinBtrfs, ein Btrfs-Dateisystemtreiber für Windows. Ein Dank geht an Eric Biggers, der die „WOF-compressed data“ von Windows 10 erfolgreich rückentwickelt hat; sein Code wird verwendet.
Verwendung
- Windows:
ntfs2btrfs.exe D:\in einer Administrator-Eingabeaufforderung ausführen- Funktioniert nicht auf dem Boot-Laufwerk oder auf Laufwerken mit einer aktiven Auslagerungsdatei
- Bei Verwendung von WinBtrfs muss das Read-only-Flag des
image-Subvolumes entfernt werden, damit es gelöscht werden kann
- Linux:
ntfs2btrfs /dev/sda1mit Root-Rechten ausführen
Installation
- Windows: Neueste Zip-Datei von der Releases-Seite herunterladen oder Scoop verwenden
- Linux:
- Arch
- Fedora (dank Conan-Kudo)
- Gentoo – verfügbar als
sys-fs/ntfs2btrfsim guru-Repository - Debian (dank alexmyczko)
- Ubuntu (dank alexmyczko)
- openSUSE (dank David Sterba)
- Für andere Distributionen oder Betriebssysteme ist eine manuelle Kompilierung erforderlich
Änderungsprotokoll
- 20240115
- Kompilierungsproblem mit GCC 14 behoben (
-Werror=incompatible-pointer-typesstandardmäßig aktiviert)
- Kompilierungsproblem mit GCC 14 behoben (
- 20230501
- Reihenfolgeproblem behoben, das von
btrfs checknicht diagnostiziert wurde - Problem behoben, bei dem Metadateneinträge mit falschem Level-Wert geschrieben wurden
- ADS mit zu langen Namen werden übersprungen
- Reihenfolgeproblem behoben, das von
- 20220812
- Option
--no-datasumhinzugefügt, um die Prüfsummenberechnung zu überspringen - LXSS-/WSL-Metadaten werden beibehalten
- Problem behoben, bei dem Laufwerksbuchstaben in Kleinbuchstaben nicht erkannt wurden
- Beschädigungsproblem behoben, wenn sich eine Datei im letzten Megabyte der Festplatte befand
- Option
- 20210923
- Unterstützung für (Btrfs-)Komprimierung hinzugefügt (zlib, lzo, zstd)
- Unterstützung für weitere Hash-Algorithmen hinzugefügt: xxhash, sha256, blake2
- Unterstützung für Rollback zu NTFS hinzugefügt
- Konvertierungsgeschwindigkeit bei Volumes mit vielen Inodes erhöht
- Bug behoben, wenn sich eine fragmentierte Datei an einer Superblock-Position befand
- Buffer Overflow beim Lesen von Sicherheitsdeskriptoren behoben
- Problem mit Dateisystembeschädigung behoben, das von
btrfs checknicht erkannt wurde
- 20210523
- Verarbeitung großer komprimierter Dateien verbessert
- 20210402 (nur Source-Code-Release)
- Kompilierungsproblem auf Nicht-amd64-Architekturen behoben
- 20210105
- Unterstützung für NTFS-Komprimierung hinzugefügt
- Unterstützung für „WOF-compressed data“ hinzugefügt
- Probleme durch Sparse Files behoben
- Weitere Bugfixes
- 20201108
- Fehlerbehandlung verbessert
- Bessere Meldungen hinzugefügt, wenn NTFS beschädigt oder nicht sauber ist
- Verarbeitung von Relocations verbessert
- 20200330
- Erstveröffentlichung
Kompilierung
- Windows: Quellverzeichnis in der neuesten MSVC-Version öffnen und
CMakeLists.txtper Rechtsklick kompilieren - Linux:
mkdir buildcd buildcmake ..make- libfmt muss installiert sein – sollte im Paketmanager verfügbar sein
- Für Komprimierungsunterstützung werden zlib, lzo und zstd benötigt – sollten im Paketmanager verfügbar sein. Zum Deaktivieren siehe die CMake-Optionen WITH_ZLIB, WITH_LZO, WITH_ZSTD
Was funktioniert
- Dateien
- Verzeichnisse
- Symbolische Links
- Andere Reparse Points
- Sicherheitsdeskriptoren
- Alternate Data Streams
- DOS-Attribute (versteckt, System usw.)
- Rollback auf das ursprüngliche NTFS-Abbild
- Beibehaltung von LXSS-Metadaten
Was nicht funktioniert
- Alte Extended Attributes von Windows (werden nicht verwendet)
- Große ADS (über 16 KB) (werden nicht verwendet)
- Beibehaltung des Case-Sensitive-Flags
- Ungewöhnliche Cluster-Größen (nicht 4 KB)
- Verschlüsselte Dateien
Kann Windows von Btrfs booten?
- Ja, aber nur unter bestimmten Bedingungen. Siehe Quibble.
1 Kommentare
Hacker-News-Kommentare
Das ist ein extrem hohes Maß an "hold my beer"
Als ich es früher ausprobiert habe, wurde die Festplatte schreibgeschützt
Sehr cool, aber es wird mindestens eine Woche dauern, bis die Leute davon erfahren
Ich überlege, wie man das auf ZFS anwenden könnte
Ich wäre sehr überrascht, wenn Dateien mit LZX-Komprimierung unterstützt würden
compact.exe /C /EXE:LZX (Dateiname)aktiviert werden mussNTFS ist stabil, schneller als btrfs und hat die gleichen Funktionen