1. 程式人生 > >複製移動VMware Workstation虛擬機器檔案產生的問題

複製移動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: