缩小一个vhdx步骤

缩小一个vhdx步骤

任何人试图从动态分配vhdx中回收已删除的文件所占的空间终将失败
对剩余空间填0(sdelete)、碎片整理(defrag /D )、Trim机制(defrag /L)均不生效
普遍的说法认为要对NTFS卷进行缩小,最后也证实了这点

在虚拟机的Windows系统中,磁盘管理器,缩小,往往会不可缩小,NTFS卷上有“不可移动的文件”
以下是一个确定可行的回收空间流程,已用空间55G,实际占用98G的vhdx缩小到了55G。

0. 有条件的话,添加第二个vhdx并且把虚拟内存页面文件从系统盘改放到新vhdx上,重新启动应用设置,这可以进一步缩小vhdx体积

  1. 准备一个运行Linux的虚拟机,比如Debian安装gparted或是使用gparted live CD那就不需要装系统
  2. Windows虚拟机关机前需要事先记住已用空间,在Linux工具中有时不能准确识别可以缩小到的最小大小,会导致缩小失败
    如果客户机系统已经关机,可以只读挂载Mount-VHD "vhdx路径" -ReadOnly,在磁盘管理器里右键检查已用空间,再右键磁盘编号选分离 vhd取消挂载
  3. 关机后,启动Linux虚拟机,启动后在Linux虚拟机的SCSI控制器上新增一个vhdx,这会把要缩小的Windows虚拟机vhdx热插拔加入进Linux
  4. 启动gparted,对系统分区进行缩小,一般是中间那个最大的,两侧的Windows保留小分区不要动
  5. 为了系统稳定,在记住的已用空间基础上增加1GB进行缩小,为了方便操作在千位上增加1000MiB我认为也是可行的
  6. 缩小后在空白处创建一个新分区,分区格式选择cleared,意思是不使用任何文件系统
  7. 点击应用让gparted执行提交的操作
  8. 对新分区写0,记住这个新创建的分区路径,比如/dev/sdc5,执行sudo dd if=/dev/zero of=/dev/sdc5 bs=4096 status=progress
    其中bs=4096是假设分区是4K对齐的,可以提高执行速度,不指定bs参数时默认512
  9. dd执行完后回到gparted,将创建的新分区删除并点击应用再次提交
  10. 关闭gparted,到Linux虚拟机设置,从SCSI控制器上删除这个vhdx,这会热插拔移除vhdx
  11. 按预先填0模式缩小vhdx,执行命令Optimize-VHD "vhdx路径" -Mode Prezeroed
  12. 结束后,vhdx应该确实缩小了,开机,右键分区,属性,工具,进行一次扫描检查错误
    我发现即使提示需要修复,但我选择此时先不修复,再扫描不会再提示需要修复,重启后扫描也不会提示需要修复
  13. 使用虚拟机内的系统磁盘管理器增大空间
  14. 此时vhdx中有一定的文件系统碎片比如25%,如果需要进行碎片整理,整理后55G已用空间会产生65G的vhdx大小
    在固态硬盘上,不需要这样做
编辑于 2026-07-12 · 著作权归作者所有
相关文章
苹果笔记本电脑安装 UTM虚拟机 + VMware虚拟机 + 安装Windows系统除了运行其他操作系统,虚拟机软件还有哪些不为人知的「黑科技」用法?高中毕业要换新电脑了,装linux然后kvm跑windows虚拟机有没有搞头?没有MacBook也能用macOS,Windows虚拟机装macOS详细教程!NAS虚拟机全指南:从品牌支持到平台选型,新手也能玩转 All in one现在的桌面虚拟化都使用哪种云终端?VMware装Win10教程:从创建虚拟机到进入桌面,一步不落 分享VMware虚拟机安装Win10的完整过程,跟着点几下鼠标就能搞定 手把手教你用VMware装Win10系统,镜像和安装包都有传送门大学生比较认真地学习Linux选择双系统,u盘启动还是虚拟机?想弄一台服务器,希望能开五个虚拟机跑软件。有啥好建议。选配置纯小白?有pe系统推荐吗?想在我自建的 NAS 主机里运行飞牛 OS 以及旁路由,推荐安在 WIN 系统虚拟机里还是直接装飞牛?有pe系统推荐吗?为什么许多电脑都是默认关闭CPU虚拟化?国内哪一家的虚拟主机性价比最高?关于虚拟机的问题!排除虚拟机,Linux下有什么免费项目可以稳定、完美、高效运行Windows程序?VMware虚拟机安装Windows 10装机流程?2026最新!Mac 安装Windows零成本教程,新手也能上手高中毕业要换新电脑了,装linux然后kvm跑windows虚拟机有没有搞头?想在家组一台服务器主机,用于搭建虚拟化平台,有推荐的配置吗?