Oracle VirtualBoxからカーネルベースの仮想マシンに切り替えることにしましたか?素晴らしい!このステップバイステップガイドでは、VirtualboxVMをLinuxのKVMVMに移行する方法について説明します。
VirtualBoxでいくつかの重要なゲストマシンを実行している可能性があります。同じ構成で新しいKVMゲストを作成する代わりに、ここで説明するように、既存のVirtualboxマシンをKVMに簡単に変換できます。
LinuxでVirtualboxVMをKVMVMに移行する
まず、VirtualBoxで実行中のすべての仮想マシンの電源を切ります。
このガイドでは、 CentOSを使用します およびFreeBSD VirtualBoxでホストされている仮想マシン。
ご存知かもしれませんが、KVM仮想マシンのデフォルトのディスクイメージ形式は .qcow2
です。 VirtualboxVMは.vdi
。
vdiディスクイメージファイルをqcow2に変換するには、2つの方法があります。 vdi
を直接変換できます qcow2
への画像 フォーマット。
なんらかの理由で機能しない場合は、最初にvdi
を変換できます。 formatをraw形式に変換してから、raw形式をqcow2
に変換します。 。
1。 vdi画像形式をqcow2画像形式に変換する
VirtualBoxを使用して作成したCentOSVMのディスクイメージタイプを示します。
$ ls CentOS\ 8\ Server/
出力例:
CentOS 8 Server.vbox CentOS 8 Server.vbox-prev CentOS 8 Server.vdi Logs
お気づきかもしれませんが、CentOSVMディスクイメージのファイルタイプは.vdiです。 。不思議に思う人のために、VDIはVirtualBoxのネイティブフォーマットです。 VirtualBoxは、新しい仮想マシンを作成するときにデフォルトでこの形式を使用します。
FreeBSDディスクイメージのファイルタイプは次のとおりです。
$ ls FreeBSD\ 12/ FreeBSD-12.0-RELEASE-amd64.vhd freebsd12.qcow2 FreeBSD 12.vbox FreeBSD 12.vbox-prev Logs
ここで、freebsdディスクイメージファイルタイプは .vhdです。 。 VHDは、MicrosoftVirtualPCのネイティブ形式です。
VirtualBoxで両方の仮想マシンを作成しました。しかし、Virtualboxは.vdi
を使用しました CentOSおよび.vhd
の形式 FreeBSDのフォーマット。
VDI形式とVHD形式の両方がVirtualBoxで非常によくサポートされており、両方の画像タイプをqcow2形式に簡単に変換できます。
ここで、トピックに戻りましょう。 "qemu-img"
を使用して、VirtualboxマシンのディスクイメージをKVMでサポートされているディスクイメージタイプに変換する方法です。 指図?
まあ、それは簡単です! qemu-img
コマンドは、仮想マシンのディスクイメージをqcow2
などのさまざまな形式に変換するために使用されます。 、raw
、vdi
、vhd
、およびvmdk
。
vdi
を変換するには qcow2
への画像 qemu-img
を使用した画像 コマンド、実行:
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi -O qcow2 centos8.qcow2
上記のコマンドは、指定されたvdi
を変換します qcow2
へのファイル フォーマット。
ここでは、 -O qcow2
を使用しました 出力形式を明示的に指定します。もちろん、出力形式を明示的に指定する必要はなく、以下のように入力形式と出力形式を指定するだけです。
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi centos8.qcow2
ただし、より大きなサイズの画像が作成されます。
同様に、vhd
を変換できます qcow2
への画像ファイル 次のコマンドを使用した画像:
$ qemu-img convert FreeBSD\ 12/FreeBSD-12.0-RELEASE-amd64.vhd -O qcow2 freebsd12.qcow2

これが、Virtualbox仮想マシンをKVM仮想マシンに移行する方法です。
次に、「Qcow2イメージからKVM仮想マシンを作成する」に進みます。 「Qcow2イメージを使用して新しいKVM仮想マシンを作成する方法については、以下のセクションを参照してください。
上記の方法が機能しない場合(ほとんどありません)、次の方法を使用してvdi
を変換できます。 qcow2
への画像 画像。
2。 vdiをraw画像形式に変換してからqcow2画像形式に変換します
まず、コマンドを使用して、使用可能なvirtualboxディスクイメージとその場所のリストリストを見つけます。
$ vboxmanage list hdds
または、
$ VBoxManage list hdds
出力例:
UUID: ecfb6d5c-aa10-4ffc-b40c-b871f0404da8 Parent UUID: base State: created Type: normal (base) Location: /home/sk/VirtualBox VMs/CentOS 8 Server/CentOS 8 Server.vdi Storage format: VDI Capacity: 20480 MBytes Encryption: disabled UUID: 34a5709f-188c-4040-98f9-6093628c3d88 Parent UUID: base State: created Type: normal (base) Location: /home/sk/VirtualBox VMs/Ubuntu 20.04 Server/Ubuntu 20.04 Server.vdi Storage format: VDI Capacity: 20480 MBytes Encryption: disabled

ご覧のとおり、2つのvirtualboxVMがあります。
次に、vboxmanage
を使用して、CentOS8マシンのディスクイメージをrawディスクフォーマットに変換します。 コマンド:
$ vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
または、
$ VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
出力例:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e
RAW画像が大きすぎる 使用します。私の場合、RAW画像はQcow2画像の10倍の大きさです。
$ du -h CentOS_8_Server.img 21G CentOS_8_Server.img
それでは、RAW画像形式をKVMディスク形式に変換しましょう。つまり、qemu-imgコマンドを使用して圧縮されたqcow2を使用します。
$ qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2

終わり! VirtualboxディスクイメージフォーマットVDIをKVMイメージフォーマットqcow2に変換しました。
Qcow2画像のサイズを確認してください:
$ du -h CentOS_8_Server.qcow2 2.1G CentOS_8_Server.qcow2
見る? Qcow2はRAW画像よりもはるかに小さいです。
3。 Qcow2イメージからKVM仮想マシンを作成する
コマンドラインから仮想ディスクイメージファイルをインポートするか、 Virt-manager などのグラフィカルKVM管理アプリケーションを使用して、新しいKVMインスタンスを作成できるようになりました。 またはコックピット Webコンソール。
詳細については、次のガイドを参照してください。
- Qcow2イメージを使用してKVM仮想マシンを作成する方法
トラブルシューティング
Virtualboxメディアマネージャーから適切に解放せずに仮想ディスクを削除した可能性があります。
同じVDIファイルから新しいRAMイメージを作成しようとすると、次のようなエラーが発生します-"hard disk with UUID already exists"
。
この問題を修正するには、Virtualboxから仮想ディスクを解放し、イメージの変換を再試行する必要があります。これを行う方法については、次のガイドを参照してください。
- VirtualBoxの「UUIDのあるハードディスクがすでに存在する」問題を修正
結論
このガイドでは、LinuxでVirtualboxVMをKVMVMに移行する方法について説明しました。また、Qcow2イメージファイルをインポートして新しいKVMインスタンスを作成する方法についても説明しました。