실행 중인 QEMU 가상 머신의 이름을 어떻게 확인하나요?

실행 중인 QEMU 가상 머신의 이름을 어떻게 확인하나요?

시작할 QEMU VM의 이름을 확인하고 싶습니다.

qemu-system-x86_64 -m 4096 -smp 1 \
  -net user -net nic,model=virtio -boot menu=on \
  -drive file=guixsd-usb-install-0.13.0.x86_64-linux.img \
-drive file=guixsd.img

(에 따르면GuixSD 가상 머신 설치 가이드). 가상 머신 이름을 결정하려는 이유는 savevm이 명령을 사용하여 머신 상태를 저장할 수 있기 때문입니다(VirtualBox 가상 머신이 수행하는 방식과 유사). 나는 다음을 사용해 보았습니다.

virsh -c qemu:///system list

그러나 이것은 다음을 반환합니다.

 Id    Name                           State
----------------------------------------------------

동일하게 실행하십시오.

ps -ef | grep qemu-system-x86_64

(모든이 AskUbuntu 답변) 가상 머신을 시작하는 데 사용하는 명령 때문에 도움이 되지 않습니다. 상관 관계가 있는 경우 Gentoo Linux를 호스트 OS로 실행하고 있습니다.

답변1

virshlibvirt가상화 관리 프레임워크를 운영하기 위한 CLI 도구입니다 . 이 프레임워크 내에서는 libvirt관리 인터페이스를 qemu포함 하여 지원되는 모든 하이퍼바이저를 사용하여 xen가상 머신을 정의할 수 있습니다 virtualbox.

libvirt와 같은 것보다 더 높은 수준을 제공하므로 바로 시작할 qemu필요가 없습니다 . qemu대신 과의 상호 작용을 허용하는 몇 가지 특별한 옵션으로 시작하게 됩니다 libvirt.qemuqemu

예를 들어, 내 시스템에서 libvirtqemu는 가상 머신에 대해 다음 매개변수를 사용하여 시작됩니다.

qemu-system-x86_64  -enable-kvm \
                    -name freebsd11.0 -S \
                    -machine pc-i440fx-wily,accel=kvm,usb=off \
                    -cpu Nehalem \
                    -m 1536 \
                    -realtime mlock=off \
                    -smp 3,sockets=3,cores=1,threads=1 \
                    -uuid 82f3448e-2767-46b1-a7d1-7072184ef924 \
                    -no-user-config \
                    -nodefaults \
                    -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-freebsd11.0/monitor.sock,server,nowait \
                    -mon chardev=charmonitor,id=monitor,mode=control \
                    -rtc base=utc,driftfix=slew \
                    -global kvm-pit.lost_tick_policy=discard \
                    -no-hpet \
                    -no-shutdown \
                    -global PIIX4_PM.disable_s3=1 \
                    -global PIIX4_PM.disable_s4=1 \
                    -boot strict=on \
                    -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 \
                    -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 \
                    -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 \
                    -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 \
                    -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 \
                    -drive file=/home/chazelas/Downloads/FreeBSD-11.0-RC1-amd64.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 \
                    -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \
                    -netdev tap,fd=26,id=hostnet0,vhost=on,vhostfd=28 \
                    -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:11:8a:53,bus=pci.0,addr=0x3 \
                    -chardev pty,id=charserial0 \
                    -device isa-serial,chardev=charserial0,id=serial0 \
                    -chardev spicevmc,id=charchannel0,name=vdagent \
                    -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 \
                    -spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on \
                    -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16,bus=pci.0,addr=0x2 \
                    -device intel-hda,id=sound0,bus=pci.0,addr=0x4 \
                    -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 \
                    -chardev spicevmc,id=charredir0,name=usbredir \
                    -device usb-redir,chardev=charredir0,id=redir0 \
                    -chardev spicevmc,id=charredir1,name=usbredir \
                    -device usb-redir,chardev=charredir1,id=redir1 \
                    -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 \
                    -msg timestamp=on

이들 중 대부분은 가상 머신의 가상 하드웨어에 대한 사양이지만 다음도 확인할 수 있습니다.

-chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-freebsd11.0/monitor.sock,server,nowait 
-mon chardev=charmonitor,id=monitor,mode=control

libvirt상호작용할 수 있는 채널을 지정합니다 qemu(일부 JSON 기반 사용).기계규약)

하지만 직접적으로 사용하지는 않을 것입니다. virsh유사한 명령을 실행할 수 있습니다 virsh shutdown. virsh이는 libvirtd데몬으로 전송되며, 데몬은 qemu채널을 사용하여 특정 명령으로 변환합니다.

그러나 귀하의 경우에는 을(를) 사용하고 있지 않습니다 . 가상 libvirt머신을 사용 하거나 정의하고 있지 않습니다. 대신 수동으로 시작합니다.virt-managervirt-installvirsh define/createqemu

libvirt, 설치된 경우 가상 머신을 알 수 없습니다. 그러므로 virsh그것과 상호 작용하려고 노력하는 것은 의미가 없습니다.

당신이 시작한 방식에서는 qemu구체적인 것을 지정하지 않았습니다.감시 장치상호작용할 채널이므로 기본값을 얻게 됩니다.

기본적으로 당신은 일반적으로 얻을 것입니다삼나무그래픽 콘솔.

거기에 들어가서 Ctrl+Alt+2얻을 수 있습니다인류모니터링 인터페이스. 그것은 명령줄 인터페이스입니다. 당신은 볼 것이다

 (qemu) 

명령을 입력할 수 있는 위치를 묻는 메시지가 나타납니다. help요약해 보세요 .

당신이 준 경우이름가상 머신에 연결 하면 거기에서 명령을 사용하여 검색 -name할 수 있습니다 .info name

여기서 savevmqemu 명령을 실행합니다. 하지만 해당 명령을 사용하려면 savevm내가 아는 qcow2한 가상 머신에 하나 이상의 디스크 이미지를 연결해야 하지만 이는 귀하의 경우에는 적합하지 않은 것 같습니다.

가상 머신의 상태를 일시 중단하고 저장하려면 프롬프트에서 다음을 수행할 수 있습니다 (qemu).

migrate "exec:gzip>/path/to/savedstate.gz"

이렇게 하면 가상 머신이 일시 중단되고 압축 상태가 파일에 저장됩니다. 그런 다음 명령줄에 추가하여 quit저장된 상태에서 가상 머신을 복원 할 수 있습니다.-incoming 'exec:gunzip</path/to/savestate.gz'qemu-system

qemu에 익숙하다면 할 수 있는 일이 많지만, 삶을 더 쉽게 만들고 싶다면 아마도 libvirt와 같은 qemu의 관리 래퍼를 사용할 것입니다.

관련 정보