명령줄에서 QEMU VM을 시작하는 방법은 무엇입니까?

명령줄에서 QEMU VM을 시작하는 방법은 무엇입니까?

ubuntu20.10QEMU 구성에 대해 자세히 알아보려면 다음을 사용하는 대신 명령줄에서 직접 VM을 시작하고 싶습니다.가상 관리자.

내가 읽고libvirt xml을 qemu 명령줄로 변환한 가지 방법은 /var/log/libvirt/qemu/ubuntu20.10.log호출된 명령을 검색하는 것 입니다 qemu-system-x86_64.

예를 들어, virt-manager를 통해 가상 머신을 시작한 다음 해당 로그를 확인했습니다.

LC_ALL=C \
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin \
HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10 \
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/.local/share \
XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/.cache \
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/.config \
QEMU_AUDIO_DRV=spice \
/usr/bin/qemu-system-x86_64 \
-name guest=ubuntu20.10,debug-threads=on \
-S \
-object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/master-key.aes \
...

그러나 호출하면 다음 오류가 발생합니다.

2021-03-11T21:38:13.041883Z qemu-system-x86_64: - 객체 비밀, id=masterKey0, 형식=raw, file=/var/lib/libvirt/qemu/domain-11-ubuntu20.10/master-key .aes:

/var/lib/libvirt/qemu/domain-11-ubuntu20.10/master-key.aes를 읽을 수 없습니다: '/var/lib/libvirt/qemu/domain-11-ubuntu20.10/master-key 파일을 열 수 없습니다. ' .aes": 해당 파일이나 디렉터리가 없습니다.

실제로 /var/lib/libvirt/qemu/domain-11-ubuntu20.10/존재하지 않습니다.

분명히 잘못된 명령이 기록되는 이유는 무엇입니까? CLI를 통해 가상 머신을 올바르게 시작하는 방법은 무엇입니까?


업데이트: 추가 정보

/var/lib/libvirt/qemu/domain-xx-ubuntu20.10/virt-manager를 통해 가상머신을 시작하면 폴더가 임시로 생성되는 것 같습니다. VM을 중지하면 폴더가 다시 삭제됩니다(따라서 명령 오류).

또한 링크된 게시물에서 제안된 다른 솔루션도 시도했습니다.

대안 2

ps -fA | cat # copy qemu command while VM started via virt-manager
# problem is the same here with a temporary folder being referenced.

대안 3

virsh domxml-to-native qemu-argv --domain ubuntu20.10

도메인 폴더가 가정되지만 /var/lib/libvirt/qemu/domain--1-ubuntu20.10존재하지 않습니다. 명령 출력:

LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10 XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/.local/share XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/.cache XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/.config QEMU_AUDIO_DRV=spice /usr/bin/qemu-system-x86_64 -name guest=ubuntu20.10,debug-threads=on -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/master-key.aes ...

호출 시 예상대로 다음 오류가 발생합니다.

2021-03-12T09:34:03.794205Z qemu-system-x86_64: - 객체 비밀, id=masterKey0, 형식=raw, 파일=/var/lib/libvirt/qemu/domain--1-ubuntu20.10/master- key.aes: /var/lib/libvirt/qemu/domain--1-ubuntu20.10/master-key.aes: '/var/lib/libvirt/qemu/domain--1-ubuntu20 파일을 열 수 없습니다. 10/master-key.aes": 해당 파일이나 디렉터리가 없습니다.

QEMU/KVM/virt-manager 생태계의 초보자로서 이것이 혼란스럽습니다. 추가 정보가 필요하면 질문을 업데이트해 드리겠습니다.


  • 우분투 20.04(최신 업데이트)
  • 웨일스어 6.0.0
  • 가상 관리자 2.2.1
  • QEMU 에뮬레이터 버전 4.2.1(Debian 1:4.2-3ubuntu6.14)
  • 가상 머신에 스냅샷이 있습니다(중요한 경우).

답변1

문제를 잘 이해했다면 나에게 맞는 해결책을 찾은 것입니다.https://www.garron.me/en/bits/start-stop-kvm-virtual-machine-command-line.html. 제가 앱에 대해 제안한 내용은 다음과 같습니다. 방금 Virtual Manager를 사용하여 가상 머신을 만들고 이름을 "Xubuntu20.04"로 지정했습니다. 실제로 virsh에 의해 닫히고 올바르게 나열됩니다.

~$ virsh list --all
 Id   Name           State
-------------------------------
 -    Xubuntu20.04   shut off

그런 다음 virsh로 시작합니다.

~$ virsh start Xubuntu20.04
Domain Xubuntu20.04 started

마지막으로 원격 뷰어를 사용하여 가상 머신에 대한 연결을 설정했습니다. 저는 가상 머신용으로 설정한 두 개의 모니터를 표시할 수 있기 때문에 Remote Viewer를 사용합니다. 이 예에서는 기본 포트 5900을 유지했지만 편의에 따라 변경할 수 있습니다.

~$ remote-viewer spice://localhost:5900

표시되는 출력에 대해 걱정하지 마십시오. 가상 머신이 실제로 시작됩니다.

(remote-viewer:15718): Gtk-WARNING **: 14:32:38.836: Theme parsing error: gtk.css:2:15: Unit is missing.

(remote-viewer:15718): GLib-GObject-WARNING **: 14:32:39.635: value "64" of type 'gint' is invalid or out of range for property 'desktop-width' of type 'gint'

(remote-viewer:15718): GLib-GObject-WARNING **: 14:32:39.635: value "64" of type 'gint' is invalid or out of range for property 'desktop-height' of type 'gint'

그게 다입니다. 이 팁이 누군가에게 도움이 되기를 바랍니다.

관련 정보