文件系统的大小是如何定义的?

文件系统的大小是如何定义的?

man resize2fs

resize2fs 程序将调整 ext2、ext3 或 ext4 文件系统的大小。它可用于放大或缩小设备上未安装的文件系统。 ...该size参数指定请求的文件系统的新大小

如何选择size要指定的参数resize2fs?进一步来说:

文件系统的大小是如何定义的?

它是否计算外部碎片和/或内部碎片?如果不计算外部碎片但计算内部碎片,则文件系统的大小应该相同,只要resize2fs不修改或删除现有文件。

算不算用于存储 inode 的空间和用于 root 使用的空间,例如碎片整理

df和的“已使用”列是否gparted显示每个文件系统的大小?“使用的”数字可以用于选择size的参数resize2fs吗?请注意,dfgparted的“已使用”列显示同一分区的不同已使用数字,但不确定原因。

谢谢。

答案1

用于resize2fs(和mke2fs其他类似工具)的文件系统的大小是文件系统的外部大小,IE从外面看它所占据的空间量。文件系统的内部数据结构在这里并不重要。文件系统中的所有内容(元数据、数据和文件系统中未使用的空间)都适合文件系统的大小。这还包括与文件系统托管在同一分区中的任何引导加载程序,其中可以进行此类配置(它是带 Ext2/3/4,例如,不适用于 XFS)。

确定文件系统当前大小的最佳方法是从文件系统中读取;例如,对于 ext2/3/4 文件系统,您可以将块计数乘以块大小:

dumpe2fs -h /path/to/file/system | grep -E 'Block (count|size):'

默认情况下,文件系统的大小通常是其容器的大小,例如它包含分区或逻辑卷。resize2fs如果您没有明确指定大小,则将使用该值。size当您想要缩小文件系统及其容器时,指定非常有用:您首先resize2fs以目标大小运行,然后缩小容器(分区、逻辑卷等)以匹配。

要确定可以将文件系统缩小到的最小大小,最好的方法是使用resize2fs自身:

resize2fs -M -P /path/to/file/system

会告诉您最小文件系统将占用多少块(保留所有当前内容);要确定使用的块大小,请运行

dumpe2fs -h /path/to/file/system | grep Block\ size

您可以通过添加以下内容来获取计算的详细信息-d 32

resize2fs -d 32 -M -P /path/to/file/system

文件系统的最大大小通常是其容器(分区或逻辑卷)的大小。分区或逻辑卷中的文件系统永远不能大于分区或逻辑卷;可能存在限制文件系统增长范围的其他约束。 (存储在图像文件中的文件系统的行为不同,resize2fs更改文件大小以匹配文件系统大小,无论是增长还是缩小。)

相关内容