问题类似这样
存储空间不足
如果 Docker 运行环境的磁盘空间不足,拉取的镜像可能会被自动清理,导致重复下载。可以检查磁盘使用情况:
df -h
docker system df
如果空间不足,可以清理一些不用的容器和镜像:
docker system prune -a
在df-h之后可以看到:
你的 / 根分区(/dev/mapper/ubuntu–vg-ubuntu–lv)总共 9.8G,已经用了 7.2G,只剩下 2.2G 可用空间,使用率 78%。
虽然空间还没满,但 GitLab CE 镜像通常比较大(可能超过 2GB),所以 磁盘空间可能不够,导致 docker pull 失败并重新下载。
扩容磁盘
关闭虚拟机
设置40G
然后他提示还要重新设置分区
重新重启虚拟机连接后
键入
lsblk
这里显示18.2g说明还没分配
1. 扩展 sda3 分区
- 接着键入
sudo growpart /dev/sda 3
- 输入
lsblk
检查
发现容量扩充成功
2. 扩展 LVM 物理卷
sudo pvresize /dev/sda3
让 LVM 识别新的空间然后检查
sudo vgdisplay
可以看到
Free PE / Size
变大了
3. 扩展逻辑卷
- 找到LVM逻辑卷
sudo lvdisplay
- 拓展
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
4.扩展文件系统
查看使用的是那种文件系统
df -Th /
如果 /
使用的是 ext4 文件系统:
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
如果 /
使用的是 xfs:
sudo xfs_growfs /
- 再次df -h,可以看到比一开始大了很多
成功
认识LVM
/dev/mapper/ubuntu--vg-ubuntu--lv
是你的 Linux 逻辑卷(LVM 逻辑卷),它本质上是你的 根分区 /
,存放你的操作系统和文件。
简单理解 LVM(逻辑卷管理)
LVM(Logical Volume Manager)是一种灵活的磁盘管理方式,可以让你方便地扩展或缩小磁盘大小。
在你的系统里:
/dev/sda3
是你的物理分区(存储数据的实际硬盘空间)。ubuntu-vg
是一个 卷组(VG,Volume Group),它把sda3
里的空间汇总起来。ubuntu-lv
是 逻辑卷(LV,Logical Volume),它是你实际使用的磁盘,相当于 Windows 里的 C 盘。/dev/mapper/ubuntu--vg-ubuntu--lv
就是这个逻辑卷的设备路径,最终被挂载到/
(根分区)。
为什么用 LVM?
- 方便扩展:你这次成功扩容,就是因为用了 LVM,可以动态调整大小。
- 支持多个物理硬盘:LVM 允许你把多个硬盘合并成一个存储池,比如
/dev/sda3
+/dev/sdb1
可以变成一个大分区。 - 快照功能:LVM 可以创建“快照”,让你在升级或维护前备份数据,出问题时可以快速恢复。
总结
/dev/mapper/ubuntu--vg-ubuntu--lv
是你的 根分区/
,但它是 LVM 逻辑卷,而不是直接使用sda3
。- 你这次扩容成功,是因为 LVM 让你可以动态调整分区大小! 🎉
如果你想更直观地理解,可以运行:
lsblk
它会显示 LVM 结构,比如:
sda 40G
├─sda1 1M
├─sda2 1.8G /boot
└─sda3 38.2G
└─ubuntu--vg-ubuntu--lv 38G /
这说明 /
现在正确地扩展到了 38G! 🚀