
Я скопировал (используя команду dd) целый диск виртуальной машины Debian7, работающей на сервере Xen. Мне удалось преобразовать необработанный образ в формат 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
У меня есть root-доступ к работающей виртуальной машине, но нет никакого доступа к гипервизору Xen.
Можно ли что-нибудь сделать, чтобы загрузить эту виртуальную машину на моем KVM/virtualbox/ESXi?
Вопрос отмечен тегом VMware, потому что в конце концов я собираюсь разместить это на VMware. Я использую kvm, чтобы понять правила импорта из Xen (para vs virtualization).
ИЗМЕНИТЬ 01.04.2020
Привет, Eblock, спасибо за совет. Я следовал твоей статье и проверил список доступных модулей 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 командой initramfs-update (в режиме восстановления). Теперь моя гостевая виртуальная машина Debian KVM (в настоящее время запущенная в режиме восстановления с CD) показывает загруженные модули (рисунок ниже, к сожалению, невозможно скопировать и вставить текст с экрана KVM):
Но мне по-прежнему не удаётся загрузить виртуальную машину :( Всё, что я получаю:
Decompressing Linux... Parsing ELF Done
Booting the kernel...
Что еще мне стоит попробовать? Компиляция ядра со встроенными модулями virtio?
решение1
Все хорошо, VM загружается, запуская все службы (довольно много) правильно. Оказалось, что eblock был прав: добавления модулей в ядро и initrd было достаточно. Одной недостающей частью был ttyS0 вместо tty0, настроенный в grub («способ xen», поскольку xen подключается через порты 'S'), что было причиной отсутствия обычного списка шагов загрузки. Также была проблема со слишком быстрым возрождением mingetty (что приводило к бесконечным '5-минутным задержкам'), поэтому я переключился на tty в /etc/inittab:
1:2345:respawn:/sbin/getty tty1
2:2345:respawn:/sbin/getty tty2
....
Все хорошо, спасибо eblock