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

Mc虚拟机满了怎么办?如何清理或扩容空间?,虚拟机扩容怎么做

导读虚拟机磁盘满了,核心解法只有两条路:清理无用文件回收空间,或者直接扩容虚拟机磁盘;具体选哪条,取决于你的Mac剩余空间和虚拟机用途,很多Mac用户遇到虚拟机提示“磁盘已满”时,第一反应是删软件、清缓存,折腾半天发现只是杯水车薪,真正的问题往往出在虚拟机磁盘镜像文件本身,它像一个膨胀的气球,删掉里面的文件并不会让……

虚拟机磁盘满了,核心解法只有两条路:清理无用文件回收空间,或者直接扩容虚拟机磁盘;具体选哪条,取决于你的Mac剩余空间和虚拟机用途。

很多Mac用户遇到虚拟机提示“磁盘已满”时,第一反应是删软件、清缓存,折腾半天发现只是杯水车薪,真正的问题往往出在虚拟机磁盘镜像文件本身,它像一个膨胀的气球,删掉里面的文件并不会让气球自动缩小,下面我把清理和扩容两条路都拆开讲透,让你一次性解决问题。

为什么虚拟机磁盘越用越大,删了文件也不见瘦身?

搞清楚原理,你才能判断自己该清理还是该扩容,虚拟机硬盘不是一个物理分区,而是一个文件,常见格式有.vmdk(VMware)、.qcow2(QEMU/KVM)、.vdi(VirtualBox),这些文件默认是动态分配的,也就是用多少占多少,但删掉文件后,释放的空间不会自动归还给Mac。

打个比方,虚拟机像一间堆满杂物的房子,你往里扔了大衣柜(50GB),后来觉得不合适想扔掉,柜子确实不在了,但房子本身没变形,Mac看到的还是那个50GB的“大个头”,这就是为什么你删了二三十GB文件,虚拟机文件纹丝不动。

另外一个隐藏大户是快照,不少用户开了时间机器备份或者虚拟机快照,快照会锁定磁盘状态,导致空间无法释放,行业共识认为,快照是虚拟机空间异常增长的最大元凶之一。

还有Mac特有的一层坑:APFS快照,如果你的虚拟机文件放在APFS格式的外置硬盘或Mac自带硬盘上,Rapid Security Response或Time Machine可能悄悄创建了APFS本地快照,导致磁盘明明显示有空间,却无法分配更多给虚拟机,这类问题在Apple Silicon Mac上更常见。

先做减法:清理虚拟机内部空间

清理的目标不是“看起来干净”,而是让被删除的文件产生的空洞可以被Mac回收,具体分三步走。

第一步:先清理访达和系统垃圾

进入虚拟机系统,打开“关于本机”查看存储空间,先删掉以下内容:

  • 废纸篓里的文件(很多人忽略)
  • 浏览器缓存、下载文件夹里的安装包
  • ~/Library/Caches下的缓存文件
  • 旧版iOS备份、无效的Xcode DerivedData
  • 已经不需要的Docker镜像和容器

在Windows虚拟机里,可以用系统自带的“磁盘清理”工具,勾选所有项目,包括Windows更新清理,在Linux虚拟机里,用sudo apt clean和sudo journalctl --vacuum-size=100M清理包缓存和日志。

第二步:用系统的清理工具把空洞“折叠”起来

这一步是关键,清理完内部文件后,你需要告诉虚拟机“把磁盘上还没用的空间标记为零”,不同虚拟机有不同做法。

VMware Fusion用户,直接去“虚拟机设置”-“硬盘”-“整理磁盘”,Apple Silicon Mac上这一操作可能会禁用某些特性,实测下来M系列芯片上建议用下面的命令行替代。

Parallels Desktop用户,菜单栏选“操作”-“优化”-“释放空间”,软件会自动压缩镜像。

对于QEMU/KVM或者UTM用户,命令行格式如下(在Mac的终端里操作,不是虚拟机里):

qemu-img convert -O qcow2 -c 原始镜像.qcow2 压缩后镜像.qcow2

