Podczas przesyłania dużej liczby plików ze stacji roboczej Linux Redhat na FAT32
sformatowany zewnętrzny dysk twardy ( WD 2 TB
sformatowany przez narzędzie dyskowe Mac) napotkałem błąd, że na moim dysku nie ma wystarczającej ilości miejsca. Ale sprawdziłem, czy zostało jeszcze miejsce ~700 GB
na dysku, więc zgaduję, że zabrakło mi miejsca na dysku z powodu długich nazw plików (nie jesteś pewien?)? Jak to sprawdzić?
Moje dane zewnętrznego dysku twardego są
/dev/sdc1 on /media/GUDDULINUX3 type vfat (rw,nosuid,nodev,relatime,uid=988,gid=2000,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,s
Obecnie istnieje około ~545
katalogów z niczego między ~7000
do ~11000
plików w każdym katalogu. Każdy plik jest plikiem binarnym o rozmiarze (sprawdzanym za pomocą du -sh) ~32K
lub 96K
(mniej więcej po połowie), a nazwa jest podobna XC6_9k.131_132.12.2012.210.s3
( 29
długość znaków). Rozmiar pliku wygląda OK, ponieważ powinny to być pliki binarne z 8000
lub 24000
zmiennoprzecinkowe.
Czy to możliwe, że coś innego jest nie tak? Niestety nie mogę sprawdzić dokładnego miejsca na dysku zajętego przez katalogi, próba du -sh
trwa wiecznie.
Edycja 1 - Użyłem Mac Disk Utility do weryfikacji zewnętrznego dysku twardego i mówi:
11361590 files, 1076797472 KiB free (33649921 clusters)
Edycja 2 -
Następujących sugestii Angelo, próbowałem df -h
i df -i
na zewnętrznym dysku twardym dołączony do mojego laptopa (MAC). Wygląda na to, że skończyły mi się wolne i-węzły /Volumes/GUDDULINUX3
. Wszelkie sugestie dotyczące tego, co robić - czy uzyskam i-węzły, jeśli będę mieć tar
małe pliki w jednym tar
pliku dla każdego katalogu? Czy powinienem przejść na NTFS
sformatowany dysk?
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
Są to wyniki z dyskiem podłączonym do mojej stacji roboczej z systemem Linux, nie wyświetla informacji o i-węzłach.
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
Edycja 3 -
Wygląda na to, że inode
coś nie działa FAT32
. Myślę, że problem polega na tym, że istnieje niższy limit FAT32
liczby plików w katalogu, niższy niż w ~65k
zależności od nazwy pliku. Po pierwsze, zaliczyłem wiele istniejących plików na dysku twardym ext, które powinny zwolnić wiele inodes
(lub ich FAT32
odpowiedników). Ale nadal przenoszenie dużego katalogu (zawierającego ~23k
pliki) pokazało błąd „brak miejsca na urządzeniu”. Następnie zamiast przenosić pojedyncze pliki, utworzyłem tar katalogu i przeniesienie go było możliwe na dysk zewnętrzny !!! Próba rozpakowania go na dysku ext ponownie dała mi błąd. Myślę więc, że napotkałem ograniczenie liczby plików w katalogu. Zobacz komentarz w3dk do tego
Max plików na katalog
Sprawdziłem katalogi, które zgłosiły błąd podczas przenoszenia. Limit dotyczy 16383
plików nazw plików ze 29
znakami i 21843
plików nazw plików ze 20
znakami. Teoretycznie limitem są ~65k
pliki dla plików o nazwach w 8.3
formacie. Dziękujemy wszystkim, którzy pomogli mi zdiagnozować problem. Na razie zajmę się tylko tym, co mam.
Odpowiedzi:
Oprócz limitów wielkości partycji, limitów rozmiaru plików i limitów rozmiaru katalogu systemu plików FAT32 (z których wszystkie brzmią, jakbyś był świadomy), istnieje również maksymalny limit 268 435 437 plików ogółem na woluminie FAT32, niezależnie od tego katalogu.
Szybka matematyka, 545 katalogów z 7000 plików w każdym to prawie 4 miliony plików - znacznie więcej niż FAT32 może obsłużyć.
źródło