resize2fs 命令在 Linux 中有什么作用

Rag*_*dha 7 lvm resize2fs

当我们扩展或减少逻辑卷时,resize2fs 命令会做什么。使用 lvextend 和 lvreduce 命令时功能相同还是不同?

der*_*ert 15

实际上有四种不同的行为resize2fs(其中一种是微不足道的)。这取决于文件系统是挂载还是卸载以及您是缩小还是扩展。

  1. 安装,扩展

    在这里,resize2fs尝试在线调整大小。或多或少,这只是告诉内核来做这项工作。然后内核开始在新的可用存储上写入额外的文件系统元数据。发生这种情况时,您可以继续使用文件系统。

    请注意,真正旧的 ext3 文件系统可能不支持在线调整大小。您必须卸载旧文件系统才能扩展。

  2. 未安装,扩展

    这一次,resize2fs代替内核进行工作。这主要包括将额外的文件系统元数据写入新的可用存储。

  3. 安装,收缩

    这不受支持。它应该只是打印出一个错误。这是微不足道的行为。

  4. 未安装,收缩

    这是最耗时的,也是最危险的(尽管它仍然应该是相当安全的)。如果可能(例如,有足够的空间),resize2fs使文件系统仅使用存储的第一个size字节。它通过移动文件系统元数据和您的数据来实现这一点。完成后,块设备(逻辑卷)末尾将有未使用的存储,文件系统未使用。

lvextendlvreduce更改逻辑卷的大小。如果有-r选项,他们还可以更改文件系统的大小,这可能是正确的方法,尤其是减少文件系统。不小心给错误的大小lvreduce是一种很容易丢失数据的方法。-r防止这种情况(通过确保resize2fs被告知相同的大小)。