要调整LVM2分区的大小,需要执行以下两个命令:
# lvextend -L+1G /dev/myvg/homevol
# resize2fs /dev/myvg/homevol但是,当我执行lvextend时,我看到这些更改已经应用于分区(如Gnome磁盘中所示)。那么为什么我还需要做resize2fs呢?
发布于 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级别的工具(如lvs、vgs、lvdisplay和vgdisplay )将看到更新的大小,但是文件系统和在其上运行的任何工具,比如df,都不会看到它。
发布于 2018-01-13 19:24:40
LVM层只是内部文件系统的容器。您可以告诉lvextend在逻辑卷中调整文件系统的大小,而不必运行单独的resize2fs,添加-r (或--resizefs)选项:
lvextend -r ...发布于 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)时,它负责在卷被扩展后扩展文件系统,而不需要运行单独的命令。
https://unix.stackexchange.com/questions/416886
复制相似问题