Haben Sie sich entschieden, von Oracle VirtualBox auf eine Kernel-basierte virtuelle Maschine umzusteigen? Toll! Diese Schritt-für-Schritt-Anleitung erklärt, wie Sie Virtualbox-VMs in KVM-VMs unter Linux migrieren.
Möglicherweise haben Sie einige wichtige Gastcomputer auf VirtualBox ausgeführt. Anstatt neue KVM-Gäste mit derselben Konfiguration zu erstellen, können Sie die vorhandenen Virtualbox-Maschinen ganz einfach wie hier beschrieben auf KVM umstellen.
Virtualbox-VMs in KVM-VMs unter Linux migrieren
Schalten Sie zuerst alle laufenden virtuellen Maschinen in VirtualBox aus.
Für die Zwecke dieses Leitfadens verwende ich CentOS und FreeBSD virtuelle Maschinen, die in VirtualBox gehostet werden.
Wie Sie vielleicht bereits wissen, ist das Standard-Disk-Image-Format einer virtuellen KVM-Maschine .qcow2
und Virtualbox VM ist .vdi
.
Wir können eine VDI-Disk-Image-Datei auf zwei Arten in qcow2 konvertieren. Wir können das vdi
direkt konvertieren Bild nach qcow2
Format.
Wenn es aus irgendeinem Grund nicht funktioniert, können wir zuerst die vdi
konvertieren Format in das Rohformat und konvertieren Sie dann das Rohformat in qcow2
.
1. Konvertieren Sie das vdi-Bildformat in das qcow2-Bildformat
Lassen Sie mich Ihnen den Disk-Image-Typ meiner CentOS-VM zeigen, die mit VirtualBox erstellt wurde.
$ ls CentOS\ 8\ Server/
Beispielausgabe:
CentOS 8 Server.vbox CentOS 8 Server.vbox-prev CentOS 8 Server.vdi Logs
Wie Sie vielleicht bemerkt haben, ist der Dateityp des CentOS-VM-Festplatten-Images .vdi . Für diejenigen, die sich fragen, VDI ist das native Format von VirtualBox. VirtualBox verwendet dieses Format standardmäßig, wenn wir eine neue virtuelle Maschine erstellen.
Und hier ist der Dateityp des FreeBSD-Disk-Images:
$ ls FreeBSD\ 12/ FreeBSD-12.0-RELEASE-amd64.vhd freebsd12.qcow2 FreeBSD 12.vbox FreeBSD 12.vbox-prev Logs
Hier ist der Freebsd Disk Image Dateityp .vhd . VHD ist das native Format von Microsoft Virtual PC.
Ich habe beide virtuellen Maschinen in VirtualBox erstellt. Aber Virtualbox verwendete .vdi
Format für CentOS und .vhd
Format für FreeBSD.
Sowohl VDI- als auch VHD-Formate werden von VirtualBox sehr gut unterstützt. Und beide Bildtypen können einfach in das qcow2-Format konvertiert werden.
Kommen wir nun zurück zum Thema – wie man die Disk-Images der Virtualbox-Maschine mit "qemu-img"
in den KVM-unterstützten Disk-Image-Typ konvertiert Befehl?
Nun, es ist einfach! Das qemu-img
Der Befehl wird verwendet, um Festplatten-Images virtueller Maschinen in verschiedene Formate zu konvertieren, einschließlich qcow2
, raw
, vdi
, vhd
und vmdk
.
Zum Konvertieren eines vdi
Bild nach qcow2
Bild mit qemu-img
Befehl, führe aus:
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi -O qcow2 centos8.qcow2
Der obige Befehl konvertiert den angegebenen vdi
Datei nach qcow2
formatieren.
Hier haben wir -O qcow2
verwendet um das Ausgabeformat explizit anzugeben. Natürlich müssen Sie das Ausgabeformat nicht explizit angeben und geben einfach das Eingabe- und Ausgabeformat wie folgt an:
$ qemu-img convert CentOS\ 8\ Server/CentOS\ 8\ Server.vdi centos8.qcow2
Es wird jedoch ein größeres Bild erstellt.
Ebenso können Sie die vhd
konvertieren Bilddatei nach qcow2
Bild mit dem folgenden Befehl:
$ qemu-img convert FreeBSD\ 12/FreeBSD-12.0-RELEASE-amd64.vhd -O qcow2 freebsd12.qcow2

