前言:磁盘红了!😱
最近我在 PVE (Proxmox VE) 上的 Ubuntu 24 虚拟机里部署了 1Panel 面板。正用得开心,突然发现 1Panel 首页的磁盘 / 分区快满了!
作为一个 PVE 用户,第一反应肯定是去给虚拟机加硬盘。但是打开 PVE 后台一看,LVM 占用率显示 93%,当场吓出一身冷汗:“完了,我物理硬盘也满了?”
经过一番排查和折腾,发现这其实是虚惊一场。今天就把这套从“看懂 PVE 存储”到“无损扩容”再到“解决 Docker 权限报错”的全流程记录下来。如果你也遇到了类似问题,看这篇就够了。
第一部分:PVE 里的“视觉误差” —— 93% 到底满没满?
首先,我们要解决一个吓人的问题。在 PVE 的 LVM 页面,你可能会看到类似这样的画面:
LVs 数:7 | 分配给 LV:93% | 大小:248GB | 可用:17GB
看到这个 93%,很多新手(包括我)都会慌。但实际上,你的硬盘可能根本没满。 我们来把 PVE 的三张关键图表拆解一下:
1️⃣ LVM (底层分配):吓人的 93%

这只是“地皮规划图”。
PVE 安装时,它自动把硬盘切成了三块:给系统自己用、给交换分区、给虚拟机数据池。
这里的 93% 只是表示:“我已经把 93% 的地皮规划出去了”,并不代表地皮上已经盖满了楼。剩下的 17GB 是完全未规划的荒地。
2️⃣ LVM-Thin (Local-LVM):租客的真实房间

这才是虚拟机真正住的地方(data 池)。它是精简置备 (Thin Provisioning) 的。
- 分配大小 (147GB):你口头答应给租客(虚拟机)的总额度。
- 已用大小 (56GB):租客实际占用的空间。
- 结论:看这里最准!虽然我分出去了很多,但实际只用了 30%-40%,还有大把的空余空间,放心扩容!
3️⃣ Local (PVE 概要):房东的自留地

在 PVE 的概要页面,你看到的是宿主机系统盘 (local) 的状态。
- 结论:这块区域是给 PVE 系统自己用的,通常只用来存放 ISO 镜像文件和 VZDump 备份文件。它非常空闲,完全不用担心。
总结一下:规划占了 93%,但实际居住率很低。不用慌,直接扩容!
第二部分:实操扩容(两步走)
既然确定物理硬盘有空间,我们现在就把 1Panel 所在的虚拟机从 32G 扩容到 64G。
1️⃣ 第一步:在 PVE 层面“加大地皮”
这一步相当于把物理硬盘变大,但在虚拟机内部还看不出来。
- 登录 PVE,点击你的 Ubuntu 虚拟机。
- 选择 「硬件 (Hardware)」 -> 「硬盘 (Hard Disk)」。
- 点击上方的 「磁盘操作 (Disk Action)」 -> 「调整大小 (Resize)」。
在弹出的框里输入 增量。
- 注意:这里填的是你要“增加多少 G”。比如原来 32G,想变 64G,就填
32。
- 注意:这里填的是你要“增加多少 G”。比如原来 32G,想变 64G,就填
- 点击确定。
2️⃣ 第二步:在 Ubuntu 内部“装修扩建”
PVE 操作完,虚拟机里的系统还不知道,我们需要通过 SSH 告诉它。
连接到 SSH(或者用 PVE 的控制台),按顺序执行:
A. 检查变化
输入 lsblk,你会看到 sda 硬盘的总大小已经变大了(比如 64G),但下面的分区 sda3 还是原来的大小。
B. 安装扩容工具(防患于未然)
apt update
apt install cloud-guest-utils -yC. 扩容分区 (growpart)
我们要把多出来的空间合并进 sda3(注意:/dev/sda 是盘符,3 是分区号,中间有空格)。
growpart /dev/sda 3如果你看到 CHANGED 字样,说明分区表修改成功。
D. 扩容文件系统 (resize2fs)
最后一步,告诉 ext4 文件系统占满整个分区。
resize2fs /dev/sda3等进度条跑完,再次输入 df -h,你会发现 / 目录的空间瞬间变大了!回到 1Panel 刷新,告警消失。🎉
第三部分:避坑指南 —— Docker 权限报错怎么办?
在折腾完系统或者重启后,有时候我们在 SSH 里运行 docker ps 或者 1Panel 进行某些容器操作时,可能会遇到下面这个报错:
permission denied while trying to connect to the docker API at unix:///var/run/docker.sock这是什么意思?
这说明 Docker 守护进程运行得好好的,但你当前登录的这个用户“没资格”跟它说话。Docker 默认只听 root 用户和 docker 用户组的话。
✅ 解决方法(推荐):
不要每次都输 sudo,我们直接把当前用户加入“管理员群”:
将当前用户加入 docker 组(复制粘贴运行即可):
sudo usermod -aG docker $USER立即生效:
运行下面这行命令刷新组权限(或者直接退出 SSH 重新登录):newgrp docker- 测试:
再次输入docker ps,如果能列出容器列表,说明权限修复成功!
📝 总结
- 别慌:PVE 里的 LVM 93% 只是分配率,看 Local-LVM 的实际占用才是真相。
- 扩容:先在 PVE 界面
Resize,再去虚拟机里growpart+resize2fs。 - 避坑:遇到 Docker 权限拒绝,把用户加入 docker 组即可解决。
- 关于 Discard:虽然网上有很多教程建议开启 SSD 仿真和 Discard 回收空间,但在某些 PVE 环境下会导致 IO 锁死或控制台卡顿,为了稳定起见,普通用户不建议随意开启。
搞定收工!你的 1Panel 又可以愉快地玩耍了。🚀