反之亦然 นี่แน่นอนคือสิ่งที่คุณอาจอยากทำ หากคุณเป็น virtualization fan และคุณรันทั้ง VirtualBox และ VMware products เหตุผลของการแปลงอาจมากมาย รวมถึงความต้องการในการ preserve license หรือ machine state รันใน software อื่นเพื่อ compatibility testing และใครรู้ว่าอย่างไร virtualization geeks อาจมีเหตุผลอื่นๆ
อย่างไรก็ตาม วันนี้ ผมจะแสดงให้คุณเห็น สองวิธีแน่นอน และหนึ่งวิธี maybe ว่าคุณสามารถแปลง virtual hard disks ใน .vdi format ที่ VirtualBox ใช้ เป็น .vmdk ที่ VMware ใช้ และในทางกลับกัน นอกจากนี้ คุณยังจะได้เรียนรู้วิธีแปลงเป็น formats อื่นๆ หากคุณชอบ รวมถึง VHD, RAW และอื่นๆ เราจะใช้ tools เช่น VBoxManage command line utility และ QEMU และดู VMware Converter ซึ่งเราเคยเห็นมันทำงานมาก่อน ทั้งหมดรวมกัน บทช่วยสอนนี้จะเพิ่ม flexibility และ portability ของ setup เราอย่างมีนัยสำคัญ
Conversion method 1: VBoxManage
เราเคยใช้ VBoxManage เพื่อ clone VirtualBox disks วิธีที่นี่เหมือนกันทุกประการ ยกเว้นว่าเราจะแปลงเป็น disk format ที่ต่างกัน มาดูวิธีทำกัน
VBoxManage clonehd source.vdi target.vmdk --format VMDK
ที่ source คือ VirtualBox disk ของคุณ target คือ VMware disk ของคุณ และ --format VMDK คือ desired output format คล้ายกัน คุณสามารถทำในทางกลับกันได้ ใช้ VMDK เป็น source และ VDI เป็น target อย่าลืมระบุ disk format ที่ถูกต้อง VBoxManage clonehd function รองรับ formats อื่นๆ ด้วย
ดูตัวอย่าง:

อีกครั้ง การใช้ external disk สำหรับเก็บ virtual machines สามารถลด performance penalty เนื่องจาก massive I/O คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพ virtual machine usage ใน virtualization tips guide ของผม
ปล่อยให้มันรัน


เมื่อ procedure เสร็จสมบูรณ์สำเร็จ สร้าง virtual machine ใหม่ใน VMware product และใช้ disk ใหม่เป็น storage ของคุณ
คุณมี leeway มาก ผมได้แปลง VirtualBox machine ที่ติดตั้งบน machine อื่น ที่รัน quad-core Intel processor และ deploy VMware disk บน machine ที่มี dual-core Intel processor หนึ่ง generation หลัง VirtualBox Guest Addons ติดตั้งใน guest operating system นอกจากนี้ ผมให้ VMware machine ใช้ PAE extension ในขณะที่ผม disable feature นี้ใน VirtualBox อีกทั้ง ผมเปลี่ยน disk controller จาก IDE เป็น SCSI ใน VMware machine settings และมันยังทำงานได้ค่อนข้างดี มีเพียง minor inconvenience คือติดตั้ง new hardware drivers ตอน machine startup ดังนั้นคุณมี large margin for error และสามารถยืดหยุ่นเกี่ยวกับ conversions ของคุณได้
至於我使用了哪些 machines 和 software ...
所謂的 source host 是我最新的 HP Pavilion dv6-2130ej laptop 带 i5 processor 跑 Ubuntu 10.04 target host 是我稍老但仍然新且强大的 LG RD510 laptop 带 Core 2 Duo P7450 processor 也跑 Ubuntu 10.04 并配备了 VirtualBox 和 spectacular VMware Workstation
P.S. 顺便说一句 Workstation 在 Lucid Lynx 上安装得 flawless 甚至比在 openSUSE 11.2 上更顺利 与 Ubuntu 上相当复杂和困难的 VMware Server 设置相比 这是一个极其 impressive 的结果

Workstation (และ可能其他 products) 可能會要求您將虛擬機器轉換為 VMware 系列的最新版本 您可以接受這個 但如果您打算將其與舊產品一起使用 則不應該這樣做

让我们看看会发生什么

注意相同的 serial number 同樣 注意 converted copy 中使用的 PAE feature

