При переносе большого количества файлов с рабочей станции Linux Redhat на FAT32
отформатированный внешний жесткий диск ( WD 2 TB
отформатированный утилитой Mac disk), я столкнулся с ошибкой, что на моем диске недостаточно места. Но я проверил, что на ~700 GB
диске еще осталось место, так что я предполагаю, что у меня закончилось место на диске из-за длинных имен файлов (не уверен?) ? Как это проверить ?
Данные моего внешнего жесткого диска:
/dev/sdc1 on /media/GUDDULINUX3 type vfat (rw,nosuid,nodev,relatime,uid=988,gid=2000,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,s
В настоящее время существует около ~545
каталогов с чем-то между ~7000
to ~11000
файлами в каждом каталоге. Каждый файл является двоичным файлом размером (проверяется с помощью du -sh), ~32K
или 96K
(примерно половина каждого) и имя имеет длину XC6_9k.131_132.12.2012.210.s3
( 29
символов). Размер файла выглядит нормально, поскольку предполагается, что это двоичные файлы с 8000
или 24000
плавающей точкой.
Возможно, что-то еще не так? К сожалению, я не могу проверить точное дисковое пространство, занятое каталогами, попытки du -sh
занимают целую вечность.
Редактировать 1- Я использовал Mac Disk Utility для проверки внешнего жесткого диска, и он говорит -
11361590 files, 1076797472 KiB free (33649921 clusters)
Редактировать 2-
Следуя рекомендациям Анджело, я попробовал df -h
и df -i
на внешнем жестком диске, подключенном к моему ноутбуку (Mac). Похоже, у меня закончились свободные иноды в /Volumes/GUDDULINUX3
. Есть предложения, что делать — получу ли я иноды, если скопирую tar
небольшие файлы в один tar
файл для каждого каталога? Стоит ли мне переместиться на NTFS
отформатированный диск?
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
Это результаты с диска, подключенного к моей рабочей станции Linux, он не показывает информацию об иноде.
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
Редактировать 3-
Похоже, что inode
это не работает с FAT32
. Я думаю, проблема в том, что существует нижний предел того, FAT32
сколько файлов может быть в каталоге, ниже, чем ~65k
в зависимости от имени файла. Во-первых, я заархивировал много существующих файлов на ext HDD, что должно было освободить много inodes
(или FAT32
эквивалент). Но все равно перемещение большого каталога (в нем есть ~23k
файлы) показало ошибку «на устройстве не осталось места». Затем, вместо перемещения отдельных файлов, я сделал tar каталога, и перемещение его стало возможным на внешний диск !!! Попытка распаковать его на ext disk снова дала мне ошибку. Так что, я думаю, я столкнулся с ограничением на количество файлов в каталоге. Смотритеw3dkкомментарий к этому
Максимальное количество файлов в каталоге
Я проверил каталоги, которые сообщили об ошибке при перемещении. Кажется, лимит 16383
файлов для имен файлов с 29
символами и 21843
файлов для имен файлов с 20
символами. Теоретически лимит ~65k
файлов для файлов с именами в 8.3
формате. Спасибо всем, кто помог мне диагностировать проблему. Сейчас я просто заархивирую все, что у меня есть.
решение1
Помимо ограничений на размер раздела, файла и каталога файловой системы FAT32 (о которых вы, судя по всему, знаете), существует также максимальное ограничение на общее количество файлов на томе FAT32 — 268 435 437, независимо от каталога.
Если посчитать, 545 каталогов с 7000 файлов в каждом — это почти 4миллионфайлов — намного больше, чем может обработать FAT32.