这条命令会重写整个磁盘镜像,把所有被标记为零的块真正清掉,压缩效果显著,一个80GB的qcow2文件,通常能压回40GB。

第三步:用零填充把剩余空间变成“可压缩区域”

如果你用的是VirtualBox或VMware,想要极致瘦身,可以让虚拟机用工具把剩余空间写满零。

  • Windows虚拟机:下载SDelete(微软官方工具),管理员权限运行c:\sdelete64.exe -z c:
  • macOS虚拟机(如果装的是macOS):用磁盘工具抹掉空闲空间,选“零数据”
  • Linux虚拟机:执行dd if=/dev/zero of=~/zero.fill bs=1M; rm ~/zero.fill

注意:零填充会很耗时,一个50GB的磁盘可能要跑一两个小时,建议睡前挂着跑。

跑完零填充后,回到Mac宿主机,对VMware虚拟机执行vmware-vdiskmanager -k,对VirtualBox执行VBoxManage modifymedium disk --compact。

扩容方案一:直接加大虚拟机原始磁盘

如果清理完仍然不够用,或者你的需求就是需要更多空间,扩容是对的路。

调整虚拟机设置里面的硬件虚拟磁盘

在VMware Fusion中依次点击“虚拟机”-“设置”-“硬盘”,在这里把磁盘容量调大,VirtualBox用户依次点击“设置”-“存储”,选中虚拟磁盘文件,调整大小,Parallels Desktop则在“硬件”-“硬盘”里直接拖动滑块。

这里有几个常见坑要提醒你:

  • 扩容需要关闭虚拟机,不能在运行中操作
  • 如果创建虚拟机时选择了“拆分磁盘”,扩容可能失败,建议用单文件
  • 给虚拟机扩容是向上调整,可以加大但无法缩小

在虚拟机里面对系统分区进行扩展

只是改了硬件虚拟磁盘大小,虚拟机系统内部不会自动识别,Windows虚拟机和Mac虚拟机需要到“磁盘管理”或“磁盘工具”里扩展分区,Windows系统用Win+X键打开磁盘管理,右键点击C盘,选择“扩展卷”,按向导走完。

macOS虚拟机则打开“磁盘工具”,选择对应卷宗,点击“分区”,拖动图形化滑块调整大小。

Linux虚拟机用GParted工具调整分区,动作比较精细,操作前一定先备份重要数据。

扩容后的空间仍一直不够用?检查这三个隐藏问题

如果扩了容还是被提示磁盘满,检查以下三点:

  • 虚拟机的交换文件或休眠文件是否占用了大量空间(Windows的pagefile.sys和hiberfil.sys常见)
  • 是否有一个快照在持续膨胀,它锁定了旧数据(可在VMware的“快照”面板中删除无用快照)
  • 虚拟机所在物理卷剩余空间是否充足,如果Mac硬盘本身只剩不到10GB,虚拟机再大也无济于事

修复方法也很直接:把虚拟机的内存交换文件手动移动到外置硬盘,或者干脆关闭系统还原。Windows虚拟机建议把系统还原空间限制在总磁盘的5%以内。

扩容时容不得半点马虎的两个原则

业内专家指出,扩容虚拟机磁盘是所有虚拟机操作中风险最高的操作之一,主要风险点是分区表损坏或引导失败,两点务必遵守:第一,操作前务必备份,最简单的做法是复制一份.vmdk或.qcow2文件到外置硬盘(注意关闭虚拟机的状态再做);第二,不要尝试缩小系统分区,很容易导致数据不可逆损坏。

扩容方案二:换一块新硬盘,把旧数据迁移过去

如果你的虚拟机采用了UEFI启动模式,或者动态磁盘文件已经混乱不堪,直接在原盘上扩容可能失败,这时候,更稳妥的方式是新建一块独立虚拟硬盘,把旧盘数据迁移过去。

具体实现方式如下:

在虚拟机设置里添加一块新硬盘,容量给到原盘的两倍或你需要的最终容量,启动虚拟机后,用rsync或在Windows下用镜像工具分区克隆,最后把旧盘从设置中移除,好处是完整保留了系统文件、文件权限以及引导记录,坏处是需要多一步操作。

