如何使用 -ngraphic 和 -monitor 运行 qemu,但仍然能够向来宾发送 Ctrl+C 并使用 Ctrl+A X 退出?

2023-12-01

我刚刚发现如果你运行 QEMU-monitor telnet::45454,server,nowait -nographic,然后 Ctrl-C 终止 QEMU VM,而不是在来宾上生成 SIGINT:使用 -ngraphic 运行 qemu 时如何将 Ctrl-C 传递给来宾? | Unix 和 Linux 堆栈交换

但是,我不想删除-monitor因为自动化监控命令很方便,例如它允许我创建一个帮助程序脚本,它可以执行以下操作:

echo 'savevm my_snap_id' |  telnet localhost 45454

有没有办法既保留我的Ctrl-C and -monitor与...一起工作-nographic?

完整的 QEMU 命令:

qemu-system-x86_64 -append 'root=/dev/vda console=ttyS0' -kernel 'bzImage' -drive file='rootfs.ext2.qcow2,if=virtio,format=qcow2' -nographic -monitor telnet::45454,server,nowait

在 QEMU 2.10.1、Ubuntu 17.10 上,完整的 QEMU 命令:

./x86_64-softmmu/qemu-system-x86_64 \
-append "root=/dev/sda console=ttyS0 nokaslr printk.time=y" \
-drive file="${dir}/out/x86_64/buildroot/images/rootfs.ext2.qcow2,format=qcow2" \
-kernel "${dir}/out/x86_64/buildroot/images/bzImage" \
-nographic \

如果我添加:

-chardev stdio,id=s1,signal=off \
-serial none -device isa-serial,chardev=s1

then Ctrl+C开始按预期工作,但是Ctrl+A X退出 QEMU 不起作用,这有时很烦人:我可以使用telnet to quit,但它需要更多的打字/自动化。

http://lists.nongnu.org/archive/html/qemu-discuss/2018-04/msg00006.html


Add -serial mon:stdio并删除其他-serial options

以下满足我的所有要求:

./x86_64-softmmu/qemu-system-x86_64 \
  -append 'root=/dev/vda nopat nokaslr norandmaps printk.devkmsg=on printk.time=y console=ttyS0' \
  -drive file="${dir}/out/x86_64/buildroot/images/rootfs.ext2.qcow2,if=virtio,format=qcow2" \
  -kernel "${dir}/out/x86_64/buildroot/images/bzImage" \
  -nographic \
  -monitor telnet::45454,server,nowait \
  -serial mon:stdio

或者对于 aarch64:

./aarch64-softmmu/qemu-system-aarch64 \
  -M virt \
  -append 'root=/dev/vda nokaslr norandmaps printk.devkmsg=on printk.time=y' \
  -cpu cortex-a57 \
  -drive file="${dir}/out/aarch64/buildroot/images/rootfs.ext2.qcow2,if=virtio,format=qcow2" \
  -kernel "${dir}/out/aarch64/buildroot/images/Image" \
  -monitor telnet::45454,server,nowait \
  -nographic \
  -serial mon:stdio \

