恢复vmware损坏的mac os硬盘快照中的数据

warning: 这篇文章距离上次修改已过1634天,其中的信息可能已经有所变动。

前两天,我正在用一个vmware中虚拟出来的mac os镜像happy的coding。附近线路检修,电kucha一下就断了。我可怜的台式机就像断了线的风筝一样,留下我看着黢黑的屏幕随风飘零。

电力恢复后,我悲剧的发现vmware的镜像果然是坏掉了,起不来了。我的没有push的两个commit也在损坏的vmdk文件中嘲笑我。

在查阅了相关资料后,使用了大家推荐的UFS Explorer,试着从vmdk中恢复文件像这样:

vmware1

不过我发现我想要恢复的文件并不在这个镜像里,后来发现我的vmdk文件是有三个:Mac OS X 10.10.vmdk, Mac OS X 10.10-000001.vmdk, Mac OS X 10.10-000002.vmdk。原来是我做snapshot(快照)的时候就会使用一个新的磁盘镜像,新的数据写在新的vmdk文件中。但是这个vmdk文件UFS Explorer读取不了,显示Raw Partition,一想对呀,分区信息肯定在原本的磁盘镜像中,这些有编号的磁盘镜像文件是一个一个的补丁,自然没有办法读出正确的分区。

所以解决办法应该是将snapshot丢弃将这几个vmdk文件合并。我看了下官方确实支持这么做,使用自带的工具vmware-vdiskmanager类似这样

“C:\Program Files (x86)\vmware\VMware Workstation\vmware-vdiskmanager.exe” -r “G:\VMWare\Mac OS X 10.10.2\Mac OS X 10.10.vmdk” -t 0 MyNewImage.vmdk

其中-t 0就是让vmdk合并为一个,可惜报错了,vmware-vdiskmanage Failed to convert disk: One of the parameters supplied is invalid。

我翻了翻vmware的社区,确实通过修改文件的方式可以解决这个错误。不过我发现了更加容易操作的办法。

那就是克隆

在克隆虚拟机的时候,快照会被丢弃合并为一个磁盘镜像,图形化操作方便快捷。

vmware2

vmware3

这样就方便的生成完整的vmdk了,再通过UFS Explorer挂载就可以将文件恢复出来了。

添加新评论