复制移动VMware Workstation虚拟机文件产生的问题【转】
复制移动VMware Workstation虚拟机文件产生的问题
关于I moved it和I copied it的异同——复制移动VMware Workstation虚拟机文件产生的问题
我们在对一个虚拟机系统做复制或者移动到另一个新的位置的时候,启动虚拟机时会有如下提示:
This virtual machine may have been moved or copied.
In order to configure certain management and networking features VMware Workstation needs to know which.
Did you move this virtual machine, or did you copy it?
If you don''t know, answer "I copied it".
为什么会产生这个问题呢,还需要从UUID谈起(UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUID的API ),虚拟机同样会有一个UUID,而且这个UUID是唯一的。
虚拟机的UUID一般和虚拟机配置文件的位置和物理主机有关。当我们对一个虚拟机系统做移动操作的时候,我们不需要新建一个UUID。让我们复制一个虚拟机的时候我们应该选择建立一个新的UUID,来保证此虚拟机的唯一性。
当我们利用尝试拷贝或移动一个位于datastore里面的虚拟机时,系统会提示我们:
A.I_Moved it;
B.I_Copied it;
同时我们能看到如下消息:
“msg.uid.altered:This virtual machine may have been moved or copied”,那么,这一切究竟是什么意思呢??
首先,我们应该了解一下,上面消息中所说的UUID是个什么东西?
UUID的全称是:universally unique identifier。UUID是一个128位的数值,用它来区别每个虚拟机之间的差异。
在虚拟机被开启或移动时,UUID会自动生成,UUDI的值是基于物理主机并且保存在*.vmx文件里面的。UUID值存储在vmx文件的2个位置:
A.uuid.bios;
B.uuid.location(这是虚拟机的当前路径);
比如:uuid.bios="56 4d 5e 58 66 f5 2d 04-03 31 0a bd 6f a7 19 88"
UUID同时还存储与虚拟机的BIOS里面。当虚拟机开启或被移动时,UUID的uuid.location值会随着虚拟机存储位置变化而相应的变化。一旦虚拟机的位置发生变化,那么uuid.location值也会发生相应的变化,这时,就会提示我们最开始描述的信息。
那么UUID为什么那么重要呢?如果UUID相同会发生什么事儿呢?其实,最关键的一个还是UUID的最后几位是和虚拟机的MAC地址有关的,如果不发生变更,在我们克隆虚拟机时,可能导致UUID相同,那么,MAC地址会发生冲突,那么,网络就会存在问题。
那么,究竟该选者“I Moved it”还是“I Copied it”呢?其实,这个问题,我们通过分别执行一下之后对比vmx文件里的内容就知道了:
I Moved it:
由于是移动这个虚拟机,那么只有uuid.location发生变化,MAC地址是没有变化的。
I Copied it:
由于是拷贝虚拟机,那么uuid.bios和uuid.location都会发生变化,这是MAC地址就会发生变化。
我们在对一个虚拟机系统做复制或者移动到另一个新的位置的时候,启动虚拟机时会有如下提示:
This virtual machine may have been moved or copied.
In order to configure certain management and networking features VMware Workstation needs to know which.
Did you move this virtual machine, or did you copy it?
If you don''t know, answer "I copied it".
为什么会产生这个问题呢,还需要从UUID谈起(UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUID的API ),虚拟机同样会有一个UUID,而且这个UUID是唯一的。
虚拟机的UUID一般和虚拟机配置文件的位置和物理主机有关。当我们对一个虚拟机系统做移动操作的时候,我们不需要新建一个UUID。让我们复制一个虚拟机的时候我们应该选择建立一个新的UUID,来保证此虚拟机的唯一性。
当我们利用尝试拷贝或移动一个位于datastore里面的虚拟机时,系统会提示我们:
A.I_Moved it;
B.I_Copied it;
同时我们能看到如下消息:
“msg.uid.altered:This virtual machine may have been moved or copied”,那么,这一切究竟是什么意思呢??
首先,我们应该了解一下,上面消息中所说的UUID是个什么东西?
UUID的全称是:universally unique identifier。UUID是一个128位的数值,用它来区别每个虚拟机之间的差异。
在虚拟机被开启或移动时,UUID会自动生成,UUDI的值是基于物理主机并且保存在*.vmx文件里面的。UUID值存储在vmx文件的2个位置:
A.uuid.bios;
B.uuid.location(这是虚拟机的当前路径);
比如:uuid.bios="56 4d 5e 58 66 f5 2d 04-03 31 0a bd 6f a7 19 88"
UUID同时还存储与虚拟机的BIOS里面。当虚拟机开启或被移动时,UUID的uuid.location值会随着虚拟机存储位置变化而相应的变化。一旦虚拟机的位置发生变化,那么uuid.location值也会发生相应的变化,这时,就会提示我们最开始描述的信息。
那么UUID为什么那么重要呢?如果UUID相同会发生什么事儿呢?其实,最关键的一个还是UUID的最后几位是和虚拟机的MAC地址有关的,如果不发生变更,在我们克隆虚拟机时,可能导致UUID相同,那么,MAC地址会发生冲突,那么,网络就会存在问题。
那么,究竟该选者“I Moved it”还是“I Copied it”呢?其实,这个问题,我们通过分别执行一下之后对比vmx文件里的内容就知道了:
I Moved it:
由于是移动这个虚拟机,那么只有uuid.location发生变化,MAC地址是没有变化的。
I Copied it:
由于是拷贝虚拟机,那么uuid.bios和uuid.location都会发生变化,这是MAC地址就会发生变化。