請注意 如果您的虛擬機器運行 Windows 您將需要確保您有足夠的許可證 以並行運行操作系統的多個實例 您可能對幾秒鐘的測試沒問題 但每個虛擬機器都需要自己的許可證 您可能還需要重新激活您的安裝
Vice versa
哦 是的 另一方向相當簡單
VBoxManage clonehd source.vmdk target.vdi --format VDI
而已
Conversion method 2: QEMU
QEMU 是老朋友了 我們在我關於虛擬化的第一篇文章中見過它 當我還年輕天真時 劃掉 我從來不年輕 我們也用 QEMU 將 VMDK disks 轉換為 RAW format 以便我們可以將它們用於 Amazon EC2 machines 概念在這裡完全相同 而且雙向都有效
VDI to VMDK
極其簡單
qemu-img convert something.vdi -O vmdk something.vmdk
VMDK to VDI
您有兩種方法可以做這件事 使用一步驟 qemu-img-vdi 工具 或使用經典 qemu-img 這將需要中間轉換為 raw format
qemu-img-vdi
幾乎就像我們之前看到的所有其他轉換一樣:
qemu-img-vdi convert something.vmdk -O vdi something.vdi
qemu-img
現在 使用 qemu-img 您有兩個步驟 首先轉換為 RAW format 然後使用 VBoxManage 轉換為 VDI 舊版本的 VirtualBox 使用稱為 vditool 的工具 所以您可能會發現引用此實用程序的在線資源
步驟 1: 將 VMDK 轉換為 RAW (你不需要任何文件擴展名 順便說一句)
qemu-img convert something.vmdk something.raw
步驟 2: 將 RAW 轉換為 VDI
VBoxManage convertdd something.raw something.vdi
注意: 如果您使用 sparse disks 就像我們在其他教程中看到的 raw file 將會膨脹到其預期的最大大小 一個 20GB 的磁盤 即使只使用了 2.4GB 將會變成一個 20GB byte-by-byte 文件在您的硬盤上
那將是全部 下一個請
Conversion method 3 (maybe): VMware Converter
據我所了解 而且我過去已經說過 似乎 VMware Converter 不支援 VirtualBox 因此 使用 VMware Converter 可能有效 也可能無效
現在 您可以嘗試不同的方法 將您的 VirtualBox machine 匯出為 appliance 這將以 .ovf format 保存 其中包含現成的 VMDK disk 然後使用 VMware Converter 轉換 appliance 沒有保證 我讀過幾個論壇線程 這裡和那裡 各種用戶聲稱成功做到了 所以這確實可能是可能的
我還沒有設法做到這一點 所以請記住這一點!


另一個選項是使用其他工具轉換為 VMDK 然後使用 VMware Converter 進行額外轉換 包括 ESXi disks 因此 即使您無法直接使用 Converter 您稍後仍可通過使用它受益
General tips
雖然您可以相當靈活地進行轉換 您應該考慮到 VMware 和 VirtualBox 支持事物略有不同 所以某些轉換可能會失敗 如果您啟用了特殊功能 如 multi-processors, video acceleration 和其他 cool things
因此 如果您的轉換不成功 請考慮執行以下操作:
- 如果您的 disks 分成多個文件 請將它們合併為一個
- 禁用任何 video acceleration 或 special features
- 刪除 snapshots
- 卸載 VMware Tools 和/或 Guest Additions
- 嘗試匹配 source 和 destination 之間的虛擬機器設置
這對 Windows 比 Linux 更重要 再次 我必須提醒您 您可能會有 licensing issues 如果您使用 proprietary software 請確保您不會因為 virtual machine migration 而使您的產品失效
More reading
為了整個圖書館滿滿的 tutorials, guides, howtos, tips 和 tricks 關於虛擬化 請隨意點擊下面的任何鏈接 最好是全部
VirtualBox 3 overview
Compiz Fusion in VirtualBox 3
DirectX in VirtualBox 3
Seamless mode in VirtualBox
VirtualBox desktop shortcuts
Portable VirtualBox
How to add new hard disks in VirtualBox - Tutorial
How to clone disks in VirtualBox - Tutorial
How to shrink/expand disks in VirtualBox - Tutorial
How to install VirtualBox Guest Additions - Tutorial
Network & sharing in VirtualBox - Tutorial
How to boot from CD-ROM in newer versions of VirtualBox - Tutorial
How to enable USB support in VirtualBox - Tutorial
Conclusion
在那裡 另一個 fine, complete tutorial 烤好了 今天 您學會了另一個有用的課程 這給您更多的自由和靈活性 在使用虛擬化產品時 您現在可以來回轉換您的虛擬機器 在產品之間並根據需要遷移它們 您擁有不少於兩種經過驗證的方法 也許還有第三種 讓您進行轉換 最棒的是 您不僅限於 VDI 和 VMDK 格式 我希望您喜歡 享受!
P.S. 頂部頁面的 teaser image 取自 Wikipedia 在公共領域
Dedoimedo out.
Cheers.