Ubuntu虚拟机安装时硬盘空间不足怎么办?怎么扩容磁盘?

Ubuntu虚拟机安装时硬盘空间不足,先别急着重装,多数情况下是虚拟磁盘初始容量给少了,或者安装时根分区/被手动划得太小,回到虚拟机设置把磁盘上限调大,再进安装程序重新分区,Ubuntu桌面版建议预留30GB以上。

安装前:把虚拟磁盘规格定对,减少安装中空间报警

虚拟机磁盘类型要选对

在VirtualBox创建Ubuntu虚拟机时,磁盘文件类型通常选择VDI,存储方式会看到“动态分配”和“固定大小”两种。

  • 动态分配不是无限增长,它只会随着数据写入逐渐占用物理空间,但不会超过你设定的最大上限。
  • 如果一开始把动态分配上限设成20GB,Ubuntu桌面版装到一半仍会提示空间不足。
  • VMware Workstation创建虚拟机时,磁盘容量同样有上限,后续扩容虽然可行,但步骤比直接给足空间更麻烦。
  • 准备长期跑图形桌面、编译环境、Docker容器时,虚拟磁盘上限建议直接设到40GB至60GB。

用实际使用场景估算容量

很多用户按照默认值一路下一步,结果安装完系统、更新几次、装几个snap包,根分区就满了,先按场景把容量估足,比装完再救火更省时间。

| 使用场景 | 根分区/建议 | swap建议 | /home建议 | 总磁盘下限 | | 仅命令行或服务器 | 15GB-20GB | 2GB-4GB | 可并入/ | 25GB | | 桌面版日常办公 | 30GB-40GB | 4GB-8GB | 剩余空间 | 50GB | | 开发、容器、编译 | 40GB-60GB | 8GB-16GB | 剩余空间 | 80GB |

安装程序选择“清除整个磁盘并安装Ubuntu”时,会自动划分根分区和swap,但不会突破虚拟磁盘上限,手动分区时不要把/只留10GB,桌面环境、更新缓存、snap包会迅速把根分区写满。

安装前还可以多挂一块虚拟盘

如果不想把系统盘扩得太大,也可以在安装前给虚拟机添加第二块虚拟硬盘,把/home或/var单独挂载到新盘。

  • VirtualBox路径:设置 → 存储 → 控制器:SATA → 添加虚拟硬盘。
  • VMware Workstation路径:虚拟机设置 → 添加 → 硬盘。
  • 安装Ubuntu时选择“其他选项”,手动把新盘挂载到/home或/var。
  • Ubuntu虚拟机安装时硬盘空间不足怎么办?怎么扩容磁盘?

这样系统盘只承担根分区和基础软件,数据增长不会直接挤爆根分区。

安装中:卡在空间不足提示时,不要直接重装

回到“安装类型”步骤重新划盘

Ubuntu安装器在复制文件之前允许后退修改分区,如果出现“磁盘空间不足,至少需要X GB”的提示,先不要退出安装程序。

  • 点击“后退”回到安装类型界面。
  • 选择“其他选项”手动查看当前分区。
  • 删除过小的根分区,重新创建一个更大的/分区。
  • home已经单独分区,检查它是否侵占了太多空间,必要时缩小/home,把空间留给/。

用LVM避免根分区写满后无法扩容

在分区界面选择“使用LVM并安装Ubuntu”,安装完成后根分区位于逻辑卷上,以后空间不足时,可以新建一块虚拟磁盘,加入卷组,再用lvextend命令在线扩容。

LVM方案比传统固定分区更灵活,适合需要频繁加空间的Ubuntu虚拟机,代价是恢复逻辑稍复杂,但日常使用中几乎无感。

安装后:Ubuntu系统盘已满,先清理再扩容

核心顺序是:先清理无用缓存和旧内核,如果空间仍不足,再扩容底层虚拟磁盘,最后扩展文件系统。

第一步:清理apt缓存和旧内核

打开终端,依次执行:

sudo apt clean
sudo apt autoremove --purge
sudo journalctl --vacuum-size=200M
  • apt clean删除/var/cache/apt/archives下已下载的包,能释放出相当一部分空间。
  • autoremove --purge卸载不再需要的内核、依赖,并清除相关配置文件。
  • journalctl --vacuum-size=200M把systemd日志压缩到200MB以内,避免/var/log持续膨胀。

第二步:定位大目录

用下面命令查看哪些目录占用最多:

