3

При переносе большого количества файлов с рабочей станции 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 . Спасибо всем, кто помог мне диагностировать проблему. Сейчас я просто соберу все, что имею.

1 ответ1

2

В дополнение к ограничениям размера раздела, ограничения размера файла и ограничения размера каталога файловой системы FAT32 (все это звучит так, как вы знаете), существует также максимальное ограничение на общее количество файлов 268 435 437 на томе FAT32, независимо от каталога.

При быстром математике 545 каталогов с 7000 файлами в каждом - это почти 4 миллиона файлов, что намного превышает возможности FAT32.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .