在 Linux 中,即使卷未满,文件系统也会变满吗?

在 Linux 中,即使卷未满,文件系统也会变满吗?

在 Linux 中,即使卷未满,文件系统也会已满吗?我们如何从存储空间方面区分文件系统和卷?

答案1

文件系统控制数据在卷中的存储方式。它将数据分成几部分,并为每个部分命名。一组数据片段成为一个文件。用于管理信息组及其名称的结构和逻辑规则称为文件系统

卷是一大组数据,无法分辨一条信息在何处结束,下一条信息在何处开始。

文件系统存在技术限制。因此,在底层卷填满之前,文件系统达到某个限制是完全有可能的。

文件系统限制的一些示例:

EXT2

  • 最大磁盘大小:32 TB
  • 最大文件大小:2 TB
  • 磁盘上的最大文件数:?
  • 单个文件夹中的最大文件数:?

EXT3

  • 最大磁盘大小:32 TB
  • 最大文件大小:2 TB
  • 磁盘上的最大文件数:?
  • 单个文件夹中的最大文件数:?

EXT4

  • 最大磁盘大小:1 EB(艾字节)
  • 最大文件大小:16 TB
  • 磁盘上的最大文件数:4,294,967,295
  • 单个文件夹中的最大文件数:?

FAT16

  • 最大磁盘大小:4 GB
  • 最大文件大小:4 GB
  • 磁盘上的最大文件数:65,517
  • 单个文件夹最大文件数:512

FAT32

  • 最大磁盘大小:2 TB
  • 最大文件大小:4 GB
  • 磁盘上的最大文件数:268,435,437
  • 单个文件夹中的最大文件数:65,534

NTFS

  • 最大磁盘大小:256 TB
  • 最大文件大小:256 TB
  • 磁盘上的最大文件数:4,294,967,295
  • 单个文件夹中的最大文件数:4,294,967,295(与文件总数相同)

答案2

即使实际空间足够,也可能已经用完了 inode。如果运行,df -h将看到已用空间;如果运行,df -i将看到已用 inode。

也许你的记录器出了问题,在你的文件系统中塞满了许多小文件。如果你运行这个脚本,你会发现包含最多文件的目录:

for i in /*; do echo -n $i:; find $i |wc -l; done

然后深入到以下子目录:

for i in /home/*; do echo -n $i:; find $i |wc -l; done
for i in /home/user1/*; do echo -n $i:; find $i |wc -l; done
for i in /home/user1/logs/*; do echo -n $i:; find $i |wc -l; done

...等等。然后,您可能会发现一个或多个不应包含大量文件的目录,您可以在纠正填满目录的底层进程后删除这些文件。

干杯,

橙汁

答案3

删除已打开但已被删除的大文件

lsof -nP | grep '(已删除)' + del

相关内容