我有一台 Windows 7 VirtualBox 虚拟机。磁盘映像文件为 30GB,是一个很大的 .vdi 文件。如果我更改其中的任何内容(即使是几 KB),Time Machine 每次都会备份整个 30GB 文件。实际上,即使我只是启动虚拟机,Windows 也会进行一些注册表更改等,即使没有用户/应用程序级别更改,它也会触发完整的 30GB 复制。
有没有办法制作虚拟磁盘映像,使其适合 Time Machine?这样,如果更改了几个 KB/MB,则只复制那些扇区?
谢谢 Sid
答案1
根据这篇博客文章:
http://blog.matteocorti.ch/?p=331
创建快照即可达到此目的:
只需创建机器的快照即可。VirtualBox 随后将保留硬盘映像不变,并创建一个单独的文件,其中只包含快照时所做的更改。
答案2
经过一番摸索,VirtualBox 似乎允许您将虚拟硬盘创建为 VMDK 文件(VMWare 的原生格式)。VMDK 文件允许您将整个映像拆分为 2GB 块,因此 30GB 硬盘实际上是 16 个文件
- 1x 元文件(列出所有实际文件的文本文件)~几 KB
- 15x 2GB VMDK 块文件(实际虚拟磁盘)
我还没有连接 Time Machine 来查看它是否友好,但我认为这实际上可能有效。
[更新 #1] 这当然非常有用!我不再需要 30GB 映像的完整副本,备份大约为 3-4 GB(因为每次启动时都会更新多个块)。如果我重新开始,我会做的一个改变是,我可能会将每个块/切片设为大约 200MB,这样(最坏的情况)当更新任何文件时,将更新 200MB,而不是 2GB。
[更新#2] 我在 VirtualBox 开发者论坛上提到了这个问题,似乎 VMWare 定义的 VMDK 规范(其他所有人,包括 Oracle VirtualBox 也使用)硬编码为 2GB 块。因此,绝对没有灵活性将块大小降低到 1GB/500MB 或 200MB。
此外,与我之前进行的简单启动测试不同,我注意到,如果我在 Windows 7 VM 中执行任何有用的操作,Time Machine 的备份大小将达到 10-15GB!即使我写入的数据很少,也会以某种方式命中更多的块(我怀疑文件碎片分布在许多块 + 交换文件中)
答案3
创建由 8 MB 频带组成的稀疏捆绑磁盘映像。当位于磁盘映像上的 VirtualBox 映像文件发生更改时,Time Machine 只会更新磁盘映像中已更改的频带。
答案4
席德……
我最终将我的 10GB Windows XP Pro .vdi 文件转换为一堆 +/- 2GB .vmdk 文件。
我希望我在 Windows 中所做的任何更改都仅限于少量 .vmdk 文件,以便 Time Machine 可以备份少量 2GB 的 .vmdk 块。
不太奏效。似乎当我加载 Windows XP VM 时,我所做的任何更改(无论多小)最终都会更改所有 .vmdk 文件的“修改”日期/时间...
...这意味着 Time Machine 会备份整个 10GB——就像以前一样。
我是不是漏掉了什么?这似乎是打造 Time Machine 友好型 VM 的解决方案……但也许并非如此?