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.