Al transferir muchos archivos desde una estación de trabajo Linux Redhat a un FAT32
disco duro externo formateado ( WD 2 TB
formateado con la utilidad de disco de Mac), me encontré con el error de que no quedaba suficiente espacio en mi disco. Pero verifiqué que todavía quedaba ~700 GB
espacio en el disco, así que supongo que me quedé sin espacio en el disco debido a los nombres de archivos largos (¿no estoy seguro?). ¿Cómo comprobarlo?
Los detalles de mi disco duro externo son
/dev/sdc1 on /media/GUDDULINUX3 type vfat (rw,nosuid,nodev,relatime,uid=988,gid=2000,fmask=0022,dmask=0077,codepage=cp437,iocharset=ascii,s
Actualmente hay alrededor de ~545
directorios con cualquier cosa entre ~7000
dos ~11000
archivos en cada directorio. Cada archivo es un archivo binario de tamaño (verificado con du -sh), ~32K
o 96K
(aproximadamente la mitad cada uno) y el nombre es como XC6_9k.131_132.12.2012.210.s3
( 29
caracteres de longitud). El tamaño del archivo parece correcto porque se supone que son archivos binarios con 8000
puntos 24000
flotantes.
¿Es posible que algo más esté mal? Desafortunadamente, no puedo comprobar el espacio exacto en disco consumido por los directorios; intentarlo du -sh
lleva una eternidad.
Editar 1- Utilicé Mac Disk Utility para verificar el disco duro externo y dice:
11361590 files, 1076797472 KiB free (33649921 clusters)
Editar 2-
Siguiendo las sugerencias de Angelo, probé df -h
y df -i
en el disco duro externo conectado a mi computadora portátil (mac). Parece que me he quedado sin inodos libres en /Volumes/GUDDULINUX3
. ¿Alguna sugerencia sobre qué hacer? ¿Obtendré inodos si guardo tar
los archivos pequeños en un tar
archivo para cada directorio? ¿Debo pasar a un NTFS
disco formateado?
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
Estos son resultados con el disco conectado a mi estación de trabajo Linux, no muestra la información del inodo.
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
algo no funciona con FAT32
. Creo que el problema es que hay un límite inferior en FAT32
la cantidad de archivos que pueden haber en un directorio, más bajo que el que ~65k
depende del nombre del archivo. Primero, guardé muchos archivos existentes en el disco duro externo, lo que debería haber liberado una gran cantidad inodes
(o FAT32
equivalente). Pero seguir moviendo el directorio grande (tiene ~23k
archivos) mostró el error "no queda espacio en el dispositivo". Luego, en lugar de mover archivos individuales, hice un tar del directorio y ¡¡¡fue posible moverlo a un disco externo !!! Intentar descomprimirlo en el disco externo me dio el error nuevamente. Entonces, creo que me encontré con un límite en la cantidad de archivos en el directorio. Verw3dkEl comentario de esto.
Máximo de archivos por directorio
Revisé los directorios que habían informado de errores al mudarse. El límite parece ser 16383
archivos para nombres de archivos con 29
caracteres y 21843
archivos para nombres de archivos con 20
caracteres. Teóricamente, el límite son ~65k
archivos para archivos con nombres en 8.3
formato. Gracias a todos los que me ayudaron a diagnosticar el problema. Por ahora, simplemente cubriré con alquitrán lo que tenga.
Respuesta1
Además de los límites de tamaño de partición, los límites de tamaño de archivo y los límites de tamaño de directorio del sistema de archivos FAT32 (todos los cuales parece que usted conoce), también hay un límite máximo de 268,435,437 archivos totales en un volumen FAT32, independientemente de directorio.
Haciendo cálculos rápidos, 545 directorios con 7000 archivos en cada uno son casi 4millónarchivos, mucho más de lo que FAT32 puede manejar.