При переносе большого количества файлов с рабочей станции Linux Redhat на внешний жесткий диск, отформатированный в FAT32 (WD 2 TB отформатированный утилитой для дисков Mac), я столкнулся с ошибкой, что на моем диске недостаточно места. Но я проверил, осталось ли еще ~700 GB дискового пространства, поэтому я предполагаю, что мне не хватило места на диске из-за длинных имен файлов (не уверен?)? Как это проверить?
Мои внешние данные HDD
/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 до ~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 . Любые предложения о том, что делать - получу ли я inode, если я 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, он не показывает информацию о inode.
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 зависимости от имени файла. Во-первых, я скопировал множество существующих файлов на внешнем жестком диске, которые должны были освободить много inodes (или эквивалент FAT32 ). Но при перемещении большого каталога (в нем ~23k Файлов) выдается ошибка "на устройстве не осталось места". Затем, вместо того, чтобы перемещать отдельные файлы, я сделал tar из каталога и переместил его на внешний диск !!! Попытка распаковать его на диске ext снова вызвала ошибку. Итак, я думаю, что я столкнулся с ограничением на количество файлов в каталоге. См. Комментарий w3dk об этих файлах Max для каждого каталога
Я проверил каталоги, которые сообщили об ошибке при перемещении. Ограничение составляет 16383 файла для имен файлов с 29 символами и 21843 файла для имен файлов с 20 символами. Теоретически, ограничение составляет ~65k Файлов для файлов с именами в формате 8.3 . Спасибо всем, кто помог мне диагностировать проблему. Сейчас я просто соберу все, что имею.
