震惊!飞牛虚拟机划分50G,开机只有24G?一招解锁全部空间!

一、问题背景:虚拟机空间“缩水”之谜

当你在飞牛 NAS 上创建 Ubuntu 虚拟机并分配了 50G 磁盘后,通过 df -hT 命令查看,却发现根分区(/)只有 24G。别慌,这并非虚拟机创建失败,而是 Ubuntu 的 LVM(逻辑卷管理)默认安装策略导致的——它通常只分配卷组 50% 的空间给根目录,以预留空间给快照或其他分区。

从下图可以清晰看到:

  • 根分区 /dev/mapper/ubuntu--vg-ubuntu--lv 仅为 24G,使用率高达 32%。
  • 而通过 vgdisplay 命令检查卷组信息,我们发现卷组总大小为 48.00 GiB,其中还有 24.00 GiB 的空闲空间(Free PE / Size)未被分配。

这意味着,虽然虚拟机有 50G 物理磁盘,但系统只划分了 24G 给根分区的逻辑卷,剩下的空间“闲置”在了 LVM 卷组中。


二、解决方案:一键扩容 LVM 根分区

既然找到了原因,解决起来就非常简单了。我们只需要把卷组里剩余的空间全部分配给根分区即可。

1. 确认空闲空间与路径

首先,在虚拟机终端执行以下命令确认空闲空间:

Bash

sudo vgdisplay

重点关注 Free PE / Size 这一行,显示的就是我们可以压榨的“隐藏空间”(本例中为 24.00 GiB)。

同时,可以通过 df -h 确认你的根分区逻辑卷路径,默认通常是 /dev/mapper/ubuntu--vg-ubuntu--lv(注:如果你安装时修改了主机名,路径中间的 ubuntu 可能会变成你的主机名)

2. 终极一招:同时扩展逻辑卷与文件系统

很多老教程会让你先用 lvextend 扩容,再用 resize2fs 刷新文件系统。其实现在只需要加一个 -r 参数,就能一步到位

Bash

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

命令原理解析

  • -r:自动执行文件系统扩容(自动识别 ext4 或 xfs 并调用相应命令)。
  • -l +100%FREE:将卷组中所有剩余的空闲物理扩展(PE)分配给该逻辑卷。

三、验证结果:空间已全部可用

执行完上述命令后,再次运行 df -hT 命令,你会发现根分区已经成功扩展到了 48G,可用空间瞬间拉满,使用率大幅下降!

现在,你的虚拟机已经可以充分利用分配的全部磁盘空间,再也不用担心部署 AI 模型(如 Ollama)或拉取大型 Docker 镜像时空间不足的问题了。


总结

通过简单的 LVM 扩容命令,我们成功将飞牛虚拟机的根分区从 24G 扩展到了 48G,完美解锁了“被封印”的磁盘空间。这不仅解决了眼前的存储焦虑,也为未来部署更多好玩的 AI 应用打下了基础。

如果你在操作过程中遇到任何问题,或者想知道如何将 AI 模型目录迁移到其他磁盘,欢迎在评论区留言交流!