Xen 하이퍼바이저에서 VM 복사

Xen 하이퍼바이저에서 VM 복사

Xen 서버에서 실행되는 Debian7 VM의 전체 디스크를 복사했습니다(dd 명령 사용). 원본 이미지를 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을 실행할 수 있는 루트 액세스 권한이 있지만 xen 하이퍼바이저에 액세스할 수 없습니다.

내 KVM/virtualbox/ESXi에서 이 가상 머신을 시작하기 위해 할 수 있는 일이 있습니까?

결국 VMware에 넣고 싶기 때문에 질문에 VMware라는 태그가 붙었습니다. 저는 Xen에서 가져온 규칙을 이해하기 위해 kvm을 사용하고 있습니다(para vs. virtualization).

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-guest Debian VM(현재 CD에서 복구 모드로 실행 중)에 로드된 모듈이 표시됩니다(아래 그림, 안타깝게도 KVM 화면에서 텍스트를 복사하여 붙여넣을 수 없습니다).

로드된 모듈

그러나 여전히 가상 머신을 시작할 운이 없습니다 :( 내가 얻는 것은 다음과 같습니다.

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

제가 시도해야 할 다른 것이 있나요? 내장된 virtio 모듈로 커널을 컴파일하시겠습니까?

답변1

모든 것이 괜찮습니다. VM이 부팅되고 모든 서비스가 올바르게 시작됩니다(상당수). eblock이 옳았다는 것이 밝혀졌습니다. 커널과 initrd에 모듈을 추가하는 것만으로도 충분했습니다. 누락된 부분 중 하나는 grub에 구성된 tty0 대신 ttyS0입니다(xen이 "S" 포트를 통해 연결하기 때문에 "xen 방식"). 이것이 일반적인 부팅 단계 목록이 누락된 이유입니다. Mingetty가 너무 빨리 다시 생성되는 문제도 있어서(끝없이 "5분 지연" 발생), /etc/inittab에서 tty로 전환했습니다.

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

다 괜찮아요, eblock 고마워요

관련 정보