VM vom Xen-Hypervisor kopieren

VM vom Xen-Hypervisor kopieren

Ich habe (mit dem Befehl dd) eine ganze Festplatte einer Debian7-VM kopiert, die auf einem Xen-Server läuft. Ich konnte das Rohimage in das KVM-Format (qemu-img) konvertieren. Dann habe ich eine neue VM erstellt und ein Disk-Image angehängt (mit KVM). Nach einem fehlgeschlagenen Startversuch (nur schwarzer Bildschirm) habe ich beschlossen, iso (Debian7) herunterzuladen und im Rettungsmodus zu starten. Im Rettungsmodus habe ich den Kernel (3.2.0-4-amd64) neu installiert und initramfs aktualisiert. Ich habe auch einige Zeilen zu /etc/modules hinzugefügt:

    alias eth0 pcnet32 
    alias scsi_hostadapter mptbase 
    alias scsi_hostadapter2 mptspi 
    alias scsi_hostadapter3 ata_piix 
    alias scsi_hostadapter4 virtio_blk

Trotzdem bekomme ich beim Bootversuch nur Folgendes angezeigt:

   Loading Linux 3.2.0-4-amd64 
   Loading initial ramdisk

Ich habe Root-Zugriff auf die laufende VM, aber keinerlei Zugriff auf den Xen-Hypervisor

Kann ich irgendetwas tun, um diese VM auf meinem KVM/Virtualbox/ESXi zu booten?

Die Frage ist mit dem VMware-Tag gekennzeichnet, da ich sie letztendlich auf VMware setzen werde. Ich verwende KVM, um die Importregeln von Xen (Para vs. Virtualisierung) zu verstehen.

BEARBEITEN 01.04.2020

Hallo Eblock, danke für deinen Rat. Ich habe deinen Artikel gelesen und die Liste der verfügbaren Virtio-Module auf der Quell-VM überprüft, die wie folgt aussieht:

    # find /lib/modules/ -name *virt*
    /lib/modules/3.2.0-4-amd64/kernel/net/9p/9pnet_virtio.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/net/virtio_net.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/scsi/virtio_scsi.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/block/virtio_blk.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/virtio
    /lib/modules/3.2.0-4-amd64/kernel/drivers/virtio/virtio_pci.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/virtio/virtio_ring.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/virtio/virtio.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/virtio/virtio_balloon.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/char/virtio_console.ko
    /lib/modules/3.2.0-4-amd64/kernel/drivers/char/hw_random/virtio-rng.ko
    /lib/modules/3.2.0-4-amd64/kernel/sound/pci/oxygen/snd-virtuoso.ko

Dann habe ich diese Virtio-Module sowohl zu /etc/modules als auch zu /etc/initramfs-tools/modules hinzugefügt und initramfs mit dem Befehl initramfs-update aktualisiert (im Rettungsmodus). Jetzt zeigt meine KVM-Gast-Debian-VM (derzeit im Rettungsmodus von CD ausgeführt) geladene Module an (Bild unten, leider ist es nicht möglich, Text vom KVM-Bildschirm zu kopieren und einzufügen):

geladene Module

Aber ich habe immer noch kein Glück beim Booten der VM :( Alles was ich bekomme ist:

    Decompressing Linux... Parsing ELF    Done
    Booting the kernel...

Gibt es sonst noch etwas, das ich versuchen sollte? Kernel mit integrierten Virtio-Modulen kompilieren?

Antwort1

Alles ist gut, die VM bootet und startet alle Dienste (ziemlich viele) ordnungsgemäß. Es stellte sich heraus, dass eblock Recht hatte: Das Hinzufügen von Modulen zum Kernel und initrd war ausreichend. Ein fehlender Teil war ttyS0 anstelle des in Grub konfigurierten tty0 („die Xen-Methode“, da Xen über „S“-Ports verbunden wird), was der Grund für das Fehlen der üblichen Auflistung der Boot-Schritte war. Es gab auch ein Problem mit einem zu schnellen Mingetty-Respawn (was zu endlosen „5-Minuten-Verzögerungen“ führte), also wechselte ich in /etc/inittab zu tty:

    1:2345:respawn:/sbin/getty tty1
    2:2345:respawn:/sbin/getty tty2
    ....

Alles ist gut, danke eblock

verwandte Informationen