文件占用的物理磁盘空间及其名称

文件占用的物理磁盘空间及其名称

当我将大量文件从 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~32K96KXC6_9k.131_132.12.2012.210.s329800024000

是否还有其他问题?不幸的是,我无法检查目录所消耗的确切磁盘空间,尝试du -sh需要很长时间。

编辑1- 我使用 Mac 磁盘实用程序来验证外部硬盘,它显示 - 11361590 files, 1076797472 KiB free (33649921 clusters)

编辑2-

根据 Angelo 的建议,我尝试在连接到笔记本电脑 (mac) 的外部硬盘上执行此操作。看起来我已经用完了可用的 inode df -h。有什么建议吗 - 如果我将每个目录的小文件放在一个文件中,我会获得 inode 吗?我应该移动到格式化的磁盘吗?df -i/Volumes/GUDDULINUX3tartarNTFS

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 的处理能力。

相关内容