当我们扩展或减少逻辑卷时,resize2fs 命令会做什么。使用 lvextend 和 lvreduce 命令时功能相同还是不同?
答案1
实际上可以有四种不同的行为resize2fs
(其中之一是微不足道的)。这取决于文件系统是否已安装或卸载以及您是否正在缩小或扩展。
安装式、延伸式
在这里,
resize2fs
尝试在线调整大小。或多或少,这只是告诉内核去做这项工作。然后内核开始在新的可用存储上写入附加的文件系统元数据。发生这种情况时,您可以继续使用文件系统。请注意,真正旧的 ext3 文件系统可能不支持在线调整大小。您必须卸载旧文件系统才能扩展。
未安装,延伸
这一次,
resize2fs
它代替内核来完成这项工作。大多数情况下,这包括将额外的文件系统元数据写入新的可用存储。已安装、收缩
不支持此操作。它应该只打印出一个错误。这是微不足道的行为。
未安装,收缩
这是最耗时的,也是最危险的(尽管它仍然应该相当安全)。如果可能(例如,有足够的空间),
resize2fs
使文件系统仅使用第一个尺寸存储的字节数。它通过移动文件系统元数据和数据来实现这一点。完成后,块设备(逻辑卷)末尾将有未使用的存储空间,供文件系统使用。
lvextend
并lvreduce
更改逻辑卷的大小。如果有选项的话,他们还可以更改文件系统的大小-r
,这可能是正确的方法,尤其是在减少时。不幸的是,意外提供错误的大小lvreduce
很容易丢失数据;-r
防止这种情况(通过确保resize2fs
被告知相同的大小)。