You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

不删除数据调整分区:如何将Ubuntu服务器的LVM逻辑卷扩容至SSD全部可用空间

如何在不删除数据的前提下扩容Ubuntu LVM根分区?

我在家中运行一台小型Ubuntu服务器,使用一块500GB SSD。今天发现磁盘空间几乎已满,不符合预期,于是用命令lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL查看磁盘状态,得到如下结果:

NAME                      FSTYPE        SIZE MOUNTPOINT LABEL
nvme0n1                                  465,8G
├─nvme0n1p1               vfat          1G    /boot/efi
├─nvme0n1p2               ext4          2G    /boot
└─nvme0n1p3               LVM2_member   462,7G
  └─ubuntu--vg-ubuntu--lv ext4          100G   /

可以看到分区nvme0n1p3的实际容量为462.7GB,但Ubuntu仅使用了其中的100GB空间。请问是否有办法在不删除数据的前提下,调整磁盘配置使Ubuntu能够使用全部463GB空间?


当然可以!你的服务器用了LVM(逻辑卷管理),这正好方便我们在线扩容,全程不需要删除数据,甚至不用重启系统(除非极端特殊情况,一般都能直接操作)。跟着下面的步骤一步步来:

步骤1:确认卷组的空闲空间

首先用vgdisplay命令查看你的卷组(这里是ubuntu-vg)的可用空闲空间:

sudo vgdisplay ubuntu-vg

在输出里找到Free PE / Size这一行,你应该能看到接近362.7G的空闲空间,和你之前观察到的容量差值一致。

步骤2:扩容逻辑卷

接下来把卷组里的所有空闲空间全部分配给现有的逻辑卷ubuntu--vg-ubuntu--lv,用lvextend命令:

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

这里-l +100%FREE表示把卷组里所有空闲的物理扩展(PE)都分配给这个逻辑卷。如果你不想一次性用满所有空间,比如只想加200G,可以换成-L +200G参数。

步骤3:扩容文件系统

逻辑卷扩容后,还需要让ext4文件系统识别到新增的空间,执行resize2fs命令:

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

这个命令会自动把文件系统扩展到逻辑卷的最大容量,全程不需要卸载分区。

验证结果

最后用df -h /或者lsblk查看根分区的容量,应该已经变成460G左右(减去boot和efi分区占用的空间):

df -h /

小提醒

  • 操作前最好备份重要数据(虽然LVM扩容的安全性很高,但谨慎点总没坏处)
  • 确保你的Ubuntu版本是18.04及以上,这些命令默认都已预装
  • 如果你的文件系统是XFS(不过你的是ext4,所以不用管这条),扩容命令是xfs_growfs /

这样就能在不删除任何数据的情况下,让Ubuntu用上SSD的全部空间啦!

内容的提问来源于stack exchange,提问作者Junkpilepunk

火山引擎 最新活动