Dateigröße unter NTFS und ext4 unterschiedlich

Mr. Brooks

Lt. Commander
Registriert
Aug. 2011
Beiträge
1.441
Hallo,

schon seit ich Linux nutze ist mir aufgefallen, dass die gleiche Datei unter NTFS und ext4 (oder anderen Dateisystemen) geringfügig unterschiedlich groß sind. Google spuckte dazu leider nichts aus, hier fanden sich nur Beiträge über die unterschiedliche Speicherausnutzung zwischen NTFS und ext4 (die 5% reservierte Blöcke).

Mr. Brooks
 
Und dann kommt's noch drauf an wo das Dateisystem die Metadaten ablegt und ob die mit in die Berechnung einfließen. Und ob die Kompression der Dateisysteme eingeschaltet ist.

Kannst es ja mal mit ner einfachen Textdatei testen. Da sollten dann dann bei 8 Zeichen (je nach Kodierung) 8 oder 16 Byte bei rauskommen.
 
So ganz unrecht hast du mit deinen Nachforschungen ja nicht, die 5% Speicherplatz werden unabhängig von der Größe der HDD 2/4/8 TB für den Root und das System reserviert, was natürlich bei größeren Datengrabs unsinnig ist : Klick
 
Bin gerade verwirrt. Hab mal eine Musikdatei von einer NTFS-Partition auf eine ext4 kopiert und beide verglichen: sind bis auf das letzte Byte gleich groß. Ich hatte das Problem bei meinem USB-Stick fürs Auto. Da wollte das FreeFileSync immer ALLES synchronisieren, da die Dateien auf der NTFS-Partition eine geringfügig andere Größe haben als auf der FAT32 des USB-Sticks. Mein Radio im Auto kann nur FAT32 lesen. Vielleicht nur ein Problem zwischen NTFS und FAT32?

Als ich aber meine Backup-Festplatten von NTFS auf ext4 umformatiert habe und zur Kontrolle ob alle Dateien verschoben wurde die Größe verglichen habe waren diese unterschiedlich groß (bei gleicher Anzahl der Dateien). Eine Stichprobenprüfung mit MD5-Prüfsummen ergab aber immer Übereinstimmung. Daher dachte es das Problem besteht auch zwischen NTFS und ext4.

@ Maex1

Das mit den 5% kann aber nicht erklären wieso die gleiche Datei unter NTFS eien andere Größe hat als unter FAT32. Das kann nur erklären wieso eine leere 1TB Partition unter ext4 weniger verfügbaren Speicher hat als unter NTFS.
 
ohne es zu wissen: könnte das evtl an der block/clustergröße liegen?
 
Genau das würde ich auch schätzen. Ist es tatsächlich die Dateigröße, oder der Platz den die Dateien auf dem Datenträger belegen?

Eine Datei belegt nämlich auf einem NTFS-Datenträger immer einen vollen Cluster. Bedeutet wenn die Clustergröße 4K ist, und die Datei nur 1K groß ist, werden trotzdem 4K Dateisystem belegt.
 
Mr. Brooks schrieb:
ist mir aufgefallen, dass die gleiche Datei unter NTFS und ext4 (oder anderen Dateisystemen) geringfügig unterschiedlich groß sind.
Das geht nicht. Wenn sind die Dateien gleich sind, sind sie per Definition auch gleich groß. Du musst dich entscheiden. :)

Auf welche Weise ermittelst du denn die angeblichen Dateigrößen? Darin scheint die Ursache für den angeblichen Unterschied zu liegen.
 
Speicherort im Dolphin aufrufen und über Eigenschaften die Größe der Dateien/Ordner prüfen. Der Vergleich erfolgte immer unter dem gleichen System.

Die unterschiedliche Größe zwischen NTFS und FAT32 wurde vom Tool FreeFileSync selbst ermittelt. Das könnte in der Tat an der Clustergröße liegen.

Kann man sich die Clustrgröße unter Linux irgendwie anzeigen lassen? Mit fdisk scheint das nicht zu gehen.
 
Zuletzt bearbeitet:
Mr. Brooks schrieb:
Speicherort im Dolphin aufrufen und über Eigenschaften die Größe der Dateien/Ordner prüfen.
OK. Wenn dieser Fisch für 2 Inkarnationen der gleichen Datei unterschiedliche Größen anzeigt, zeigt er nicht die Dateigröße an sondern irgendwas anderes. Vielleicht zeigt der Fisch den durch diese Dateien auf dem Datenträger belegten Speicher an. Dies ist was völlig anderes als die Dateigröße. Sowas wie "Ordnergröße" ist wieder was gaaaanz anderes. Kümmere dich bitte erstmal um einzelne Dateien, nicht um ganze Ordner.

