首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我需要做完resize2fs后?

为什么我需要做完resize2fs后?
EN

Unix & Linux用户
提问于 2018-01-13 19:19:45
回答 4查看 49K关注 0票数 20

要调整LVM2分区的大小,需要执行以下两个命令:

代码语言:javascript
复制
# lvextend -L+1G /dev/myvg/homevol
# resize2fs /dev/myvg/homevol

但是,当我执行lvextend时,我看到这些更改已经应用于分区(如Gnome磁盘中所示)。那么为什么我还需要做resize2fs呢?

EN

回答 4

Unix & Linux用户

回答已采纳

发布于 2018-01-13 22:37:44

lvextend命令(没有--resizefs选项)只进行LVM端的安排,以扩大块设备,即逻辑卷。无论LV上的文件系统类型(甚至是否存在文件系统),这些操作总是相似的。

如果LV包含next 2/3/4文件系统,下一步是更新文件系统元数据,使文件系统知道它有更多的可用空间,并创建/扩展必要的元数据结构来管理所添加的空间。对于ext2 2/3/4文件系统,这至少涉及:

  • 为添加的空间创建新的节点
  • 扩展块分配数据结构,以便文件系统能够判断所添加空间的任何块是否正在使用或空闲。
  • 如果某些数据块妨碍了前面提到的数据结构扩展,它们可能会四处移动。

这一部分是特定于文件系统类型的,尽管ext2 2/3/4文件系统类型非常相似,可以用一个resize2fs工具调整它们的大小。对于XFS (文件系统),您可以使用xfs_growfs工具代替。其他文件系统可能有自己的扩展工具。如果逻辑卷不包含文件系统,而是包含“原始”数据库或Oracle ASM卷,则需要应用另一个过程。

每个文件系统都有不同的内部工作方式,因此每个文件系统扩展的条件都不同。在为文件系统扩展设计公共API之前,需要一段时间;这使得实现fsadm resize命令成为可能,它为扩展几种文件系统类型提供了统一的语法。--resizefs选项lvextend只使用fsadm resize命令。

简而言之:在lvextend之后,LVM级别的工具(如lvsvgslvdisplayvgdisplay )将看到更新的大小,但是文件系统和在其上运行的任何工具,比如df,都不会看到它。

票数 37
EN

Unix & Linux用户

发布于 2018-01-13 19:24:40

LVM层只是内部文件系统的容器。您可以告诉lvextend在逻辑卷中调整文件系统的大小,而不必运行单独的resize2fs,添加-r (或--resizefs)选项:

代码语言:javascript
复制
lvextend -r ...
票数 15
EN

Unix & Linux用户

发布于 2018-01-13 19:27:29

因为文件系统和逻辑卷是不同的抽象。卷是一块磁盘(就像分区)--或者至少是“虚拟”等效的。不过是块装置而已。文件系统是一种内部结构(或者最上面的结构,如果您愿意的话),用于提供文件(和目录等)到该设备的映射。如果没有resize2fs,分区就会更大,但是文件系统没有利用可用的空间。

实际上,您可以创建一个不占用整个分区的文件系统。来自mke2fs手册页:

文件系统大小由fs-size指定。如果fs-size没有后缀,则解释为2 -b的功率,除非指定了-b块大小选项,在这种情况下fs-size被解释为块块的数量。如果fs-size后缀为“k”、“m”、“g”、“t”(大写或小写),那么它将被解释为功率为2千字节、兆字节、千兆字节、兆字节等。如果省略fs大小,mke2fs将根据设备大小创建文件系统。

正如您所看到的,默认情况是填充分区,通常没有理由这样做--但如果需要,则可以这样做。

注意,当lvextend有一个选项--resizefs (或仅仅是-r)时,它负责在卷被扩展后扩展文件系统,而不需要运行单独的命令。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/416886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档