在 QEMU 9d2a09063922757ec3640d93f6b35921ab95b1c2 上测试 (v2.12.0-rc2 后)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 -ngraphic 和 -monitor 运行 qemu,但仍然能够向来宾发送 Ctrl+C 并使用 Ctrl+A X 退出? 的相关文章

  • qemu-linux-user ELF vs XCOFF 1

    最后更新2021 12 14 注 以下及以后本系列都是个人对相关技术在此时此刻的理解和研究 会根据学习深入 不断修正 但过去历史文章不见得会被 及时 修改订正 见谅 当然欢迎读者批评指正 本人虚心接受 但什么时候把文章修改正确 不好说 qe
  • QEMU虚拟机中如何安装Virtio驱动

    在计算机虚拟化中 Virtio是一种半虚拟化解决方案 即需要对Guest OS进行一定的修改 安装相应的驱动程序 能够对虚拟机的I O性能进行大幅的提升 在QEMU KVM的环境中 Virtio的后端驱动由QEMU程序提供 不需要额外的安装
  • 使用9p virtFS在宿主机和vm之间共享多个文件 sharing multiple host files with guest using 9p virtFS

    目录 前置条件 准备共享目录 编辑qemu conf 前置条件 根据qemu官方文档 首先准备前置条件 测试条件为pve 7 1 10 omv 5 6 26 1 omv 6 0 19 debian 11 首先确保guest的kernel中的
  • 从零开始制作Linux

    提到制作Linux 大家都能想到如雷贯耳 大名鼎鼎的Linux from scratch 但Linux from scratch的复杂性不是普通人能轻易掌握的 对于初学者来说 任何步骤出现不一致 会让初学者遇到挫拆 攻破LFS的信心越来越低
  • ovirt-node和ovirt-engine相连遇到的问题解决办法

    1 Host 192 168 70 7 does not comply with the cluster Default emulated machines The Hosts emulated machines are
  • qemu模拟器搭建arm运行环境搭建笔记

    qemu system arm M vexpress a9 m 512M kernel home lyk Downloads qemu linux 3 16 arch arm boot zImage nographic append roo
  • 高性能本地存储设计

    本地存储常规架构 通用的云本地存储常规架构如下图所示 以MySQL数据库为例 它通过POSIX API与云主机内核交互 云主机内核包括一个标准文件系统和标准的块设备接口 云主机内核下面是云物理机内核 它自上而下由标准文件系统 标准块设备接口
  • Real-time Linux

    所谓实时操作系统 Real time Opearting System 是指当外接世界或数据产生时 能够接受并以足够快的速度予以处理 其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应 调度一切可利用的资源完成实时任务
  • 【安装篇】- 基于 VMWARE Oracle Linux7.9 安装 Oracle19c RAC 详细配置方案

    作者 yanwei 来源 墨天轮 https www modb pro db 95684 大家好 我是 JiekeXu 很高兴又和大家见面了 今天和大家一起来看看 Linux7 9 安装 Oracle19c RAC 详细配置方案 欢迎点击上
  • 实现自定义 u-boot 命令

    我想添加自定义命令命令u boot可以是一个简单的 hello world 命令 搜索后我发现了这个链接Yocto u boot 自定义命令它说看的地方timer命令输入cmd misc c作为起点 我怎么带这个timer命令到我的 u b
  • 在 SR-IOV 虚拟功能 (VF) NIC 之间转发数据包

    我有一个支持 Intel SR IOV 的 Intel 82599ES 10G NIC 我已成功创建了 8 个虚拟功能 VF 并将其分配给 2 个 qemu kvm VM 每个 VM 2 个 VF 两台虚拟机都使用分配的 VF 运行 DPD
  • 如何在 Qemu 下启动 FreeBSD 镜像

    我有一个 FreeBSD 映像 其中包含 boot loader 和 boot kernel 等 它在 EC2 实例下启动正常 但我想使用 Qemu 启动它 我尝试过各种方法 但都没有效果 见下文 qemu system x86 64 ke
  • 如何使用 qemu 编译和构建 aarch64 的 python 包?

    我正在尝试为一个包构建 python 轮子 lap https github com gatagat lap 为了aarch64建筑学 我的主机环境是 WSL2 和 Ubuntu 20 04docker 目标是BuildrootGNU Li
  • 如何用汇编语言打印字符串

    我正在尝试使用 NASM 在 Q Emulator 中打印字符串 我的代码如下 mov bx HELLO mov ah 0x0e int 0x10 HELLO db Hello 0 jmp times 510 db 0 dw 0xaa55
  • 如何使用 GCC 生成一个最小的 BIOS hello world 引导扇区,以便在真实硬件上通过 USB 记忆棒工作?

    我已经成功地生成了一个可与 QEMU 2 0 0 Ubuntu 14 04 配合使用的最小引导扇区 code16 global start start cli mov msg si mov 0x0e ah loop lodsb or al
  • 如何使用QEMU学习ARM Linux内核开发?

    我想学习它 比如开发一些设备驱动程序等 并为此使用 QEMU 因为我没有像 beagle 板这样的 ARM 硬件板 你们有什么建议 我可以使用 Qemu 模拟器来学习 ARM 目标上的 Linux 内核吗 或者我应该尝试的任何其他选择 这取
  • 如何在32位Linux上运行16位代码?

    我编写了一个小型 16 位汇编程序 该程序在某些内存位置写入一些值 有没有办法可以在 Linux 上的 32 位保护模式下测试它 qemu http wiki qemu org Main Page dosbox http www dosbo
  • 为什么 ls 的这些指令数相差如此之大? (ptrace vs perf vs qemu)

    我想统计运行 bin ls 时执行的指令总数 我使用了 3 种方法 其结果差异很大 我不知道为什么 1 使用 ptrace 进行指令计数 我编写了一段代码 调用 ls 的实例并使用 ptrace 单步执行它 include
  • qemu KVM内核模块没有这样的文件或目录

    我目前正在上操作系统课程 我需要使用 qemu 来运行我的教授提供的一个小型操作系统 我正在尝试在 MacBook Air 5 2 上的 virtualbox 上的 ubuntu 12 04 虚拟机中使用 qemu 我知道我遇到的问题可能与
  • Yocto“无法运行 qemu:无法初始化 SDL(x11 不 > 可用)”

    所以我在本地构建服务器上安装了 Yocto 因为谁希望大规模构建占用他们的工作区 amirite 主机和服务器是Arch Linux 4 19 44 1 lts 无论如何 我只是从找到的快速构建页面运行示例here https www yo

随机推荐