![Wie geht der Linux-Kernel mit dem Windows NTFS-Dateisystem um?](https://rvso.com/image/36021/Wie%20geht%20der%20Linux-Kernel%20mit%20dem%20Windows%20NTFS-Dateisystem%20um%3F.png)
Ich lese einen Text (RW Smith LPIC_1 Studienhandbuch), in dem es heißt:
Linux kann NTFS zuverlässig lesen und vorhandene Dateien überschreiben, aber der Linux-Kernel kann keine neuen Dateien auf eine NTFS-Partition schreiben.
Was bedeutet es, dass der „Kernel“ keine neuen Dateien auf eine NFTS-Partition schreiben kann?
An anderer Stelle heißt es:
NTFS-3G ist ein NTFS-Treiber mit Lese-/Schreibzugriff, der im Benutzerbereich und nicht im Kernelbereich liegt. Er wird von einigen Linux-Distributionen als Standard-NTFS-Treiber verwendet.
Wie unterscheidet sich der Kernelspeicher vom Benutzerspeicher?
Und warum können wir den Typ des Windows-Dateisystems nicht mit Befehlen wie sehen, wenn wir in Dual-Boot-Systemen Zugriff auf Windows-Laufwerke haben df -T
?
Antwort1
Dass es vor NTFS-3G keine richtige Lese-/Schreibunterstützung für NTFS gab. Anfangs war es auf einem Dual-Boot-System möglich, eine Datei auf eine NTFS-Partition zu schreiben, aber beim Neustart unter Windows NT/XP musste man eine Dateisystemprüfung durchführen, um die (Meta-)Daten auf der Festplatte zu korrigieren. Daher war es üblich, eine VFAT-Partition für den Datenaustausch zwischen Windows NT/XP und Linux zu haben, da der Treiber für diesen Dateisystemtyp diese Einschränkung/Probleme nicht hatte.
Seit der Einführung von NFTS-3G (2006) ist dies nicht mehr erforderlich und Sie können neue Dateien schreiben und vorhandene aktualisieren, unter Windows neu starten und diese Dateien verwenden, ohne eine Dateisystemprüfung durchzuführen. (Zu diesem Zeitpunkt hatte ich weitgehend auf Neustarts verzichtet und verwendete stattdessen Windows in virtuellen Maschinen.)
NTFS-3G läuft im Benutzerbereich, das heißt, es hat keinen direkten Zugriff auf Kerneldaten und -routinen, sondern muss wie jedes normale Programm (und im Gegensatz zu einem (Gerätetreiber) im Kernelbereich Systemaufrufe durchlaufen.
Was betrifft df -T
, scheint dies mit Fuse zu funktionieren und identifiziert (korrekt) den Dateisystemtyp als fuseblk
. Fuse weiß nichts über NTFS, bietet also keine tiefere Untersuchung. Auch df -T
die Festplatte wird nicht untersucht, es fragt nur den Dateisystemtreiber, welchen Typ er verarbeitet (wenn es das könnte, müssten Sie kein Dateisystem mounten, damit es in angezeigt wird df -T
, in diesem Fall könnte es einfach die Geräteblöcke direkt untersuchen und eine Vermutung anstellen).