So migrieren wir virtuelle Virtualbox-Maschinen zu virtuellen KVM-Maschinen.
Gehen Sie nun zu "Erstellen einer virtuellen KVM-Maschine aus einem Qcow2-Image " Abschnitt unten, um zu erfahren, wie man eine neue virtuelle KVM-Maschine mit den Qcow2-Images erstellt.
Falls die obige Methode nicht funktioniert (was sehr unwahrscheinlich ist), können Sie die folgende Methode verwenden, um vdi
zu konvertieren Bilder nach qcow2
Bilder.
2. Konvertieren Sie vdi in das RAW-Bildformat und dann in das qcow2-Bildformat
Suchen Sie zuerst die Liste der verfügbaren Virtualbox-Festplatten-Images und deren Speicherort mit dem Befehl:
$ vboxmanage list hdds
Oder,
$ VBoxManage list hdds
Beispielausgabe:
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

Wie Sie sehen können, habe ich zwei Virtualbox-VMs.
Jetzt werde ich das Disk-Image der CentOS 8-Maschinen mit vboxmanage
in ein Raw-Disk-Format konvertieren Befehl:
$ vboxmanage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
Oder,
$ VBoxManage clonehd --format RAW /home/sk/VirtualBox\ VMs/CentOS\ 8\ Server/CentOS\ 8\ Server.vdi CentOS_8_Server.img
Beispielausgabe:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e
Das RAW-Bild ist zu groß benutzen. In meinem Fall ist das RAW-Bild zehnmal größer als das Qcow2-Bild.
$ du -h CentOS_8_Server.img 21G CentOS_8_Server.img
Konvertieren wir also das RAW-Bildformat in das KVM-Festplattenformat, d. h. komprimiertes qcow2, mit dem Befehl qemu-img:
$ qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2

Erledigt! Wir haben das Virtualbox Disk-Image-Format VDI in das KVM-Image-Format qcow2 konvertiert.
Überprüfen Sie die Größe des Qcow2-Bildes:
$ du -h CentOS_8_Server.qcow2 2.1G CentOS_8_Server.qcow2
Sehen? Qcow2 ist viel kleiner als das RAW-Bild.
3. Erstellen Sie eine virtuelle KVM-Maschine aus dem Qcow2-Image
Sie können jetzt eine neue KVM-Instanz erstellen, indem Sie die Image-Datei der virtuellen Festplatte über die Befehlszeile importieren oder eine beliebige grafische KVM-Verwaltungsanwendung wie Virt-manager verwenden oder Cockpit Web-Konsole.
Weitere Informationen finden Sie in der folgenden Anleitung:
- So erstellen Sie eine virtuelle KVM-Maschine mit dem Qcow2-Image
Fehlerbehebung
Manchmal haben Sie die virtuelle Festplatte möglicherweise gelöscht, ohne sie ordnungsgemäß aus dem Virtualbox Media Manager freizugeben.
Wenn Sie versuchen, ein neues RAM-Image aus derselben VDI-Datei zu erstellen, erhalten Sie eine Fehlermeldung wie etwa - "hard disk with UUID already exists"
.
Um dieses Problem zu beheben, müssen Sie die virtuelle Festplatte aus der Virtualbox freigeben und erneut versuchen, das Image zu konvertieren. Lesen Sie die folgende Anleitung, um zu erfahren, wie das geht:
- Problem „Festplatte mit UUID existiert bereits“ in VirtualBox behoben
Schlussfolgerung
In diesem Handbuch haben wir gesehen, wie Sie Virtualbox-VMs in KVM-VMs unter Linux migrieren. Wir haben uns auch angesehen, wie man eine neue KVM-Instanz erstellt, indem man die Qcow2-Image-Datei importiert.