Loading

qemu monitor

​ QEMU监控器(monitor)是QEMU实现与用户交互的一种控制台,一般用于为QEMU模拟器提供较为复杂的功能,包括为客户机添加和移除一些媒体镜像(如CD-ROM、磁盘镜像等),暂停和继续客户机的运行,快照的建立和删除,从磁盘文件中保存和恢复客户机状态,客户机动态迁移,查询客户机当前各种状态参数等。

(1) 重定向监视器控制台

​ -monitor dev

该参数的作用就是将monitor重定向到宿主机的dev设备上。

(2)dev设备的写法

  • vc 即虚拟控制台(Virtual Console),不加“-monitor”参数就会使用“-monitor vc”作为默认参数。而且,还可以用于指定monitor虚拟控制台的宽度和长度,如“vc:800x600”表示宽度、长度分别为800像素、600像素,“vc:80Cx24C”则表示宽度、长度分别为80个字符宽和24个字符长,这里的C代表字符(character)。注意,只有选择这个“vc”为“-monitor”的选项时,利用前面介绍的“Ctrl+Alt+2”组合键才能切换到monitor窗口,其他情况下不能用这个组合键。

  • /dev/xxx

    使用宿主机的终端(tty),如“-monitor/dev/ttyS0”是将monitor重定向到宿主机的ttyS0串口上去,而且QEMU会根据QEMU模拟器的配置来自动设置该串口的一些参数。

  • null

    空设备,表示不将monitor重定向到任何设备上,无论怎样也不能连接上monitor。

  • stdio

    标准输入输出,不需要图形界面的支持。“-monitor stdio”将monitor重定向到当前命令行所在标准输入输出上,可以在运行qemu命令后直接默认连接到monitor中。

(3) 常用命令

  • help

  • info subcommand

    info version

    info kvm

    info name

    info status

    info uuid

    info cpus

    info registers

    info tlb

    info mem

    info numa

    info mtree

    info balloon

    info pci

    info qtree

    info pci

    info chardev

    info network

    info usb

    info usbhost

    info snapshots

    info migrate

    info roms

    info vnc

    info history

  • commit

    提交修改部分的变化到磁盘镜像中,在使用了snapshot启动个参数的情况下。

    或是提交变化部分到后端镜像文件中。

  • c 或者cont 恢复qemu模拟器继续工作。stop 暂停qemu 模拟器的命令

  • change 改变一个设备的配合。change vnc localhost:2 ,change vnc password

    change ide1-cd0/path/to/some.iso

  • balloon

    改变分配给客户机的内存大小。如“balloon 512”表示改变分配给客户机的内存大小为512 MB。

  • device_add 和device_del 动态添加和移除设备。

    device_add pci-assin, host=02:00.0, id=mydev

    device_del mydev

  • usb_add和usb_del

    添加或移除一个USB设备,如“usb_add host:002.004”表示添加宿主机的002号USB总线中的004设备到客户机中,“usb_del 0.2”表示删除客户机中的某个USB设备。

  • savevm, loadvm, delvm

  • migrage, migrate_cancel

    动态迁移和取消动态迁移

    migrate tcp:des_ip:6666

    表示动态迁移当前客户机到IP地址为“des_ip”的宿主机的TCP6666端口上去,而“migrate_cancel”则表示取消当前进行中的动态迁移过程

  • cpu index 设置默认的cpu为指定的数字

  • sendkey keys

    发送按键

    sendkey ctrl-alt-delete

    ctrl-alt-f1

  • system_powerdown, system_reset, system_wakeup

    system_powerdown向客户机发送关闭电源的时间通知。一般客户机会执行关机操作。

    system_reset 让客户机系统重置,相当于直接拔掉电源,让后插上电源,按开机键开机。

    system_wakeup将客户机从暂停状态(suspend)中唤醒

  • x和xp

    x /fmt addr转存(dump)出从addr开始的虚拟内存地址。

    xp /fmt addr转存出从addr开始的物理内存地址。

    在上面两个命令中,fmt指定如何格式化输出转存出来的内存信息。

    fmt格式的语法是:/{count}{format}{size}。其中,count表示被转存出来条目的数量,format可以是x(hex,十六进制)、d(有符号的十进制)、u(无符号的十进制)、o(八进制)、c(字符)、i(asm汇编指令),size可以是b(8位)、h(16位)、w(32位)、g(64位)。

    另外,在x86架构体系下,format中的i可以根据实际指令长度自动设置size为h(16位)或w(32位)。x和xp这两个命令可以用于对客户机或者QEMU开发过程中的调试。

(4) 连接上monitor

  • rlwrap -C qmp socat STDIO UNIX:qmp socket 文件路径

    或者

  • qmp-shell ./qmp-sock

posted @ 2021-10-01 12:59  Test002  阅读(339)  评论(0)    收藏  举报