如何同时使用qemu和“-ngraphic”和“-monitor stdio”?

问题描述 投票:0回答:1

我正在使用panda(基于qemu的平台)来分析ubuntu。 我在服务器设备中运行它,因此我只能通过远程终端进行操作。

Panda 需要 stdio 才能与虚拟机一起操作。正常情况下命令如下:

panda-system-x86_64 -m 1G -monitor stdio -show-cursor  ubuntu-2204.qcow2 -loadvm test

当我在带有 GUI 的系统下运行它时,它将打开虚拟机和带有 qemu 监视器 的终端来进行操作。

但是当我使用“-ngraphic”禁用 GUI 时

panda-system-x86_64 -m 1G -monitor stdio -show-cursor  ubuntu-2204.qcow2 -loadvm test -nographic

“stdio”设备似乎已被多个设备使用。

当我删除“-monitor stdio”时

panda-system-x86_64 -m 1G -show-cursor  ubuntu-2204.qcow2 -loadvm test -nographic
它将进入guest ubuntu系统的终端。

此时,我需要用(ctrl c-a)将其更改为qemu监视器。

我认为可能有一些方法可以解决这个问题:

  1. “-ngraphic”将使用“stdio”作为输出,我该如何更改它?
  2. 有什么办法可以通过远程终端调用GUI吗?
  3. panda 需要“stdio”来操作,因为它使用了 python subprogress 模块,如下所示:
        p = subprocess.Popen(cmd, stdin = subprocess.PIPE, stdout = panda_stdout, stderr = panda_stderr)
    'cmd' 是运行上面的 panda 的命令。 有没有办法将'stdio'更改为其他与客户系统一起操作的方式以避免冲突?
  4. 当我得到像最后一张图片所示的终端时,我如何通过子进程的“stdio”发送“ctrl c-a”来获取 qemu 监视器?
qemu
1个回答
0
投票

QEMU 的“-ngraphic”选项是一种“做我的意思”类型的选项,它可以同时执行很多操作:它关闭 GUI 窗口,并且还使 stdio 成为多路复用串行 + QEMU 监视器(以及其他一些不太重要的事情)。如果您不想要所有这些事情,通常最好单独控制所有行为。

仅禁用 GUI 窗口而不执行任何其他操作的选项是“-display none”。然后,您可以使用“-monitor stdio”将监视器正常放置在终端上。

如果您没有图形终端,您还需要弄清楚如何与访客交互。如果来宾支持串行终端,您可以使用某些 -serial 选项来执行此操作,或者您可以将来宾配置为接受 ssh 连接并通过 ssh 进入其中。或者,如果您想要的是能够在网络连接上正常工作的 GUI 显示,您可以考虑使用 VNC 或 Spice 进行图形显示。

© www.soinside.com 2019 - 2024. All rights reserved.