压缩动态 VHD 磁盘映像

压缩动态 VHD 磁盘映像

我有一台在 WS2012 上运行的 Hyper-V 服务器。我有一台作为动态磁盘运行的 Windows 7。我删除了其中的文件和其他内容,以尝试节省磁盘空间并减小大小。但是,即使我关闭它并在 VHD 上运行缩减,大小也不会缩小。

我是否需要做一些其他的事情来缩小 VHD,以便可以防止 VM 因磁盘空间不足而崩溃?

编辑: 我还安装了磁盘并运行了DEFRAG: E: /V /X磁盘碎片整理,希望我可以压缩 .VHD,但其大小仍然超过驱动器内实际使用的空间 30GB。

在运行 Hyper-V 的缩减选项之前,我是否需要将 VHD 的空白空间清零?

磁盘空间不足: 在此处输入图片描述

虚拟硬盘(VHD): 在此处输入图片描述

VHD 内的磁盘:

在此处输入图片描述

PS C:\Users\Administrator> get-vhd

cmdlet Get-VHD at command pipeline position 1
Supply values for the following parameters:
Path[0]: X:\NAME.VHD
Path[1]:


ComputerName            : NAME
Path                    : X:\NAME.VHD
VhdFormat               : VHD
VhdType                 : Dynamic
FileSize                : 86707423744
Size                    : 256060514304
MinimumSize             : 256059113472
LogicalSectorSize       : 512
PhysicalSectorSize      : 512
BlockSize               : 2097152
ParentPath              :
FragmentationPercentage : 16
Alignment               : 0
Attached                : False
DiskNumber              :
IsDeleted               : False
Number                  : 

答案1

Windows Server 2012 和新的 VHDX 文件格式引入了对缩小 Hyper-V 虚拟磁盘文件的原生支持。如果您使用的是旧版 VHD 格式,则需要先将文件转换为 VHDX。

在开始之前,如果可能的话,请确保您有一份好的备份。您不需要它,但这样做总是明智的。

这两个操作都可以使用 Hyper-V 管理器 UI 执行。必须先关闭虚拟机;这些操作不能在线执行。选择 VHD 并选择“编辑”。生成的向导有转换选项和收缩选项。运行向导一次进行转换,然后再次运行以收缩新的 VHDX。

您也可以使用 Powershell 使用 cmdlet Convert-VHD 和 Resize-VHD 执行相同操作。

您可以在此页面上找到详细的分步说明;

http://www.techrepublic.com/blog/data-center/working-with-and-resizing-windows-server-2012-vhds/

我应该补充一点,转换为 VHDX 通常没有任何缺点;它是一种更现代、可扩展的文件格式,具有许多优点(Technet 上的简要总结如下:http://technet.microsoft.com/en-gb/library/hh831446.aspx)。然而,如果您希望在执行缩减过程后转换回 VHD,那么您可以这样做;这是一个完全可逆的操作。

我希望这能有所帮助。

相关内容