시작할 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
virsh
libvirt
가상화 관리 프레임워크를 운영하기 위한 CLI 도구입니다 . 이 프레임워크 내에서는 libvirt
관리 인터페이스를 qemu
포함 하여 지원되는 모든 하이퍼바이저를 사용하여 xen
가상 머신을 정의할 수 있습니다 virtualbox
.
libvirt
와 같은 것보다 더 높은 수준을 제공하므로 바로 시작할 qemu
필요가 없습니다 . qemu
대신 과의 상호 작용을 허용하는 몇 가지 특별한 옵션으로 시작하게 됩니다 libvirt
.qemu
qemu
예를 들어, 내 시스템에서 libvirt
qemu는 가상 머신에 대해 다음 매개변수를 사용하여 시작됩니다.
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-manager
virt-install
virsh define/create
qemu
libvirt
, 설치된 경우 가상 머신을 알 수 없습니다. 그러므로 virsh
그것과 상호 작용하려고 노력하는 것은 의미가 없습니다.
당신이 시작한 방식에서는 qemu
구체적인 것을 지정하지 않았습니다.감시 장치상호작용할 채널이므로 기본값을 얻게 됩니다.
기본적으로 당신은 일반적으로 얻을 것입니다삼나무그래픽 콘솔.
거기에 들어가서 Ctrl+Alt+2얻을 수 있습니다인류모니터링 인터페이스. 그것은 명령줄 인터페이스입니다. 당신은 볼 것이다
(qemu)
명령을 입력할 수 있는 위치를 묻는 메시지가 나타납니다. help
요약해 보세요 .
당신이 준 경우이름가상 머신에 연결 하면 거기에서 명령을 사용하여 검색 -name
할 수 있습니다 .info name
여기서 savevm
qemu 명령을 실행합니다. 하지만 해당 명령을 사용하려면 savevm
내가 아는 qcow2
한 가상 머신에 하나 이상의 디스크 이미지를 연결해야 하지만 이는 귀하의 경우에는 적합하지 않은 것 같습니다.
가상 머신의 상태를 일시 중단하고 저장하려면 프롬프트에서 다음을 수행할 수 있습니다 (qemu)
.
migrate "exec:gzip>/path/to/savedstate.gz"
이렇게 하면 가상 머신이 일시 중단되고 압축 상태가 파일에 저장됩니다. 그런 다음 명령줄에 추가하여 quit
저장된 상태에서 가상 머신을 복원 할 수 있습니다.-incoming 'exec:gunzip</path/to/savestate.gz'
qemu-system
qemu에 익숙하다면 할 수 있는 일이 많지만, 삶을 더 쉽게 만들고 싶다면 아마도 libvirt와 같은 qemu의 관리 래퍼를 사용할 것입니다.