Ermittle die Dateigrößen mal mit "ls -l Dateiname" (das nach dem Minus ist ein kleines L, kein großes I). Sind sie da identisch?

Mr. Brooks schrieb:
Die unterschiedliche Größe zwischen NTFS und FAT32 wurde vom Tool FreeFileSync selbst ermittelt. Das könnte in der Tat an der Clustergröße liegen.
Die "Clustergröße" hat keinen Einfluss auf die Dateigröße, sie kann aber Einfluß auf den von der Datei auf dem Datenträger belegten Speicher haben. Das sind - wie oben geschrieben - unterschiedliche Dinge.

Du kannst dir den Unterschied zwischen Dateigröße und von der Datei belegtem Speicher ganz einfach klarmachen: Stell dir eine Datei mit nur einem ASCII-Zeichen drin vor. Es sei ein X. Die Datei wäre i.d.R. 1 Byte lang. Wenn die Datei auf ext4 oder NTFS gespeichert werden soll, fallen neben dem einen Byte haufenweise andere zu speichernde Daten an: Der Dateiname, der Erstellungszeitpunkt, Infos zu Eigentümer und Zugriffsrechten usw. Im Filesystem wird durchs Speichern der 1 byte langen Datei also viel mehr als 1 Byte Platz benötigt. Das kann je nach Filesystem ganz unterschiedlich viel sein, z.B. 200 Bytes oder auch mal 16 Kilobytes oder 16 Kibibytes oder sonstwas. Trotzdem ist und bleibt die Datei selbst immer nur 1 Byte groß!

Nun gibt es Tools, die dir die Dateigröße ermitteln und anzeigen, also im Beispiel immer 1 Byte. Und es gibt andere Tools, die dir den von einer Datei plus den zusätzlichen Infos belegten Speicher anzeigen, der ganz unterschiedlich sien kann. Über den Unterschied der Werte sollte man sich im Klaren sein.
 
Zuletzt bearbeitet:
mensch183 schrieb:
Nein. Die "Clustergröße" hat keinen EInfluss auf die Dateigröße.

Aber auf die belegte Größe auf dem Datenträger. Mit stat kann man es unter Linux anzeigen lassen.

https://www.thomas-krenn.com/de/wiki/Dateistatus_mit_stat_unter_Linux_anzeigen

Es sei ein X. Die Datei wäre 1 Byte lang. Wenn die Datei auf ext4 oder NTFS gespeichert werden soll, fallen neben dem einen Byte haufenweise andere zu spoeichernde Daten an: Der Dateiname, der Erstellungszeitpunkt, Infos zu Eigentümer und Zugriffsrechten usw. Im Filesystem wird durchs Speichern der 1 byte langen Datei also viel mehr als 1 Byte Platz benötigt. Das kann je nach Filesystem ganz unterschielich viel sein, z.B. 200 Bytes oder auch mal 16 kByltes oder sonstwas. Trotzdem ist und bleibt die Datei selbst immer nur 1 Byte groß!

Die Erklärung passt nicht und ist falsch. All dies Daten sind Bestandteil des Filesystems. Und belegt natürlich auch Platz. Aber keinen, der Dir angezeigt wird.

Es gibt zwei relevante Größen. Die Dateigröße und die Größe, die die Datei auf dem Datenträger belegt. Die Dateigröße ist bei jedem Filesystem exakt die Größe der Datei. Ganz exakt. Und die auf dem Datenträger belegte Größe ist eben die, die die Datei auf dem Datenträger beansprucht. Und die ist einzig von der Clustergröße abhängig. Hat man zB eine 4KB Clustergröße, dann belegt eine 1KB Datei eben auch 4KB. Weil es keine kleineren Datenblöcke auf der HDD gibt. Das hat nicht mit Deinen genannten Attributen zu tun. Die sind Sache des Filesystems. Sicher belegt das auch Platz, aber den siehst Du erstmal nicht.
 
