Ubuntu 没有使用完整的磁盘空间-如何扩展?

Ubuntu 没有使用完整的磁盘空间-如何扩展?

我最近安装了 Ubuntu 20.04 服务器*,过了一段时间,因为“设备上没有剩余空间”而遇到了麻烦。直到那时,我才意识到 Ubuntu 安装没有完全使用可用的磁盘空间:

$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
[...]
nvme0n1                   259:0    0 931.5G  0 disk 
├─nvme0n1p1               259:1    0   1.1G  0 part /boot/efi
├─nvme0n1p2               259:2    0   1.5G  0 part /boot
└─nvme0n1p3               259:3    0   929G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   100G  0 lvm  /

据我了解,该分区nvme0n1p3的大小为 929 GB,但 Ubuntu 只使用了其中的 100 GB。我不知道为什么会发生这种情况,因为我有一个较旧的 Ubuntu 20.04 Server 安装,它看起来与我预期的一样:

$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
[...]
nvme0n1                   259:0    0 953.9G  0 disk
├─nvme0n1p1               259:1    0   512M  0 part /boot/efi
├─nvme0n1p2               259:2    0     1G  0 part /boot
└─nvme0n1p3               259:3    0 952.4G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0 952.4G  0 lvm  /

我发现这个答案这个答案并尝试了一下,但得到的答复是:

$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 929G 
resize2fs 1.45.5 (07-Jan-2020)
The containing partition (or device) is only 26214400 (4k) blocks.
You requested a new size of 243531776 blocks.

所以它告诉我包含的分区大小只有 100 GB,而lsblk显然它却告诉我一些不同的东西。

我怎样才能让 Ubuntu 使用所有可用的 929 GB?


*Ubuntu 22.04.1 LTS 服务器上仍然发生同样的情况,尽管我确定我告诉安装程序使用所有可用磁盘空间。

答案1

由于 Ubuntu 使用 LVM 卷,因此需要先更改卷的大小,然后才能resize2fs增加底层文件系统的大小。

lvextend可以使用如下方法完成:

$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
  Size of logical volume ubuntu-vg/ubuntu-lv changed from 100.00 GiB (25600 extents) to <928.96 GiB (237813 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.

-l +100%FREE选项指示lvextend将包含的卷组的所有可用空间添加到逻辑卷。

现在我们可以resize2fs修改文件系统,以便它使用所有可用空间:

~$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 117
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 243520512 (4k) blocks long.

现在确实如此:

$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
[...]
nvme0n1                   259:0    0 931.5G  0 disk 
├─nvme0n1p1               259:1    0   1.1G  0 part /boot/efi
├─nvme0n1p2               259:2    0   1.5G  0 part /boot
└─nvme0n1p3               259:3    0   929G  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0   929G  0 lvm  /

我找到了解决方案如何调整 Ubuntu 根 LVM 分区的大小。我推荐这篇文章,其中包含更详细的背景信息。


您还可以通过一个步骤完成扩展/调整大小:

sudo lvextend -l +100%FREE -r /dev/mapper/ubuntu--vg-ubuntu--lv

相关内容