首页/云/云平台与虚拟化速查/virsh screenshot 抓取虚机画面
虚拟化操作94 条

virsh screenshot 抓取虚机画面

screenshot 直接抓取图形虚机当前显示内容并保存为 PPM 文件:排查引导卡死、查看桌面状态时不需要打开 VNC,配合 ImageMagick 转成 PNG 更易查看。

云平台与虚拟化速查云更新于 2026-10-13

virsh screenshot 抓取虚机画面

screenshot 直接抓取图形虚机当前显示的内容并保存为 PPM 文件,不需要打开 VNC 客户端。它的典型用途是快速取证:虚机卡在引导界面、Windows 出现蓝屏、桌面服务异常,抓一张图往往比让同事口头描述界面更快定位。输出格式是无压缩的 PPM,用 ImageMagick 转成 PNG 更便于查看与归档;对没有图形输出的文本控制台虚机,抓屏可能是空画面。

基本信息

适用平台使用 libvirt 的 Linux 宿主,目标虚机需有图形设备
抓屏命令virsh screenshot <域> <文件路径>
指定屏幕virsh screenshot <域> <文件路径> --screen 0
输出格式PPM,无压缩、体积较大
转码方式convert 或 magick 命令转为 PNG
适用对象VNC 或 Spice 图形控制台的虚机
常见失败文本控制台虚机或宿主无图形输出时抓到空文件

典型使用场景

  • 虚机卡在引导或登录界面,需要确认画面上的具体提示
  • Windows 蓝屏排查:记录错误码与相关提示文字
  • 图形服务异常:确认桌面是否启动、是否停在恢复模式
  • 自动化巡检:定期抓屏留档,作为界面状态的证据
  • 远程协助:把画面发给同事或厂商,减少口头描述误差
  • 变更前后对比:安装或升级后抓屏确认界面状态

抓屏与转码

抓屏与转码
virsh list                                    # 确认目标域正在运行
virsh screenshot vm1 /tmp/vm1.ppm              # 抓取当前画面为 PPM
convert /tmp/vm1.ppm /tmp/vm1.png              # 转 PNG(需要 ImageMagick)
ls -l /tmp/vm1.ppm /tmp/vm1.png                # 核对文件大小,PPM 通常明显更大
virsh screenshot vm2 /tmp/vm2.ppm --screen 0   # 多屏虚机指定屏幕编号
file /tmp/vm1.ppm                              # 确认文件类型,避免抓到空文件

结果与问题读法

现象含义处理方向
空文件或极小文件虚机无图形输出或图形设备未启用改用串口日志或检查域定义的图形设备
全黑画面屏幕保护、未登录或显示未初始化按键唤醒后重抓,或改看串口输出
画面停在固件界面引导失败或未从预期设备启动核对引导顺序与安装介质
画面正常但业务不通问题在系统内部而非显示层转向日志与网络排查
PNG 无法生成缺少转换工具或源文件损坏确认 ImageMagick 已安装并检查 PPM 完整性
抓屏是只读操作,不会改变虚机状态,适合在故障现场先取证再动手,避免排查过程破坏现场信息。
PPM 文件未压缩,一张 1080p 画面可能达到数 MB:留档时转成 PNG,并按巡检周期控制保留数量,避免占用过多空间。

易错点

  • 输出为 PPM 格式:不转码很多工具无法直接打开,误判为文件损坏
  • 对文本控制台虚机抓屏:得到空画面,应改用串口日志查看输出
  • 把抓屏当系统日志用:它只反映画面状态,内核与服务问题仍需日志
  • 长期留档未清理:未压缩文件累积占用磁盘,影响宿主空间
  • 画面停在固件界面就断定系统故障:实际可能是引导顺序或安装介质未连接

数据来源与参考

  • libvirt 文档:virsh screenshot
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