LVM 根分区仅使用卷大小的一半

use*_*319 7 ubuntu lvm

我有一个 Ubuntu 服务器 20.04,带有加密的 50GB LVM 根分区,我刚刚意识到文件系统本身只显示 25GB

安装是默认的(除了加密位),我不明白为什么它没有使用根分区的所有空间?

如何扩展根文件系统?

 PV                     VG        Fmt  Attr PSize  PFree
  /dev/mapper/dm_crypt-0 ubuntu-vg lvm2 a--  48.48g <24.24g

 VG        #PV #LV #SN Attr   VSize  VFree
  ubuntu-vg   1   1   0 wz--n- 48.48g <24.24g

 LV        VG        Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  ubuntu-lv ubuntu-vg -wi-ao---- 24.24g
Run Code Online (Sandbox Code Playgroud)

tel*_*coM 9

为什么它没有使用根分区的所有空间?

创建逻辑卷时,仅为其分配了 24.24 GB。这实际上可能是一件好事:如果您发现由于某种原因需要一个逻辑卷,则剩余空间可用于创建另一个逻辑卷,或者您可以使用可用空间来扩展现有逻辑卷,即使其文件系统已安装并处于安装状态。使用。

保留一些未分配的空间可能是一件好事,因为它可以让您轻松应对未来意外的需求:

  • 文件系统需要比预期更多的空间?没问题,您可以在线扩展。(扩展文件系统通常比缩小文件系统容易得多,因此降低预期要求然后根据需要进行扩展可能是一个很好的策略。)
  • 您需要一个带有特殊挂载选项的小型文件系统来用于 chroot 监狱吗?只需使用一些未分配的空间为其创建一个新的 LV 即可。

如何扩展根文件系统?

例如,要将其扩展 5 GB:

sudo lvextend --resizefs -L +5G ubuntu-vg/ubuntu-lv
Run Code Online (Sandbox Code Playgroud)

或者,如果您想使用所有剩余的未分配容量来扩展根文件系统:

sudo lvextend --resizefs -l +100%FREE ubuntu-vg/ubuntu-lv
Run Code Online (Sandbox Code Playgroud)

如果不使用该--resizefs选项,则该命令将仅扩展逻辑卷,而不扩展其中的文件系统。然后,您必须使用另一个命令来告诉文件系统利用扩展名: 或者fsadm resize /dev/mapper/ubuntu--vg-ubuntu--lv或 特定于文件系统的命令,例如resize2fs /dev/mapper/ubuntu--vg-ubuntu--lvor xfs_growfs /

(一旦 LV 成功扩展,--resizefs选项lvextend实际上只会为您运行命令。)fsadm resize ...

  • @telcoM 虽然我同意保留扩展空间是一个好主意,但 Canonical 武断地决定在 20.04 分区配置的第一个屏幕上说“使用完整磁盘”,然后只分配一半的空间,这是具有欺骗性和令人沮丧的。在客户端服务器上发现此问题后,我不得不手动扩展 50 多个虚拟机。在安装期间或 20.04 的发行说明中没有任何地方提到它,并且所有以前的版本(实际上是 22.04)都不会在没有询问的情况下做出这种假设。 (3认同)
  • @BobbyMick 我同意:好主意,但实施需要工作。它可能需要更好的可视化和/或文档,以使将要发生的事情更加明显。 (2认同)