Hyper-V 无法压缩 VHD 的可能原因是什么?

Nic*_*Nic 9 vhd hyper-v-server-2008-r2

我在运行 Hyper-V Server 2008 R2 的主机上托管多个虚拟机。大约 16 个月前,这些磁盘最初是在不同的服务器(2008,而不是 R2)上配置的,一年前迁移到该服务器上。大多数来宾都运行 Windows 7。

最近,我将 VHD 大小与来宾报告的已用空间进行了比较,并注意到有几台机器的 VHD 文件比实际需要的大 50-100%。所以我决定尝试压缩 VHD 文件以释放主机上的空间。我按照我在互联网上找到的说明进行操作,大致如下:

  1. 在来宾机器上运行 CHKDSK
  2. 在客户机中运行碎片整理(Windows 内置碎片整理)
  3. 关闭客人
  4. 在 Hyper-V 管理器中打开“编辑磁盘...”工具
  5. 选择感兴趣的 VHD 并选择压缩它

我第一次尝试这个时,它完美地工作,并将我的 VHD 的大小减少了大约 50%。但是对于每个其他来宾的磁盘,我收到此错误消息:

The server encountered an error trying to edit the virtual disk.

'The system failed to compact 'C:\example.vhd'. Error Code: The requested
operation could not be completed due to a file system limitation
Run Code Online (Sandbox Code Playgroud)

没有来宾启用 NTFS 压缩。这些磁盘没有快照。还有什么可能导致此错误?

编辑:任何描述自动检查动态 VHD 大小的解决方案的人的奖励积分。

ton*_*oth 7

从来宾中删除卷影副本。这样就可以了!

vssadmin delete shadows /all
Run Code Online (Sandbox Code Playgroud)


小智 7

为了互联网搜索整合的利益:最终发现这个链接是一种在 HyperV compact 没有时有效的方法:https : //fiddley.wordpress.com/2014/01/27/dynamically-expanding-vhd-not-compacting-超v/

在管理命令提示符下,运行 DISKPART

在 DISKPART 命令提示符下

select vdisk File=”I:\path\to\your.vhd”
attach vdisk readonly
compact vdisk
detach vdisk
Run Code Online (Sandbox Code Playgroud)