Rufus Asked: 2018-01-14 11:19:45 +0800 CST2018-01-14 11:19:45 +0800 CST 2018-01-14 11:19:45 +0800 CST 为什么我需要在 lvextend 之后做 resize2fs? 772 要调整 LVM2 分区的大小,需要执行以下 2 个命令: # lvextend -L+1G /dev/myvg/homevol # resize2fs /dev/myvg/homevol 但是,当我执行时lvextend,我看到更改已应用于分区(如 Gnome 磁盘中所示)。那为什么我还需要做resize2fs呢? partition resize2fs 4 个回答 Voted Best Answer telcoM 2018-01-14T14:37:44+08:002018-01-14T14:37:44+08:00 该lvextend命令(不带--resizefs选项)仅在 LVM 端进行安排以扩大作为逻辑卷的块设备。无论 LV 上的文件系统类型是什么(甚至是否有文件系统),这些操作总是相似的。 如果 LV 包含 ext2/3/4 文件系统,下一步是更新文件系统元数据以使文件系统知道它有更多可用空间,并创建/扩展必要的元数据结构来管理添加的空间。对于 ext2/3/4 文件系统,这至少涉及: 为添加的空间创建新的 inode 扩展块分配数据结构,以便文件系统可以判断添加空间的任何块是正在使用还是空闲 如果它们妨碍前面提到的数据结构扩展,则可能会移动一些数据块 这部分特定于文件系统类型,尽管 ext2/3/4 文件系统类型非常相似,它们都可以使用单个resize2fs工具调整大小。对于 XFS、文件系统,您可以使用xfs_growfs工具。其他文件系统可能有自己的扩展工具。如果逻辑卷不包含文件系统,而是像“原始”数据库或 Oracle ASM 卷,则需要应用另一个过程。 每个文件系统都有不同的内部工作方式,因此扩展文件系统的条件会有所不同。花了一段时间才为文件系统扩展设计了一个通用的 API。这使得实现该fsadm resize命令成为可能,该命令为扩展多种文件系统类型提供了统一的语法。仅使用命令的--resizefs选项。lvextendfsadm resize 简而言之:在 之后,LVM 级工具(lvextend例如lvs、vgs和 )将看到更新后的大小,但文件系统和在其上运行的任何工具(例如)还看不到它。lvdisplayvgdisplaydf JRFerguson 2018-01-14T11:24:40+08:002018-01-14T11:24:40+08:00 LVM 层只是其中的文件系统的容器。您可以告诉lvextend在逻辑卷中调整文件系统的大小,而无需单独运行resize2fs添加-r(or --resizefs) 选项: lvextend -r ... mattdm 2018-01-14T11:27:29+08:002018-01-14T11:27:29+08:00 因为文件系统和逻辑卷是不同的抽象。卷是一块磁盘(如分区)——或者至少是“虚拟”等价物。它只是一个块设备。文件系统是一种结构,位于其内部(或者,如果您愿意,可以在其之上),用于提供文件(和目录等)到该设备的映射。没有resize2fs,分区会更大,但文件系统没有利用可用空间。 实际上,您最初可以创建一个不占用整个分区的文件系统。从mke2fs手册页: 文件系统大小由 fs-size 指定。如果 fs-size 没有后缀,它将被解释为 2 KB 的幂,除非指定了 -b blocksize 选项,在这种情况下 fs-size 被解释为块大小的块数。如果 fs-size 后缀为“k”、“m”、“g”、“t”(大写或小写),则以 2 千字节、兆字节、千兆字节的幂数进行解释, TB 等。如果省略 fs-size,mke2fs 将根据设备大小创建文件系统。 如您所见,默认设置是填充分区,通常没有理由不这样做 - 但如果您愿意,您可以这样做。 请注意, whenlvextend有一个选项--resizefs(或只是-r),它负责在卷扩展后扩展文件系统,而无需运行单独的命令。 George Udosen 2018-01-14T11:21:53+08:002018-01-14T11:21:53+08:00 resize2fs强制,fs文件系统扩展或收缩以占用lvextend命令产生的新空间。流程: with fs: -- shrink --> 1. shrink fs 2. shrink volume -- expand --> 1. expand volume, 2. expand fs
该
lvextend
命令(不带--resizefs
选项)仅在 LVM 端进行安排以扩大作为逻辑卷的块设备。无论 LV 上的文件系统类型是什么(甚至是否有文件系统),这些操作总是相似的。如果 LV 包含 ext2/3/4 文件系统,下一步是更新文件系统元数据以使文件系统知道它有更多可用空间,并创建/扩展必要的元数据结构来管理添加的空间。对于 ext2/3/4 文件系统,这至少涉及:
这部分特定于文件系统类型,尽管 ext2/3/4 文件系统类型非常相似,它们都可以使用单个
resize2fs
工具调整大小。对于 XFS、文件系统,您可以使用xfs_growfs
工具。其他文件系统可能有自己的扩展工具。如果逻辑卷不包含文件系统,而是像“原始”数据库或 Oracle ASM 卷,则需要应用另一个过程。每个文件系统都有不同的内部工作方式,因此扩展文件系统的条件会有所不同。花了一段时间才为文件系统扩展设计了一个通用的 API。这使得实现该
fsadm resize
命令成为可能,该命令为扩展多种文件系统类型提供了统一的语法。仅使用命令的--resizefs
选项。lvextend
fsadm resize
简而言之:在 之后,LVM 级工具(
lvextend
例如lvs
、vgs
和 )将看到更新后的大小,但文件系统和在其上运行的任何工具(例如)还看不到它。lvdisplay
vgdisplay
df
LVM 层只是其中的文件系统的容器。您可以告诉
lvextend
在逻辑卷中调整文件系统的大小,而无需单独运行resize2fs
添加-r
(or--resizefs
) 选项:因为文件系统和逻辑卷是不同的抽象。卷是一块磁盘(如分区)——或者至少是“虚拟”等价物。它只是一个块设备。文件系统是一种结构,位于其内部(或者,如果您愿意,可以在其之上),用于提供文件(和目录等)到该设备的映射。没有
resize2fs
,分区会更大,但文件系统没有利用可用空间。实际上,您最初可以创建一个不占用整个分区的文件系统。从
mke2fs
手册页:如您所见,默认设置是填充分区,通常没有理由不这样做 - 但如果您愿意,您可以这样做。
请注意, when
lvextend
有一个选项--resizefs
(或只是-r
),它负责在卷扩展后扩展文件系统,而无需运行单独的命令。resize2fs
强制,fs
文件系统扩展或收缩以占用lvextend
命令产生的新空间。流程: