服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-11 简米科技 3,725 字 9 分钟阅读

虚拟机安装Linux时,硬盘空间不足怎么办?,怎么给虚拟机扩容

导读虚拟机安装Linux时硬盘空间不足,最有效的处理顺序是:先扩容虚拟磁盘,再扩展分区,最后扩展文件系统;如果只是安装阶段选多了软件,改用最小安装也能绕开, 这个问题通常不是Linux本身“占地方”,而是虚拟磁盘初始容量给得太小,或者分区没有吃满整块盘,先判断:空间不足到底卡在哪一层虚拟机里的“硬盘”有三层概念,只……

虚拟机安装Linux时硬盘空间不足,最有效的处理顺序是:先扩容虚拟磁盘,再扩展分区,最后扩展文件系统;如果只是安装阶段选多了软件,改用最小安装也能绕开。 这个问题通常不是Linux本身“占地方”,而是虚拟磁盘初始容量给得太小,或者分区没有吃满整块盘。

先判断:空间不足到底卡在哪一层

虚拟机里的“硬盘”有三层概念,只改其中一层,df -h往往不会变。

层级 检查方式 典型现象 处理方向
虚拟化层 VMware设置、VirtualBox介质管理、qemu-img info 虚拟机设置里显示磁盘已满 扩大vmdk、vdi、qcow2容量
分区层 lsblk、fdisk -l 磁盘变大了,分区还是旧大小 用growpart或fdisk扩分区
文件系统层 df -h、resize2fs、xfs_growfs 分区变大了,挂载点容量没变 扩展ext4或XFS文件系统
安装临时层 /var/cache、/tmp、ISO缓存 安装到一半提示空间不足 清理缓存、换最小安装、增加磁盘

业内专家指出,虚拟机磁盘扩容不是改一个数字,而是虚拟化层、分区层、文件系统层三层联动,少做一层,问题就会换个姿势出现。

虚拟机安装Linux时硬盘空间不足怎么办?按这个顺序扩容

第一步:在虚拟机设置里扩大虚拟磁盘

先关机,再做快照,动态分配的虚拟磁盘要确认宿主机剩余空间足够。

  • VMware Workstation:虚拟机设置 -> 硬盘 -> 扩展 -> 输入新容量。
  • VirtualBox:关闭虚拟机,执行VBoxManage modifymedium disk "路径/disk.vdi" --resize 51200,单位是MB。
  • KVM/QEMU:qemu-img resize disk.qcow2 +20G,然后启动虚拟机。
  • Hyper-V:编辑磁盘 -> 扩展 -> 输入新大小。

如果虚拟机有快照链,先合并或删除旧快照,快照会阻止底层磁盘扩容,这是很常见的坑。

虚拟机安装Linux时,硬盘空间不足怎么办?,怎么给虚拟机扩容

第二步:进Linux扩展分区

登录系统后先看现状:

lsblk
df -h
sudo fdisk -l

假设系统盘是/dev/sda,根分区是/dev/sda3,并且使用了LVM,常见操作如下:

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

如果文件系统是XFS,最后一步换成:

sudo xfs_growfs /

如果没有LVM,只是普通分区:

sudo growpart /dev/sda 2
sudo resize2fs /dev/sda2

growpart负责扩分区,resize2fs负责扩ext4文件系统,两步都做完,df -h才会看到新容量。

第三步:不想动原分区,就新增一块虚拟磁盘

系统盘分区复杂,或者你只想给数据腾地方,新增磁盘更稳。

  • 在虚拟机设置里添加一块新硬盘,比如20GB。
  • 启动后执行lsblk,确认新盘是/dev/sdb。
  • 分区、格式化、挂载:
sudo fdisk /dev/sdb
sudo mkfs.ext4 /dev/sdb1
sudo mkdir /data
sudo mount /dev/sdb1 /data
blkid /dev/sdb1
sudo vim /etc/fstab

把blkid得到的UUID写进/etc/fstab,比写/dev/sdb1更可靠。

VMware虚拟机Linux磁盘扩容详细步骤

VMware用户最多,单独说一遍。

  1. 关闭虚拟机,不要挂起。
  2. 右键虚拟机 -> 设置 -> 硬盘 -> 扩展。
  3. 输入新容量,比如从40GB扩到80GB。
  4. 如果提示快照问题,进快照管理器删除或合并。
  5. 启动Linux,执行lsblk确认磁盘容量变化。
  6. 按LVM或普通分区方式扩展分区和文件系统。
  7. 最后用df -h验证挂载点容量。

VMware的“扩展”只改虚拟磁盘文件,Linux里面的分区和文件系统不会自动跟着变,很多人卡在这里,以为扩容失败,其实是只做了第一层。

VirtualBox Linux虚拟硬盘扩容和新增磁盘哪个好

这两种方案没有绝对好坏,看场景。

虚拟机安装Linux时,硬盘空间不足怎么办?,怎么给虚拟机扩容

对比项 扩容原虚拟硬盘 新增虚拟硬盘
适合场景 系统盘、根分区不够 数据盘、日志盘、测试数据
操作风险 涉及分区调整 基本不动原系统
命令复杂度 中等 中等
回滚难度 依赖快照 直接移除新盘
推荐人群 想保持单盘结构 想快速加空间

VirtualBox旧版命令是VBoxManage modifyhd,新版建议用modifymedium,如果虚拟机启用了快照,先处理快照,再扩磁盘。

本地电脑虚拟机Linux系统磁盘空间不足如何清理和迁移

清理安装缓存和日志

先找出谁在占空间:

df -h
sudo du -sh /var/ | sort -h
sudo du -sh /home/ | sort -h

常见清理命令:

sudo apt clean
sudo yum clean all
sudo journalctl --vacuum-size=200M
sudo apt autoremove --purge

旧内核、浏览器缓存、Docker镜像、测试数据包,通常能释放不少空间,安装Linux时如果选择了带GUI的桌面环境,空间占用会明显高于最小化安装。

迁移虚拟磁盘到更大分区

宿主机C盘快满了,可以把vmdk、vdi、qcow2移到D盘或移动硬盘。

  • VMware:关闭虚拟机,移动磁盘文件,重新指向新路径。
  • VirtualBox:介质管理 -> 移动磁盘,或复制后重新挂载。
  • KVM:直接移动qcow2,修改XML里的磁盘路径。

迁移前关闭虚拟机,不要一边运行一边复制磁盘文件。

云服务器和本地虚拟机Linux磁盘扩容价格对比

本地虚拟机扩容成本主要是宿主机硬盘空间,多数情况下,只需要宿主机有剩余容量,扩容价格几乎为零。

云服务器扩容按云盘容量和类型计费,ESSD、SSD、高效云盘单价不同,华北、华东、华南等地域也可能有小幅差异,快照、备份、镜像会另外计费,若只是本地开发测试,优先扩宿主机磁盘或新增虚拟磁盘,若生产环境在云上,先看云盘是否支持在线扩容,再决定是否停机。

虚拟机安装Linux时,硬盘空间不足怎么办?,怎么给虚拟机扩容

近年来,很多云厂商支持在线扩云盘,但扩完仍要进系统执行growpart和resize2fs或xfs_growfs。

扩完还是没变大?排查清单

  • 虚拟磁盘容量是否真的改了:lsblk看磁盘总大小。
  • 分区是否扩展:fdisk -l看分区结束扇区。
  • LVM是否执行了pvresize:pvs、vgs、lvs。
  • 文件系统是否扩展:ext4用resize2fs,XFS用xfs_growfs。
  • 是否扩错挂载点:根分区和/home可能是不同逻辑卷。
  • 是否有快照链:快照未合并时,扩容可能不生效。
  • 是否重新扫描:必要时执行partprobe或echo 1 > /sys/class/block/sda/device/rescan。

收束:三层联动才算真正扩容

虚拟机设置变大,只是第一步,分区变大,是第二步,文件系统变大,df -h才会给你想要的数字,安装Linux前把虚拟磁盘给足,安装时选最小化,后续扩容会轻松很多。

虚拟机安装Linux硬盘空间不足常见Q&A

虚拟机安装Linux时硬盘空间不足怎么办,能不重装吗?

能,系统盘扩容后,用growpart扩分区,再用resize2fs或xfs_growfs扩文件系统,分区表特殊、快照链复杂、宿主机空间不足时,先备份再操作,多数普通场景不需要重装。

扩容后df -h还是没变大是什么原因?

常见原因是只扩了虚拟磁盘,没扩分区;或者只扩了分区,没扩文件系统;LVM场景下漏了pvresize和lvextend,也有可能是快照链阻止扩容,或者命令执行在错误的设备上,按lsblk、pvs、vgs、lvs、df -h逐层核对。

虚拟机磁盘扩容会丢数据吗?

正常执行growpart、resize2fs、xfs_growfs一般不会丢数据,风险集中在分区表修改、快照合并、宿主机空间不足、误操作设备名,扩容前做快照或完整备份,确认宿主机有足够空间,再执行分区和文件系统扩展,行业共识认为,任何分区调整前都应保留可回滚副本。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