正如上篇的問題所言,測試了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 管理器來配置。