実行中の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代わりに、との対話を可能にするいくつかの特別なオプションから始めますlibvirtqemuqemu

たとえば、私のシステムでは、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 shutdownvirshこれはlibvirtdデーモンに送信され、デーモンはqemuチャネルを使用して特定のコマンドに変換します。

ただし、お客様の場合は使用していません。仮想libvirtマシンを使用または定義していません。代わりに手動で起動します。virt-managervirt-installvirsh define/createqemu

libvirt、インストールされている場合、仮想マシンは不明です。したがって、virshそれと対話しようとすることは意味がありません。

あなたが始めた方法では、具体的なqemuものを指定していません。監視装置対話するチャンネルなので、デフォルト値が得られます。

基本的には一般的に取得します杉の木グラフィックコンソール。

そこに入ってCtrl+Alt+2得ることができます人類モニタリングインタフェースそれはコマンドラインインターフェイスです。あなたは見るでしょう

 (qemu) 

コマンドを入力できる場所を尋ねるメッセージが表示されます。help要約してみてください。

くれたら名前仮想マシンに接続すると、そこからコマンドを使用して検索-nameできます。info name

ここでsavevmqemuコマンドを実行します。しかし、そのコマンドを使用するには、savevm私が知っているqcow2限り、1つ以上のディスクイメージを仮想マシンに接続する必要がありますが、これはあなたの場合には適していないようです。

仮想マシンの状態を中断して保存するには、プロンプトで次の操作を実行できます(qemu)

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

これにより、仮想マシンが中断され、圧縮状態がファイルに保存されます。その後、コマンドラインに追加して、保存したquit状態で仮想マシンを復元できます。-incoming 'exec:gunzip</path/to/savestate.gz'qemu-system

qemuに慣れている場合はできることがたくさんありますが、人生をより簡単にしたい場合は、おそらくlibvirtのようなqemuの管理ラッパーを使用します。

おすすめ記事