##EasyReadMore##

2013年6月13日 星期四

[VMWare] Deploy Virtual Machine from this template 出現 since it is locked 的異常訊息



今天就如往常一樣,要建一個新的 VM,但是從 Template Deploy 的時候出現了異常訊息




此訊息表示無法存取 Template 的 vmdk 檔,因為被鎖定,但 Template 應該是不會有人去存取才是,理論上不會出現鎖定的行為,我就 Google 了一下,試過一些方法:

1. 把 Template 轉成 VM,無法開機,錯誤訊息一樣


2. 建立 Snapshot,然後再去 Snapshot 管理員選擇 Delete all,這個方法也沒用




後來終於發現問題所在,因為我上次用這個 Template Deploy 出來的 VM(之後都簡稱 MyVM),我去看他的 VMDK,赫然發現這個 MyVM 掛的硬碟竟然是 Template 的 VMDK 檔,真是哪門子的爛 Bug!




還好這個 MyVM 還沒交付給 User,只是個乾淨的 Windows,於是我就把這個硬碟從 MyVM 移除,把原本屬於他的掛上去,然後就正常了。

事情當然還沒結束,身為一個工程師,不能不了解原因就這樣放他過去,不然以後還是會發生,當我把 MyVM 的硬碟移除後,Template 也正常了,結果 Template 的硬碟變成 MyVM 之前的那顆,因為我之前在 Windows 裡面有建一個帳號,結果這個帳號出現在 Template 裡面,讓我只好重做一個乾淨的 Template,所以總結以上,正確的處理方式應該是:


  1. 關閉 MyVM,把 Hard Disk Remove
  2. 把 Template Convert 為 VM,把Hard Disk Remove
  3. 把 Template 的 Hard Disk Copy 到 MyVM 的 Datastore
  4. 把 MyVM 的 Hard Disk Copy 到 Template 的 Datastore
  5. 把原本 Template 的 VMDK 掛給 MyVM
  6. 把原本 MyVM 的 VMDK 掛給 Template
  7. MyVM 開機,應該就會跟之前一樣
  8. Template 重新 Convert 為 Template

Buttttttttttttttttttttttt,為什麼會出現這個爛 Bug 啊,不能這樣啊,不然以後我從 template Deploy VM 出來都要去檢查 VMDK 位置的話不就太蠢了!

所以我又實驗了一次 Deploy,很幸運的試了出來:



只要你在 Deploy VM from this template 的時候,有改硬碟大小,那這個 VM 就會掛到原本 Template 的 VMDK!




結論是,如果你要改新的 VM 硬碟大小,請 Deploy 成功之後再改……..


1 則留言:

krixtw 提到...

Thanks , it help a lot.