virtualBox虛擬機到vmware虛擬機轉換


正如上篇的問題所言,測試了vmware player 還可以滿足我的需求的以后,

以前在virtualbox下創建的幾個虛擬機不想再重新創建了。想直接把virtualbox虛擬機轉換為vmware虛擬機了事。
 
然而,大牛往往不兼容小牛,從vmware到virtualbox容易,網上有很多文檔。如:
 
而且在創建virtualbox磁盤時,明顯可以看到有vmdk的選項.
 
下面我們來實現virtualbox到vmware的轉換:
 
這是我的virtualBox虛擬機目錄:
lion@lion-SNS:~/VirtualBox VMs/Essex$ ll
總用量 1148156
drwxrwxr-x 4 lion lion       4096  2月  3 10:54 ./
drwxrwxr-x 8 lion lion       4096  2月  2 17:18 ../
-rw------- 1 lion lion      29683  2月  3 10:54 Essex.vbox
-rw------- 1 lion lion      29683  2月  2 17:19 Essex.vbox-prev
-rw------- 1 lion lion 1155567616 12月 20 16:16 Essex.vdi
drwx------ 2 lion lion       4096  2月  2 17:19 Logs/
drwx------ 2 lion lion       4096  2月  2 17:19 Snapshots/
-rw------- 1 lion lion   18919424  2月  3 10:54 SwiftDisk.vdi
-rw------- 1 lion lion    1134592  2月  3 10:54 VolumeDisk.vdi

 

使用命令qemu-img來轉換磁盤格式:
 
qemu-img convert -f vdi -O vmdk Essex.vdi Essex.vmdk
 
根據磁盤大小,1G的大約1分鍾可以完成:
 
lion@lion-SNS:~/VirtualBox VMs/Essex$ ll
總用量 2131104
drwxrwxr-x 4 lion lion       4096  2月  3 10:57 ./
drwxrwxr-x 8 lion lion       4096  2月  2 17:18 ../
-rw------- 1 lion lion      29683  2月  3 10:54 Essex.vbox
-rw------- 1 lion lion      29683  2月  2 17:19 Essex.vbox-prev
-rw------- 1 lion lion 1155567616 12月 20 16:16 Essex.vdi
-rw-r--r-- 1 lion lion 1061027840  2月  3 10:58 Essex.vmdk
drwx------ 2 lion lion       4096  2月  2 17:19 Logs/
drwx------ 2 lion lion       4096  2月  2 17:19 Snapshots/
-rw------- 1 lion lion   18919424  2月  3 10:54 SwiftDisk.vdi
-rw------- 1 lion lion    1134592  2月  3 10:54 VolumeDisk.vdi
 
使用vmware創建一個新的虛擬機,如果不想編輯vmware文件,最好創一個和磁盤名稱相同的虛擬機(Essex):
 
創建好后,下一步我想大家也知道了,用轉換過的Essex.vmdk替換vmware生成的Essex.vmdk即可.
當然,這里對我來說,因為有多塊磁盤,如SwiftDisk.vdi,VolumeDisk.vdi,可能還要再轉換其它磁盤,然后再另外掛載。
 
OK,完成.
下面是我啟動3個虛擬機(每個都是4G內存), 宿主機的內存使用情況:
 
補充:
上面操作的前提是在virtualBox虛擬機沒有創建快照的情況下,當已經創建了快照時,只轉換根目錄下的Essex.vdi是不行,這個狀態可能只是在你第一次創建快照時的虛擬機狀態。
而我要轉換的虛擬機已經創建了三個快照:
在命令行下查看:
 
注意看圖片中的虛擬機磁盤及快照的修改時間,很明顯,最新的虛擬機狀態應該是{911b7809-9730-4c01-a5f2-24866f02f8b0}.vdi 這個文件,
然而,直接轉換{911b7809-9730-4c01-a5f2-24866f02f8b0}.vdi這個文件是不行的.提示沒有權限:
lion@lion-SNS:~/VirtualBox VMs/Essex/Snapshots$ sudo qemu-img convert -f vdi -O vmdk \{911b7809-9730-4c01-a5f2-24866f02f8b0\}.vdi Essex.vmdk
[sudo] password for lion: 
qemu-img: Could not open '{911b7809-9730-4c01-a5f2-24866f02f8b0}.vdi': Operation not permitted
qemu-img: Could not open '{911b7809-9730-4c01-a5f2-24866f02f8b0}.vdi'

當然不是真的沒有權限,而是virtualBox的快照是增量快照,這個快照需要依賴別的快照以及Essex.vdi文件。

下面我們的工作是將多個快照合並為一個vdi文件.有兩種方法:

1. 刪除中間快照。這個操作肯定不太好,萬一以后要用呢。

2. 利用VirtualBox的復制虛擬機功能,復制最新的快照狀態為一個新的虛擬機:

注意選擇完全復制哦!

復制出來一個Essex 副本:

root@lion-SNS:/home/lion/VirtualBox VMs/Essex 副本# ll
總用量 6866104
drwx------ 2 lion lion       4096  2月  3 15:00 ./
drwxrwxr-x 9 lion lion       4096  2月  3 14:56 ../
-rw------- 1 lion lion   18919424  2月  3 15:00 Essex 副本-disk1.vdi
-rw------- 1 lion lion    1134592  2月  3 15:00 Essex 副本-disk2.vdi
-rw------- 1 lion lion       7726  2月  3 15:00 Essex 副本.vbox
-rw------- 1 lion lion 7010816000  2月  3 15:00 Essex 副本.vdi

下面的操作就一樣了,轉換此副本並替換我們用vmware創建的虛擬機文件:

qemu-img convert -f vdi -O vmdk Essex\ 副本.vdi Essex.vmdk

至於virtualbox其它掛載的磁盤文件,可以單獨轉換后,移動到vmware目錄,再通過vmware掛載即可.

qemu-img convert -f vdi -O vmdk SwiftDisk.vdi SwiftDisk.vmdk
qemu-img convert -f vdi -O vmdk VolumeDisk.vdi VolumeDisk.vmdk
mv *.vmdk ~/vmware/Essex/
chown lion.lion *.vmdk

ok,下面啟動vmware虛擬機,大功告成,剩下的有可能有網卡數量,光驅文件等不致可以通過vmware 管理器來配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM