Ao transferir muitos arquivos de uma estação de trabalho Linux Redhat para um FAT32
disco rígido externo formatado ( WD 2 TB
formatado pelo utilitário de disco Mac), encontrei o erro de que não havia espaço suficiente no meu disco. Mas verifiquei que ainda havia ~700 GB
espaço em disco, então acho que fiquei sem espaço em disco por causa de nomes de arquivos longos (não tenho certeza?). Como verificar isso?
Os detalhes do meu disco rígido externo são
/dev/sdc1 on /media/GUDDULINUX3 type vfat (rw,nosuid,nodev,relatime,uid=988,gid=2000,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,s
Atualmente existem ~545
diretórios com qualquer coisa entre ~7000
arquivos ~11000
em cada diretório. Cada arquivo é um arquivo binário de tamanho (verificado com du -sh) ~32K
ou 96K
(aproximadamente metade de cada) e o nome é semelhante a XC6_9k.131_132.12.2012.210.s3
( 29
caracteres). O tamanho do arquivo parece bom porque eles deveriam ser arquivos binários com 8000
pontos 24000
flutuantes.
É possível que algo mais esteja errado? Infelizmente, não consigo verificar o espaço exato em disco consumido pelos diretórios, a tentativa du -sh
leva uma eternidade.
Editar 1- Usei o Mac Disk Utility para verificar o disco rígido externo e ele diz -
11361590 files, 1076797472 KiB free (33649921 clusters)
Editar 2-
Seguindo as sugestões do Angelo, experimentei df -h
no df -i
disco rígido externo conectado ao meu laptop (mac). Parece que fiquei sem inodes livres no arquivo /Volumes/GUDDULINUX3
. Alguma sugestão sobre o que fazer - ganharei inodes se colocar tar
os arquivos pequenos em um tar
arquivo para cada diretório? Devo mudar para um NTFS
disco formatado?
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
Estes são resultados com o disco conectado à minha estação de trabalho Linux, ele não mostra as informações do 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
Editar 3-
Parece que inode
a coisa não funciona com FAT32
. Acho que o problema é que há um limite inferior de FAT32
quantos arquivos podem existir em um diretório, menor do que ~65k
dependendo do nome do arquivo. Primeiro, eu coloquei muitos arquivos existentes no disco rígido externo, o que deveria ter liberado muitos inodes
(ou FAT32
equivalente). Mas ainda mover o diretório grande (que contém ~23k
arquivos) mostrou o erro "sem espaço no dispositivo". Aí, ao invés de mover arquivos individuais, fiz um tar do diretório e movê-lo foi possível para um disco externo !!! Tentar descompactá-lo no disco ext me deu o erro novamente. Então, acho que encontrei um limite no número de arquivos no diretório. Verw3dkcomentário sobre isso
Máximo de arquivos por diretório
Verifiquei os diretórios que relataram erros ao mover. O limite parece 16383
arquivos para nomes de arquivos com 29
caracteres e 21843
arquivos para nomes de arquivos com 20
caracteres. Teoricamente, o limite são ~65k
arquivos para arquivos com nomes no 8.3
formato. Obrigado a todos que me ajudaram a diagnosticar o problema. Por enquanto, vou apenas arrumar o que tenho.
Responder1
Além dos limites de tamanho de partição, limites de tamanho de arquivo e limites de tamanho de diretório do sistema de arquivos FAT32 (todos os quais parece que você conhece), há também um limite máximo de 268.435.437 arquivos no total em um volume FAT32, independentemente do diretório.
Fazendo contas rápidas, 545 diretórios com 7.000 arquivos em cada é quase 4milhãoarquivos - muito além do que o FAT32 pode suportar.