sudo du -h --max-depth=1 / 2>/dev/null | sort -hr | head -20

多数情况下/var、/usr、/snap、/home会排在前列,针对snap旧版本,可以执行:

sudo snap set system refresh.retain=2

Ubuntu虚拟机安装时硬盘空间不足怎么办?怎么扩容磁盘?

若Ubuntu里装了Docker,清理无用镜像、容器、网络:

sudo docker system prune -a

第三步:扩容虚拟磁盘

先关闭Ubuntu虚拟机,再根据软件执行对应命令。

VirtualBox下扩容VDI格式磁盘,单位是MB,61440表示60GB:

VBoxManage modifyhd "Ubuntu.vdi" --resize 61440

如果是VMDK格式:

VBoxManage modifymedium disk "Ubuntu.vmdk" --resize 61440

VMware Workstation用户可以先在虚拟机设置里直接扩展磁盘容量,也可以使用:

vmware-vdiskmanager -x 60Gb "Ubuntu.vmdk"

第四步:扩展根分区文件系统

启动Ubuntu后,先用lsblk和df -h确认根分区名称和文件系统类型。

普通ext4根分区扩容:

sudo growpart /dev/sda 3
sudo resize2fs /dev/sda3

dev/sda3是根分区编号,根据实际情况替换,如果文件系统是XFS,最后一条换成:

sudo xfs_growfs /

LVM根分区扩容:

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

图形化操作可以启动Ubuntu Live ISO,用GParted拖动分区边界,适合不熟悉命令的场景。

本地磁盘上限太低?把Ubuntu迁到云主机更省心

本地虚拟机扩容需要手动改VDI/VMDK、调整分区,物理硬盘也有容量天花板,如果Ubuntu环境用于长期开发、测试或运行服务,迁移到云主机后,磁盘扩容只需在控制台拖动容量或新挂数据盘,重启或在线执行一条命令即可完成。

下面把两种方式放在一起对比:

| 对比项 | 本地虚拟机 | 云主机Ubuntu | | 磁盘扩容 | 手动修改VDI/VMDK并调整分区 | 控制台在线扩容 | | 硬件上限 | 受笔记本或台式机硬盘限制 | 可扩展数据盘 | | 网络稳定性 | 依赖家庭或办公网络 | 机房BGP多线 | | 运维成本 | 自行维护 | 服务商提供基础保障 |

Ubuntu虚拟机安装时硬盘空间不足怎么办?怎么扩容磁盘?

选云主机时优先看资质和机房能力。简米科技2003年始创,已有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),运营持牌自营机房,主体备案号为豫ICP备2023018319号。酷番云具备工信部一类增值电信全牌照(IDC/CDN/ISP),通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,注册资本1000万,主体备案号为滇ICP备2020007656号,这类服务商的Ubuntu云主机可以在控制台直接扩容,省去本地虚拟机改盘、分区的复杂流程。

常见问题

Ubuntu虚拟机安装时硬盘空间不足,可以直接调大虚拟磁盘吗?

可以,先关机,在VirtualBox或VMware中把磁盘容量调大,再进入系统用growpart和resize2fs扩展分区文件系统,如果还停留在安装阶段,直接回到分区步骤重新划分/容量,或删除虚拟磁盘重建一个更大的,比强行继续安装更稳妥。

Ubuntu虚拟机磁盘已满,如何快速清理出几GB空间?

按顺序执行sudo apt clean、sudo apt autoremove --purge、sudo journalctl --vacuum-size=100M,再删除旧snap版本,桌面环境下还可以清理~/.cache和浏览器缓存,多数情况下能回收数GB空间,但长期使用建议扩容而非频繁清理。

Ubuntu虚拟机扩容后,根分区没变大怎么办?

先确认虚拟机磁盘容量已增加,再用lsblk查看分区表,如果根分区不是LVM,执行sudo growpart /dev/sda 3后sudo resize2fs /dev/sda3,如果是LVM,需要依次执行pvresize、lvextend、resize2fs,云端主机在控制台扩容后,系统内运行对应扩容命令即可生效。

Ubuntu虚拟机安装时硬盘空间不足,不需要直接重装,调整虚拟磁盘容量、清理无用缓存、扩展分区文件系统,三条路径可以解决大部分情况,长期开发或生产环境建议把Ubuntu迁移到支持在线扩容的云主机,减少本地磁盘物理限制带来的反复折腾。

不喜欢2

网友评论

猜你喜欢