会稍微复杂一些,但结果非常干净,而且新盘没有碎片,性能通常优于扩出来的旧盘。

终极技巧:对虚拟机文件本身做“深度瘦身”

这一步连接到Mac宿主机层面的优化,即使你在虚拟机内部做了清理和压缩,Mac上依然会留存一些不必要的备份文件、日志文件等,在Finder中,前往~/Library/Containers/目录下,找到相应虚拟机应用对应的文件夹删除缓存,可以多释放不小空间。

具体的对应关系如下:

  • VMware Fusion:~/Library/Application Support/VMware Fusion/
  • Parallels Desktop:~/Library/Parallels/
  • VirtualBox:~/Library/VirtualBox/

Parallels Desktop会在上面目录中存放备份和快照文件,VirtualBox则存放扩展包和日志,常年不清理的话,三五个GB的额外占用很常见。

如果你的虚拟机运行在APFS卷上,可以在终端中执行tmutil listlocalsnapshots /查看APFS本地快照,如果有快照残留,执行tmutil deletelocalsnapshots 时间戳删除,避免快照占住空间导致虚拟机无法扩展。

如果经常遇到磁盘空间吃紧,建议在Mac上常备一个磁盘占用分析工具,比如OmniDiskSweeper或GrandPerspective,用图形化方式一眼找出大文件,比在访达里一个个找要高效得多。

清理和扩容的最佳实践频率

优先清理还是扩容,取决于你的使用场景,如果你的Mac剩余空间充足(剩余超过总容量的20%),建议直接扩容,省时省心,一步到位,如果Mac自身存储空间所剩无几,那就以清理为主,压缩镜像体积后,再做扩容。

养成两个习惯能极大减少后续麻烦:

  • 每月跑一次虚拟机内部的磁盘清理和镜像压缩
  • 创建虚拟机时,按未来两年预期的数据量的1.5倍来设置磁盘大小
  • 重要数据勤备份、及时删除过期快照

不要等到磁盘满了再临时抱佛脚,虚拟机运行中突然写入失败,极有可能损坏文件系统,届时解决问题的难度比扩容或清理更大。

Q&A:关于Mac虚拟机空间问题的高频疑问

清理工具和扩容工具哪个效果更明显?

完全不同维度的操作。清理工具(如VMware的“整理磁盘”、VirtualBox的compact命令)只能回收虚拟机内部的可用空洞,无法改变总容量上限,扩容工具是真正改变磁盘分配的上限值,如果你的总容量只有60GB,即使清理得再彻底,最多也只有60GB可用;而扩容后,容量上限提升,内部空间重新宽裕,简单说,清理解决“明明没用满却提示不足”的后续问题,扩容解决“总容量不够”的根本问题。

如果日常文件增长较快,优先扩容,如果只是临时需要一些空间存放文件,先清理,压缩后观察三五天再决定。

为什么虚拟机扩容后总容量变了,但可用空间没有增多?

这种情况大多出现在Windows虚拟机和部分Linux虚拟机中,原因在于,你修改的只是虚拟磁盘的“外壳”大小,系统内的分区表仍然保持原样,没有识别出新增的容量,解决方法是到操作系统的磁盘管理工具里执行“扩展卷”或“调整分区大小”的操作,把新空间消化进现有分区。

还有另一种常见原因是,系统内开启了BitLocker或LUKS加密,磁盘管理工具无法在加密卷上直接扩展分区,你需要在加密工具里解锁卷之后重新执行扩展操作,或者关闭加密后再调整。

Mac虚拟机空间不足可以直接删除哪些大文件?

优先检查三个目录:~/资源库/Containers/内对应虚拟机应用目录中的缓存和日志、~/资源库/Application Support/下的虚拟机快照和备份文件、~/资源库/Logs/下的虚拟机运行日志,这些是虚拟机本体在Mac侧占用的额外空间,与虚拟机内部磁盘无关,如果虚拟机的安装镜像(如Windows的ISO)依然存在某个文件夹中,找到并移动到外置硬盘或删除,往往能释放出数十GB空间。

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