Beim Übertragen vieler Dateien von einer Linux Redhat-Workstation auf eine FAT32
formatierte externe Festplatte ( WD 2 TB
formatiert mit dem Mac-Festplattendienstprogramm) trat bei mir die Fehlermeldung auf, dass auf meiner Festplatte nicht mehr genügend Speicherplatz vorhanden sei. Ich habe jedoch überprüft, ob noch ~700 GB
Speicherplatz frei ist, also gehe ich davon aus, dass mir aufgrund langer Dateinamen der Speicherplatz ausgegangen ist (nicht sicher?)? Wie kann ich das überprüfen?
Die Details zu meiner externen Festplatte lauten
/dev/sdc1 on /media/GUDDULINUX3 type vfat (rw,nosuid,nodev,relatime,uid=988,gid=2000,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,s
Derzeit gibt es etwa ~545
Verzeichnisse mit Dateien zwischen ~7000
und ~11000
in jedem Verzeichnis. Jede Datei ist eine Binärdatei der Größe (überprüft mit du -sh) ~32K
oder 96K
(jeweils ungefähr die Hälfte) und der Name ist etwa XC6_9k.131_132.12.2012.210.s3
( 29
Zeichen lang). Die Dateigröße sieht in Ordnung aus, da es sich um Binärdateien mit 8000
oder 24000
Gleitkommazahlen handeln soll.
Ist es möglich, dass etwas anderes nicht stimmt? Leider kann ich den genauen Speicherplatz, den die Verzeichnisse belegen, nicht überprüfen du -sh
. Der Versuch dauert ewig.
Bearbeiten 1- Ich habe das Festplattendienstprogramm von Mac verwendet, um die externe Festplatte zu überprüfen, und dort steht:
11361590 files, 1076797472 KiB free (33649921 clusters)
Bearbeiten 2-
Ich habe Angelos Vorschlägen gefolgt df -h
und es df -i
auf der externen Festplatte versucht, die an meinen Laptop (Mac) angeschlossen ist. Es sieht so aus, als ob ich keine freien Inodes mehr in habe /Volumes/GUDDULINUX3
. Irgendwelche Vorschläge, was ich tun kann – gewinne ich Inodes, wenn ich tar
die kleinen Dateien in einer tar
Datei für jedes Verzeichnis speichere? Sollte ich auf eine NTFS
formatierte Festplatte wechseln?
avinash$ df -h
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
/dev/disk0s2 233Gi 216Gi 17Gi 93% 56587186 4482254 93% /
devfs 187Ki 187Ki 0Bi 100% 646 0 100% /dev
map -hosts 0Bi 0Bi 0Bi 100% 0 0 100% /net
map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /home
/dev/disk1s1 1.8Ti 836Gi 1.0Ti 45% 0 0 100% /Volumes/GUDDULINUX3
avinash$ df -i
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s2 488555536 452185504 35858032 93% 56587186 4482254 93% /
devfs 373 373 0 100% 646 0 100% /dev
map -hosts 0 0 0 100% 0 0 100% /net
map auto_home 0 0 0 100% 0 0 100% /home
localhost:/rGEmV8JCfpffeQBEQFAlLe 488555536 488555536 0 100% 0 0 100% /Volumes/MobileBackups
/dev/disk1s1 3906009792 1752414720 2153595072 45% 0 0 100% /Volumes/GUDDULINUX3
Dies sind Ergebnisse mit der an meine Linux-Workstation angeschlossenen Festplatte; die Inode-Informationen werden nicht angezeigt.
seismo82% df -h /media/GUDDULINUX3/
Filesystem Size Used Avail Use% Mounted on
/dev/sdc1 1.9T 836G 1.1T 45% /media/GUDDULINUX3
seismo82% df -i /media/GUDDULINUX3/
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sdc1 0 0 0 - /media/GUDDULINUX3
Bearbeiten 3-
Es scheint, als inode
würde das mit nicht funktionieren FAT32
. Ich denke, das Problem ist, dass es eine Untergrenze für die FAT32
Anzahl der Dateien in einem Verzeichnis gibt, die niedriger ist als ~65k
abhängig vom Dateinamen. Zuerst habe ich viele bereits vorhandene Dateien auf der externen Festplatte getarnt, wodurch viel inodes
(oder FAT32
Ähnliches) freigegeben werden sollte. Aber trotzdem wurde beim Verschieben des großen Verzeichnisses (es enthält ~23k
Dateien) der Fehler „Kein Speicherplatz mehr auf dem Gerät“ angezeigt. Dann habe ich, anstatt einzelne Dateien zu verschieben, ein Tar des Verzeichnisses erstellt und es war möglich, es auf eine externe Festplatte zu verschieben!!! Beim Versuch, es auf der externen Festplatte zu enttarnen, wurde mir erneut der Fehler angezeigt. Ich denke also, dass ich an eine Beschränkung der Anzahl der Dateien im Verzeichnis gestoßen bin. Siehew3dk's Kommentar hierzu
Maximale Dateien pro Verzeichnis
Ich habe die Verzeichnisse geprüft, die beim Verschieben einen Fehler gemeldet haben. Das Limit scheint 100 16383
Dateien für Dateinamen mit 29
Zeichen und 21843
100 Dateien für Dateinamen mit 20
Zeichen zu sein. Theoretisch liegt das Limit bei ~65k
100 Dateien für Dateinamen mit Namen im 8.3
Format. Vielen Dank an alle, die mir bei der Diagnose des Problems geholfen haben. Im Moment werde ich einfach alles tarnen, was ich habe.
Antwort1
Zusätzlich zu den Partitionsgrößenbeschränkungen, Dateigrößenbeschränkungen und Verzeichnisgrößenbeschränkungen des FAT32-Dateisystems (die Ihnen anscheinend alle bekannt sind) gibt es auch eine maximale Beschränkung von insgesamt 268.435.437 Dateien auf einem FAT32-Volume, unabhängig vom Verzeichnis.
Wenn man schnell nachrechnet, sind 545 Verzeichnisse mit jeweils 7000 Dateien fast 4MillionDateien – weit mehr, als FAT32 verarbeiten kann.