Hyper-V VHDx 压缩和大小调整问题 - 无最小尺寸,无法缩小

Hyper-V VHDx 压缩和大小调整问题 - 无最小尺寸,无法缩小

尝试从 VHDx 总文件大小中恢复约 450GB 的未分配空间。感谢您查看此问题:

  • Hyper-V 服务器 2012。
  • 动态 VHDx(我们称之为 disk2.vhdx),文件大小为 1.5 TB(最大 2 TB),不包含操作系统,未启用卷影副本。
  • 在连接了 disk2.vhdx 的 VM 上,我将之前的 1.5 TB 分区缩小到 1.05 TB,释放了现在在 VM 中列为未分配的约 450GB 的空间。
  • VHDx 的文件大小仍然为 1.5TB,我们需要在 Hyper-V 主机上恢复 450GB,因为它已接近容量上限。

我已采取的步骤:

  • 对虚拟机上的每个驱动器进行碎片整理。
  • 关闭虚拟机,使用紧凑型 GUI,任何磁盘上均无结果。
  • 使用了 Powershell Optimize-VHD -mode full & quick,full 导致压缩时间更长,但最终结果是没有释放空间。
  • 使用 Hyper-V 磁盘管理向导,即使在 VM 内部缩小分区后也没有缩小选项。
  • 我们可以使用以下命令简单地成功挂载驱动器(磁盘在虚拟机中也能正常工作):

    安装-vhd F:\disk2.vhdx

  • 尝试挂载 VHD 来提取信息并手动调整其大小时会返回错误,指出无法“获取磁盘”,因为没有分区表或分区表已损坏:

    mount-vhd F:\disk2.vhdx -passthru | 获取磁盘 | 获取分区 | 获取卷

  • 手动调整大小对于 MinSize 和 SetBytes 都返回相同的内容:

    调整大小-vhd F:\disk2.vhdx-ToMinimumSize

以下是 get-vhd 返回的内容:

ComputerName            : XXXX
Path                    : F:\Disk2.vhdx
VhdFormat               : VHDX
VhdType                 : Dynamic
FileSize                : 1572935303168
Size                    : 2147483648000
MinimumSize             : 
LogicalSectorSize       : 512
PhysicalSectorSize      : 4096
BlockSize               : 33554432
ParentPath              : 
FragmentationPercentage : 1
Alignment               : 1
Attached                : False
DiskNumber              : 
IsDeleted               : False
Number                  : 

正如您所见,没有最小尺寸。

我会尝试创建一个具有适当大小的新固定 VHDx 并迁移数据,但不幸的是我们的空间非常少,所以 1.5TB 是一个问题。有没有关于如何从 VHDx 文件大小中恢复 450GB 未分配空间以使其成为 1TB 驱动器的想法?

我还尝试将 disk2.VHDx 转换为 VHD 并使用第三方工具 VHDResizer,但它在完成到 vhd 的转换之前会占用剩余的磁盘空间。如果是 VHD,这能行得通吗?我可以考虑将 VHDx 从服务器转移到具有更多空间的服务器上以完成转换并测试 VHDResizer,我没有使用该工具的经验,所以我不确定是否值得尝试。

谢谢,感谢所有的想法。

答案1

也许您可以使用客户机中的 TRIN/UNMAP 直接从虚拟机内部缩小 VHDx 文件。

只需尝试在客户机的可用空间内重新创建一个新分区,然后对其进行格式化即可。如果所有星星都正确对齐,它将释放大量空间,并将其返回给主机操作系统。

请注意,该文件看起来与以前的大小相同,但总可用磁盘空间仍然会增加。

相关内容