Ubuntu 14.04 KVM - 오류: 내부 오류: 모니터에 연결하는 동안 프로세스가 종료되었습니다: qemu-system-x86_64:

Ubuntu 14.04 KVM - 오류: 내부 오류: 모니터에 연결하는 동안 프로세스가 종료되었습니다: qemu-system-x86_64:

다음 단계에 따라 하나의 Ubuntu 14.04 호스트에서 다른 호스트로 KVM 게스트를 마이그레이션하려고 합니다.여기에 설명되어 있습니다.

이제 새 호스트의 단일 폴더에 "상태" 파일, xml 구성 및 qcow2 img 파일이 있고 qcow2 이미지 파일의 새 위치를 가리키도록 xml 구성을 업데이트했습니다.

실행하려고 하면 virsh create [guest-id].xml다음과 같은 오류 메시지가 나타납니다.

error: internal error: process exited while connecting to monitor: 
qemu-system-x86_64: -drive file=/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img,if=none,id=drive-virtio-disk0,format=raw: 
could not open disk image /media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img: 
Could not open '/media/stuart/storage2/kvm/dns.technostu.com/dns.technostu.com.img': Permission denied

디버깅 및 시도한 해결 방법

  • 이미 libvirtd 그룹에 나를 추가하고 다시 로그인했습니다.

  • 파일 경로가 올바른지 확인했습니다

  • .img 파일의 소유권을 본인에게로 변경했는데 sudo를 사용하거나 사용하지 않고 명령을 실행한 후 파일의 소유권이 root:root권한이 있는 상태로 계속 변경됩니다.-rwxr-xr-x

  • 나는 달리기를 시도했다.

    sudo apt-get install apparmor-profiles apparmor-utils
    sudo aa-complain /usr/lib/libvirt/virt-aa-helper
    

    에서이 게시물, 그러나 그것은 작동하지 않았습니다.

  • 지정된대로 XML 파일의 에뮬레이터를 변경해 보았습니다.여기.

Ubuntu 14.04의 새 호스트로 게스트를 "가져오기"하려면 어떻게 해야 합니까?

답변1

비슷한 문제가있었습니다.

kvm 그룹에 내 사용자 추가

sudo usermod -a -G kvm username

/dev/kvm그런 다음 루트 및 그룹 kvm이 소유하고 있는지 확인했습니다.

그 후 기존 VM(VirtualBox에서 변환됨)의 소유권을 사용자 이름:kvm으로 변경했습니다.

group=kvm user=username마지막으로 qemu.conf를 설정했습니다. 이로 인해 문제가 해결되었습니다.

답변2

컴퓨터를 껐다가 다시 켜면(설치 후 재부팅하지 않았음 kvm) 오류 메시지가 다음과 같이 변경되었습니다.

error: internal error: process exited while connecting to monitor: qemu-system-x86_64

구글링을 하다가 해당 오류를 발견했습니다.이 게시물다음을 추가하는 것이 좋습니다.

user = "root"
group = "root"

파일 에 /etc/libvirt/qemu.conf. 따옴표를 반드시 포함하세요.

다시 재부팅한 후 성공적으로 실행할 수 있었습니다 virsh create [guest-id].xml.

답변3

버전 6.0.0부터는 Linux 기능이 제거되지 않으므로 루트 권한으로 QEMU를 실행하는 것은 권장되지 않습니다.

제 경우에는 AppArmor였습니다. VM에 배터리용 SSDT 파일을 추가하고 싶었습니다. AppArmor에서 액세스를 허용하는 일부 폴더가 있고 다른 폴더(예: /home/something)는 허용되지 않습니다. /var/lib/libvirt/images/허용된 폴더 중 하나입니다. 거기에 파일을 배치했지만 AppArmor 정책에서는 여전히 허용하지 않았습니다(에서 볼 수 있듯이 sudo cat /var/log/kern.log | grep -C 10 apparmor | grep -C 10 qemu). 효과가 있었던 것은 다음과 같이 /var/lib/libvirt/images/SSDT1.dat rk추가 하는 것이었습니다:/etc/apparmor.d/libvirt/TEMPLATE.qemu

#
# This profile is for the domain whose UUID matches this file.
#

#include <tunables/global>

profile LIBVIRT_TEMPLATE flags=(attach_disconnected) {
  #include <abstractions/libvirt-qemu>
  /var/lib/libvirt/images/SSDT1.dat rk,
}

관련 정보