zar,首先要做的是...永远不要移动处于保存状态的计算机,在移动之前,您必须关闭客户机,而不仅仅是保存状态。
另外,还要确保在两个主机上都使用相同版本的VirtualBOX,但不仅要是VirtualBOX版本,还要使用扩展包版本……或者至少新主机具有更高的版本,但绝不要在两个主机中都具有更低的版本。
最后,我很难学到它,在移动机器之前删除VirtualBOX上的SHARED文件夹配置,然后以正确的方式重新创建它...当主机是不同的操作系统(Windows / Linux主机)时,这非常重要。
顺便提一句...我一直都在为操作系统以及数据VDI始终使用不可变的硬盘VDI文件(这样一来,相同的DATA VDI可以用于来宾之外),特别是4GiB pagefile.sys的窍门
最后一部分,重复使用一个不变的VDI文件会使事情变得有些困难,VirtualBOX有一个大错误。
要查看实际的错误:
- 创建一个不变的VDI(就像我用于pagefile.sys的那样)
- 在VirtualBOX上创建两个或三个VM
- 将其中之一移到列表的顶部(为避免损坏您的任何一个)
- 备份您创建的每台thoose机器的.vbox文件(用于在发生BUG之后进行比较)
- 将该不可变的VDI附加到一台以上的机器上(列表顶部的那一台除外)
- 现在,请参阅列表顶部的计算机的.vbox
该机器已被编辑,它引用了其他机器不变的VDI。
因此,BUG是:编辑一台计算机,添加不可变的VDI,另一台计算机将使用该VDI,这会影响列表顶部的计算机。
为什么在所有Windows机器上都重复使用相同的4GiB VDI?容易,这是一个带有FAT32分区的MBR磁盘,我将pagefile.sys放在其中,因为它是不可变的,所有虚拟机都会在其快照文件夹中创建一个文件来存储更改,并且在下次启动时会丢失,所以我这样做不需要为存储在主机磁盘上的每个来宾提供4GiB,仅需一个...这样,我节省了大量GiB,因为我有20多个不同的窗口用于测试应用程序,这些窗口是我为自己开发的(XP,Vista的所有组合) ,7、8、8.1、10)*(32Bits,64Bits)*(就像在第一次安装时一样,在每个ServicePack之后,在完整的Windows更新之后),我得到了很多很多客人...等等我共享虚拟RAM(pagefile.sys)的不变4GiB VDI。
并且,如果让BUG走得更远,请尝试将其中一台机器移动到另一台VirtualBOX主机上(请记住,它们只是具有配置的虚拟机,并且尚未安装任何客户机),您将看到VirtualBox不允许您由于缺少某些VDI,所以添加它们(这是FALSE和TRUE,这是因为该第一台计算机在正确的计算机上保留了对此类VDI的引用,而这些BDI却被信奉蜜蜂)。
现在,将所有文件的.VBOX文件与previos BackUp进行比较...请注意其中一个文件的修改错误吗?...是的,它是列表顶部的文件。
好吧,这个错误是几年前被告知VirtualBOX的,他们仍然无法修复它……这引起了很多很多问题。
此外,如果将虚拟机上的第一台移动到较低的位置,请关闭VirtualBox并重新启动它...会告诉您某些计算机已损坏且无法启动...是列表中的第一台如果您不想惹上很多麻烦,必须以其他形式对待。
这是一个非常糟糕的错误,我花了很多天才发现(几年前),我很难学它!
我已经通过使用一台机器来克服了它:
它的配置为空,只有一个VDI,是的,您猜对了,我为所有其余虚拟机共享了不变的VDI。
好吧,当我打开.VBOX文件时,我在该<MediaRegistry>
<HardDisks>
节的内部看到很多行,每台使用该不可变VDI的计算机上都有一行...就像一个示例(我删除了私有数据):
<MediaRegistry>
<HardDisks>
<HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
<HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
<HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
... and so on ... // This belongs to other virtual Machine
</HardDisk>
</HardDisks>
</MediaRegistry>
相当糟糕,多年来没有解决。
好了,要移动此类计算机...,您必须手动编辑.VBOX文件,以将所有此类磁盘引用放在第一台计算机(位于列表顶部)上的新主机上的新主机上。文件添加到列表中,因此在添加它们时,VirtualBOX会引用丢失的VDI(丢失是由大BUG引起的)。
发生这种情况是因为每次您连接另一台计算机上使用的VDI VirtualBOX时,都会更新两台计算机.VBOX文件(属于您正在使用的计算机)和列表中的第一台。
我不完全确定清单上会出现什么情况,第一个没有附加这样的通用VDI ...最好不要尝试,看看我所看到的。
因此,迁移到另一个HOST比看起来要复杂得多,这似乎是因为.VBOX文件内部结构的实现很差,并且因为VirtualBOX编辑它们时存在很大的错误。
失败:
- 内部结构(XML)取决于主机(Windows或Linux)
- 编辑一台机器可以更改另一台机器,不仅可以编辑一台机器
- ... 还有什么 ?
需要更多...我总是迁移执行此操作的计算机(而且从来没有问题,从来没有):
- 记录所有机器的列表(订单,分组等)
- 注意列表中的第一个(所有配置)
- 记下我要移至另一台主机的机器的所有属性
- 将.vbox文件复制为.txt文件(列表顶部的一个+我要迁移的所有计算机)
- 在新主机上的VirtualBox中重新创建所有计算机(并在列表顶部有一个特殊的计算机)
- 在新主机上关闭VirtualBox
- 将旧的.txt文件与新的.vbox文件进行比较,然后以人工方式将.txt文件从.txt文件复制到.vbox文件中的某些部分,而不仅仅是复制并粘贴
- 打开VirtualBox并按正确顺序附加所有VDI
- 再次在新主机上关闭VirtualBox
- 将旧的.txt文件与新的.vbox文件进行比较,然后以人工方式将.txt文件中的.txt文件“修复”到.vbox文件中的某些部分,而不仅仅是复制粘贴
我将其余所有内容(快照文件夹和VDI文件)以正常方式(文件系统复制和粘贴)进行复制。
所有艰苦的手工工作都是由Big BUG VirtualBox引起的:当您在多台计算机上附加使用不变VDI时,它会编辑/更改未修改的计算机,否则只需复制并粘贴.VBOX文件即可(修复共享文件夹路径等)。