当我将大量文件从 Linux Redhat 工作站传输到FAT32
已格式化的外部硬盘(WD 2 TB
由 Mac 磁盘实用程序格式化)时,我遇到了磁盘上剩余空间不足的错误。但我检查了一下,~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
目前,每个目录中有大约 2 个目录,每个目录下有 2 个文件。每个文件都是一个二进制文件,大小为 (使用 du -sh 检查),或~545
(大约各占一半),文件名长度为(字符)。文件大小看起来不错,因为它们应该是带有或浮点数的二进制文件。~7000
~11000
~32K
96K
XC6_9k.131_132.12.2012.210.s3
29
8000
24000
是否还有其他问题?不幸的是,我无法检查目录所消耗的确切磁盘空间,尝试du -sh
需要很长时间。
编辑1- 我使用 Mac 磁盘实用程序来验证外部硬盘,它显示 -
11361590 files, 1076797472 KiB free (33649921 clusters)
编辑2-
根据 Angelo 的建议,我尝试在连接到笔记本电脑 (mac) 的外部硬盘上执行此操作。看起来我已经用完了可用的 inode df -h
。有什么建议吗 - 如果我将每个目录的小文件放在一个文件中,我会获得 inode 吗?我应该移动到格式化的磁盘吗?df -i
/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 工作站的磁盘的结果,它没有显示 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
文件名所对应的下限。首先,我在 ext HDD 中打包了大量现有文件,这应该可以释放大量inodes
(或FAT32
等效文件)。但移动大目录(其中包含~23k
文件)时仍然显示“设备上没有剩余空间”错误。然后,我没有移动单个文件,而是对目录进行了打包,并且可以将其移动到外部磁盘!!!尝试在 ext 磁盘中解压它时再次出现错误。所以,我认为我遇到了目录中文件数量的限制。请参阅威盛对此的评论
每个目录的最大文件数
我检查了报告移动错误的目录。限制似乎是16383
文件名带29
字符的文件和21843
文件名带20
字符的文件。理论上,限制是~65k
文件名带8.3
格式的文件。感谢所有帮助我诊断问题的人。现在,我只会对我拥有的任何东西进行 tar 打包。
答案1
除了 FAT32 文件系统的分区大小限制、文件大小限制和目录大小限制(听起来您都知道这些)之外,FAT32 卷上文件总数的最大限制为 268,435,437 个,无论目录如何。
简单算一下,545 个目录,每个目录有 7000 个文件,差不多是 4百万文件——远远超出了 FAT32 的处理能力。