您可以在VMWare Fusion中收缩Mac OS X来宾OS的稀疏磁盘映像吗?


16

我在Mac上使用VMWare Fusion来运行虚拟Windows 7计算机和Microsoft IE兼容性Windows XP虚拟机。

在Windows来宾OS上的VMWare Tools中,有一个“缩小”选项,可让您减小来宾OS使用的稀疏磁盘映像的大小,以节省主机OX上的硬盘空间。

我最近创建了另一个虚拟机,这次运行的是Snow Leopard Server。我想知道是否也可以缩小本机使用的备用磁盘映像,但是即使已安装VMWare Tools(因为VMWare的“共享文件夹”功能正在工作),我也无法在Mac来宾OS上找到VMWare Tools应用程序。

有什么方法可以缩小VMWare Fusion中Mac OS X来宾OS所使用的稀疏磁盘映像吗?


1
不幸的是,由于vdiskmanager不再在此文件夹中,因此在VMWare Fusion 4中不再起作用。似乎没人知道它现在在哪里。


1
在“ 虚拟机库”窗口中,选择虚拟机而不启动它。刷新“ 可回收”条形图,然后单击“ 清理”(如果有)。另请参见KB 1001934:对VMware Fusion虚拟机磁盘进行碎片整理,缩小和清理。
— jww

Answers:


6

从版本4开始的VMware Fusion中,您可以转到VM首选项->常规->清理虚拟机。

此外,还有一张图表,您可以查看缩小后的尺寸。


的确如此,但是对于VMware Fusion 7+,它从来没有提供清理Mac OS客户机的功能。
— dakcarto

@dakcarto-VMware Fusion 5提供此功能,但仅在有可回收的内容时提供。也许您没有可回收的东西?(在8.0→8.1升级后,我为Windows 8.1来宾提供了33 GB的可回收资源)。
— jww

10

呵呵-实际上,按照VMWare讨论板上有关此问题的主题,您可以:

  1. 该文件是稀疏磁盘映像,并且未预先分配。
  2. 虚拟机没有快照。

简而言之:

使用“磁盘工具” 从来宾OS中擦除来宾OS磁盘上的可用空间,然后使用命令行在主机OS上缩小来宾OS的磁盘vmware-vdiskmanager。

总而言之:

在来宾操作系统中:

  1. 打开磁盘实用程序。
  2. 选择来宾操作系统的分区。
  3. 转到“删除”标签。
  4. 单击“清除可用空间”按钮。
  5. 确保选择“零删除已删除的文件”,然后清除可用空间。
  6. 完成后,关闭“磁盘工具”,然后关闭来宾操作系统。

或在分区名为“ Macintosh HD”的客户机操作系统的终端中:

diskutil secureErase freespace 0 Macintosh\ HD
sudo halt

在主机操作系统中:

  1. 打开终端并输入:

    [ -d "/Library/Application Support/VMware\ Fusion" ] && alias vmware-vdiskmanager="/Library/Application Support/VMware Fusion/vmware-vdiskmanager" || alias vmware-vdiskmanager="/Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager"; vmware-diskmanager -k

  2. 键入“ space”,然后输入虚拟机虚拟磁盘文件的路径。

  3. 点击返回。

来宾操作系统的虚拟磁盘文件位于其虚拟机文件中。例如,如果您的虚拟机文件位于/Users/you/VM,则其虚拟磁盘的路径为/Users/you/VM.vmwarevm/VM.vmdk。

作为记录,这将我的Snow Leopard VM从15 GB缩减到6 GB。


8

他们添加了一个非常简单的CLI选项-在来宾操作系统内部执行此操作:

sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /

从VMware社区论坛上的mudalsov:

一种更简单的方法-收缩功能内置在VMware Tools命令行实用程序中:

sudo /Library/Application\ Support/VMware\ Tools/vmware-tools-cli disk shrink /

这将首先擦除文件系统中的空白空间(与创建零填充文件相同),并在来宾终端中显示进度。完成此操作后,将在不关闭VM的情况下调用VMDK收缩,并在VM窗口上方显示为进度条。

/是文件系统上用于擦除空白空间的路径。如果您有多个分区,则可以单独擦除它们,最后进行最后的收缩:

  • vmware-tools-cli disk list 查看可用的擦拭位置
  • vmware-tools-cli disk wipe <location> 擦除每个位置(重复多次),而无需执行收缩操作
  • vmware-tools-cli disk shrinkonly 做最后的收缩操作。

vmware-tools-cli帮助磁盘也对此进行了说明


这是缩小磁盘的最简单的“一个命令”方式。适用于VMware
— Fusion8。– pointum

5

在3.x之后的VMware Fusion变体vmware-vdiskmanager中,接受的答案中提到的的语言环境是:

/ Applications / VMware \ Fusion.app/Contents/Library/vmware-vdiskmanager

所以你所需要的就是

/Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -k 

然后转到finder,导航到您的VM,通常在“〜/ Documents / Virtual Machines /”中。

右键单击“文件”,选择“显示软件包内容”,然后将.vmdk文件拖到“终端”并按Enter。


0

在VMWare Fusion 6中,这是一个三步过程。

  1. 将所有已删除的文件替换为零:

    $ diskutil secureErase freespace 0 Macintosh\ HD

  2. 运行VMWare的磁盘缩减实用程序

    $ sudo /Library/Application\ Support/VMWare\ Tools/vmware-tools-cli disk shrinkonly

  3. 关闭(或重新启动)虚拟机。

真的吗?他们删除了GUI选项吗?
— Paul D. Waite 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.