從 Xen 虛擬機器管理程式複製 VM

從 Xen 虛擬機器管理程式複製 VM

我已經複製(使用 dd 命令)在 Xen 伺服器上運行的 Debian7 VM 的整個磁碟。我能夠將原始圖像轉換為 kvm 格式 (qemu-img)。我已經建立了新的虛擬機器並附加了磁碟映像(使用 KVM)。在嘗試啟動失敗(只是黑屏)後,我決定下載 iso(Debian7) 並啟動到救援模式。使用救援模式,我重新安裝了核心 (3.2.0-4-amd64) 並更新了 initramfs。我還在 /etc/modules 中添加了一些行:

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

然而,當我嘗試啟動時,我得到的只是:

   Loading Linux 3.2.0-4-amd64 
   Loading initial ramdisk

我擁有執行 VM 的 root 存取權限,但無法存取 xen 虛擬機器管理程序

我可以做些什麼來在我的 KVM/virtualbox/ESXi 上啟動此虛擬機器嗎?

問題標示 VMware 標籤,因為最後我要把它放在 VMware 上。我正在使用 kvm 來了解從 Xen 導入的規則(para 與虛擬化)。

編輯2020年4月1日

您好,Eblock,謝謝您的建議。我按照您的文章檢查了來源VM上可用的virtio模組列表,如下所示:

    # 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

然後我將這些 virtio 模組新增到 /etc/modules 和 /etc/initramfs-tools/modules 中,並使用 initramfs-update 指令更新了 initramfs(在救援模式下)。現在,我的 KVM 來賓 Debian VM(目前從 CD 以救援模式運行)顯示已加載的模組(下圖,遺憾的是無法從 KVM 螢幕複製貼上文字):

載入的模組

然而,啟動虛擬機器仍然沒有運氣:(我得到的是:

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

還有什麼我該嘗試的嗎?使用內建 virtio 模組編譯核心?

答案1

一切都很好,VM 啟動並正確啟動所有服務(相當多)。事實證明,eblock 是對的:向核心和 initrd 添加模組就足夠了。一個缺少的部分是 ttyS0 而不是 grub 中配置的 tty0(“xen 方式”,因為 xen 透過“S”連接埠連接),這是缺少通常的引導步驟清單的原因。還有一個問題是 Mingetty 重生太快(導致無休止的“5 分鐘延遲”),所以我在 /etc/inittab 中切換到 tty:

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

一切都很好,謝謝 eblock

相關內容