Zuletzt bearbeitet:
@BlubbsDE Ich habe - anders als der Threadersteller - immer genau dann Dateigröße geschrieben, wenn wirklich Dateigröße gemeint war, eben um die Sachen strikt zu trennen. Und dann kommst du wieder mit einem " ... aber die belegte Größe ..." was eben was ganz anders ist.

BlubbsDE schrieb:
Hat man zB eine 4KB Clustergröße, dann belegt eine 1KB Datei eben auch 4KB. Weil es keine kleineren Datenblöcke auf der HDD gibt.
Das gilt nur für einige Filesysteme, nicht aber z.B. für kleine Dateien auf ext4. Dort wird bei kleinen Dateien (z.B. meine 1 Byte große) gar kein "Cluster" (der dort nicht so heißt, aber das ist egal) verwendet sondern der Dateiinhalt mit im Inode gespeichert. Meine Erklärung im #9 ist deshalb allgemeiner gehalten, um für mehr Filesystemtypen richtig zu sein - wenigstens für die hier im Thread relevanten. Wir leben nicht mehr in MS-DOS-3.3-Zeiten. Es gibt Filesysteme, die noch deutlich weiter weg von deinem simplen Cluster-Modell sind. Auf viele davon passt mein Text noch immer, deiner schon für ext4 falsche, nicht.
 
Zuletzt bearbeitet:
Ich habe jetzt mal einige Versuche mit immer der gleichen Datei gemacht. Einmal unter NTFS, unter FAT32, und ext4 und unter exFAT (das vom Autoradio auch erkannt wird, wie ich heute gesehen habe). Dolphin zeigt mit für exFAT und FAT32 die gleiche Größe an. Unter NTFS und ext4 ist sie auch gleich, aber abweichend von FAT32/exFAT. Da ich die die exFAT-Partition mit

sudo mkfs -t exfat /dev/sdd1

erstellt und laut hier https://wiki.ubuntuusers.de/exFAT/#Beispiele sollte diese mit einer 4k-Clustergröße erstellt werden, genauso wie NTFS und ext4. 'stat' zeigt komische Werte an. Lasse ich mir die exFAT über /dev anzeigen sidn es 4k, rufe ich stat über den Mount-Point auf was ganz anderes (bei NTFS und ext4 macht es keinen Unterschied ob ich stat mit dem /dev oder dem Mountpoint füttere; hier sind es immer 4k)

Code:
stat -f /dev/sdf1
  Datei: "/dev/sdf1"                                                                                                 
    ID: 0        Namenslänge: 255     Typ: tmpfs                                                                     
Blockgröße: 4096       Fundamentale Blockgröße: 4096                                                                 
Blöcke: Gesamt: 500079     Frei: 500079     Verfügbar: 500079                                                        
Inodes: Gesamt: 500079     Frei: 499340                                                                              

stat -f /media/exfat
  Datei: "/media/ich/8E01-294C"                                                                                      
    ID: 0        Namenslänge: 256     Typ: fuseblk                                                                   
Blockgröße: 32768      Fundamentale Blockgröße: 32768                                                                
Blöcke: Gesamt: 489568     Frei: 424801     Verfügbar: 424801                                                        
Inodes: Gesamt: 489506     Frei: 424801

Die gleichen Ergebnisse bzgl. der angezeigten Dateigröße ergibt sich wenn ich die Dateigröße mit 'ls -l' anzeigen lasse. exFAT/FAT32 sowie NTFS/ext4 jeweils gleich.

@ mensch183

Wenn deine Erklärung mit den jeweils zusätzlichen zu speichernden Informationen zutreffen würde, wäre es sehr unwahrscheinlich, dass bei jeweils 2 Dateisystemen die Datei die gleiche Größe hätte. Ich denke hier trifft es eher zu, dass die Datei immer dann gleichgroß angezeigt wird, wenn sie auf einem Dateisystem mit gleicher Clustergröße gespeichert wird. Komisch nur, dass exFAT von FAT32 nicht abweicht.
Ergänzung ()

Mein Problem mit der Synchronisation mittels FreFileSync hab ich jetzt so gelöst, dass ich das exFAT-Dateisystem so erstellt habe:
Code:
sudo mkfs -t exfat -s 8 /dev/sdd1

Hier wird nochmal explizit angegeben, dass ein 4K-Dateisystem erstellt werden soll. Ein kurzer Test zeigte die gleiche Dateigröße wie unter NTFS an. Und mein Radio kommt auch mit dieser Clustergröße klar.
 
Zurück
Oben