qemu-system-tricore - 云端在线

这是 qemu-system-tricore 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


qemu-doc - QEMU 模拟器用户文档

概要


用法:qemu-system-i386 [选项] [磁盘图像]

商品描述


QEMU PC 系统仿真器模拟以下外围设备:

- i440FX 主机 PCI 桥和 PIIX3 PCI 到 ISA 桥

- Cirrus CLGD 5446 PCI VGA 卡或带有 Bochs VESA 扩展的虚拟 VGA 卡(硬件
级别,包括所有非标准模式)。

- PS/2 鼠标和键盘

- 2 个 PCI IDE 接口,支持硬盘和 CD-ROM

- 软盘

- PCI 和 ISA 网络适配器

- 串口

- Creative SoundBlaster 16 声卡

- ENSONIQ AudioPCI ES1370 声卡

- Intel 82801AA AC97 Audio 兼容声卡

- 英特尔高清音频控制器和 HDA 编解​​码器

- Adlib (OPL2) - Yamaha YM3812 兼容芯片

- Gravis Ultrasound GF1 声卡

- CS4231A兼容声卡

- PCI UHCI USB 控制器和虚拟 USB 集线器。

SMP 最多支持 255 个 CPU。

QEMU 使用来自 Seabios 项目的 PC BIOS 和 Plex86/Bochs LGPL VGA BIOS。

QEMU 使用 Tatsuyuki Satoh 的 YM3812 仿真。

QEMU 使用 GUS 仿真(GUSEMU32http://www.deinmeister.de/gusemu/>) 由蒂博尔“TS”
舒茨。

请注意,默认情况下,GUS 共享 IRQ(7) 有并口,所以必须告诉QEMU
没有并行端口有工作 GUS。

qemu-system-i386 dos.img -soundhw gus -并行无

或者:

qemu-system-i386 dos.img -设备 gus,irq=5

或者其他一些无人认领的 IRQ。

CS4231A是用于Windows Sound System和GUSMAX产品的芯片

配置


磁盘图像 是 IDE 硬盘 0 的原始硬盘映像。某些目标不需要磁盘
图片。

标准选项:

-h 显示帮助并退出

-版
显示版本信息并退出

-机 [类型=]姓名[,道具=折扣值[,...]]
通过选择仿真机 姓名. 使用“-machine help”列出可用的机器。
支持的机器属性有:

加速度=加速1[:加速2[:...]]
这用于启用加速器。 根据目标架构,kvm,
xen 或 tcg 可用。 默认情况下,使用 tcg。 如果有不止一个
指定加速器,如果前一个失败,则使用下一个
初始化。

kernel_irqchip=开|关
在可用时为所选加速器启用内核 irqchip 支持。

gfx_passthru=开|关
在可用时为所选机器启用 IGD GFX 直通支持。

vmport=开|关|自动
启用 VMWare IO 端口仿真,用于 vmmouse 等。 auto 表示选择
基于加速度的值。 对于 accel=xen,默认为关闭,否则默认为
上。

kvm_shadow_mem=大小
定义 KVM 影子 MMU 的大小。

转储来宾核心=开|关
在核心转储中包含来宾内存。 默认为开启。

内存合并=开|关
启用或禁用内存合并支持。 此功能在受支持时
主机,在虚拟机实例之间删除相同的内存页面(由
默认)。

iommu=开|关
启用或禁用模拟 Intel IOMMU (VT-d) 支持。 默认为关闭。

aes-key-wrap=开|关
在 s390-ccw 主机上启用或禁用 AES 密钥包装支持。 此功能
控制是否将创建 AES 包装密钥以允许执行 AES
密码功能。 默认为开启。

dea-key-wrap=开|关
在 s390-ccw 主机上启用或禁用 DEA 密钥包装支持。 此功能
控制是否将创建 DEA 包装密钥以允许执行 DEA
密码功能。 默认为开启。

-中央处理器 模型
选择 CPU 型号(“-cpu 帮助”列表和附加功能选择)

-smp [CPU=]n[,核心=颜色][,线程=线程][,套接字=插座][,最大CPU=最大CPU]
模拟 SMP 系统 n CPU。 在 PC 目标上,最多支持 255 个 CPU。 在
Sparc32 目标,Linux 将可用 CPU 的数量限制为 4。对于 PC 目标,
颜色 每个套接字的数量 线程 每个内核和总数
插座 可以指定。 将计算缺失值。 如果三个值中的任何一个
给定,CPU 总数 n 可以省略。 最大CPU 指定最大值
可热插拔 CPU 的数量。

-沼 节点[,内存=尺寸][,CPU=中央处理器[-cpu]][,节点id=节点]
-沼 节点[,memdev=id][,CPU=中央处理器[-cpu]][,节点id=节点]
模拟多节点 NUMA 系统。 如果 成员, 内存开发CPU的 被省略,资源是
平分。 另外,请注意 -NUMA 选项不分配任何指定的
资源。 也就是说,它只是将现有资源分配给 NUMA 节点。 这意味着
仍然必须使用 -m, -smp 分别分配 RAM 和 VCPU 的选项,以及
或者 -目的 指定内存后端 内存开发 子选项。

成员内存开发 是互斥的。 此外,如果一个节点使用 内存开发, 所有的
他们必须使用它。

-添加-fd FD=fd,设置=[,不透明=不透明]
将文件描述符添加到 fd 集。 有效的选项是:

FD=fd
此选项定义了将副本添加到 fd 集的文件描述符。
文件描述符不能是 stdin、stdout 或 stderr。

设置 =
此选项定义要添加文件描述符的 fd 集的 ID。

不透明=不透明
此选项定义了一个自由格式的字符串,可用于描述 fd.

您可以使用 fd 集中预先打开的文件描述符打开图像:

qemu-系统-i386
-add-fd fd=3,set=2,opaque="rdwr:/path/to/file"
-add-fd fd=4,set=2,opaque="rdonly:/path/to/file"
-驱动器文件=/dev/fdset/2,index=0,media=disk

-组 .id.ARG=折扣值
设置参数 ARG 对于项目 id 类型 "

-全球的 司机.支柱=折扣值
-全球的 司机=司机,属性=财产,值=折扣值
设置默认值 司机的财产 支柱折扣值,例如:

qemu-system-i386 -global ide-drive.physical_block_size=4096 -drive file=file,if=ide,index=0,media=disk

特别是,您可以使用它来为创建的设备设置驱动程序属性
由机器型号自动。 创建未创建的设备
自动并在其上设置属性,使用 -设备.

-全球的 司机.支柱=折扣值 是 -global 的简写
司机=司机,属性=支柱,值=折扣值. 普通语法即使在 司机
包含一个点。

-启动
[订单=驱动器][,一次=驱动器][,菜单=开|关][,splash=名称][,飞溅时间=时间][,重启超时=rb_超时][,严格=开|关]
指定引导顺序 驱动器 作为一串驱动器号。 有效的驱动器号取决于
目标架构。 x86 PC 使用:a、b(软盘 1 和 2)、c(第一块硬盘)、
d(第一张CD-ROM),np(来自网络适配器1-4的Etherboot),硬盘引导是
默认。 要仅在第一次启动时应用特定的引导顺序,请通过以下方式指定它
一旦.

可以通过以下方式启用交互式启动菜单/提示 菜单=开 至于固件/BIOS
支持他们。 默认为非交互式引导。

启动画面可以传递给 bios,使用户能够将其显示为徽标,当
选项飞溅=名称 给出并且 menu=on,如果固件/BIOS 支持它们。 目前
Seabios for X86 系统支持它。 限制:启动文件可以是 jpeg 文件
或 24 BPP 格式(真彩色)的 BMP 文件。 该决议应得到委员会的支持
SVGA 模式,所以推荐使用 320x240、640x480、800x640。

超时可以传递给 bios,客人将暂停 rb_超时 启动时毫秒
失败,然后重启。 如果 rb_超时 是 '-1',guest 不会重启,qemu 传递 '-1' 给
默认bios。 目前 Seabios for X86 系统支持它。

通过严格启动 严格=开 只要固件/BIOS 支持它。 这只影响
当引导优先级被 bootindex 选项改变时。 默认为非严格引导。

# 尝试先从网络启动,然后从硬盘启动
qemu-system-i386 -boot 命令=nc
# 先从光驱启动,重启后切换回默认顺序
qemu-system-i386 -启动一次=d
# 以启动画面启动 5 秒。
qemu-system-i386 -boot menu=on,splash=/root/boot.bmp,splash-time=5000

注意:旧格式 '-boot 驱动器' 仍受支持,但不鼓励使用
因为它可能会从未来的版本中删除。

-m [尺寸=][,slots=n,maxmem=大小]
将来宾启动 RAM 大小设置为 兆字节。 默认值为 128 MiB。 可选地,一个
“M”或“G”的后缀可用于表示以兆字节或千兆字节为单位的值
分别。 可选对 插槽, 最大内存 可用于设置可热插拔的数量
内存插槽和最大内存量。 注意 最大内存 必须与
页面大小。

例如,以下命令行将客户机启动 RAM 大小设置为 1GB,
创建 3 个插槽来热插拔额外的内存并设置来宾可以的最大内存
达到 4GB:

qemu-system-x86_64 -m 1G,slots=3,maxmem=4G

If 插槽最大内存 未指定,内存热插拔将不会启用,来宾
启动 RAM 永远不会增加。

-内存路径
从临时创建的文件中分配来宾 RAM .

-内存预分配
使用 -mem-path 时预分配内存。

-k language
使用键盘布局 language (例如法语的“fr”)。 仅需要此选项
不容易获得原始 PC 密钥代码的地方(例如在 Mac 上,使用某些 X11 服务器或
带有 VNC 显示器)。 您通常不需要在 PC/Linux 或 PC/Windows 上使用它
主机。

可用的布局是:

ar de-che es fo fr-ca hu ja mk no pt-br sv
da en-gb et fr fr-ch is lt nl pl ru th
de en-us fi fr-be hr it lv nl-be pt sl tr

默认值为“en-us”。

- 音频帮助
将显示音频子系统帮助:驱动程序列表、可调参数。

-声音hw 卡1[,卡2……] or -声音hw 所有
启用音频和选定的声音硬件。 使用 'help' 打印所有可用的声音
硬件。

qemu-system-i386 -soundhw sb16,adlib disk.img
qemu-system-i386-soundhw es1370 disk.img
qemu-system-i386-soundhw ac97 disk.img
qemu-system-i386-soundhw hda disk.img
qemu-system-i386 -soundhw 所有 disk.img
qemu-system-i386 -soundhw 帮助

请注意,Linux 的 i810_audio OSS 内核(用于 AC97)模块可能需要手动
指定时钟。

modprobe i810_audio 时钟=48000

-气球 没有
禁用气球装置。

-气球 virtio[,地址=地址]
启用 virtio 气球设备(默认),可选择使用 PCI 地址 地址.

-Deva 司机[,支柱[=折扣值][,...]]
添加设备 司机. 支柱=折扣值 设置驱动程序属性。 有效的属性取决于
司机。 要获得有关可能的驱动程序和属性的帮助,请使用“-device help”和
“-设备 司机,救命”.

-芋头 姓名
设置 姓名 客人的。 此名称将显示在 SDL 窗口标题中。
姓名 也将用于 VNC 服务器。 还可以选择设置顶部可见
Linux 中的进程名称。 也可以在 Linux 上启用单个线程的命名以
帮助调试。

-uuid uid
设置系统 UUID。

块设备选项:

-FDA 文件
-fdb 文件
使用 文件 作为软盘 0/1 映像。

-hda 文件
-HDB 文件
-HDC 文件
-hdd 文件
使用 文件 作为硬盘 0、1、2 或 3 图像。

-光盘 文件
使用 文件 作为 CD-ROM 映像(您不能使用 -HDC-光盘 同时)。 你可以
使用主机 CD-ROM 使用 的/ dev / CDROM 作为文件名。

-驾驶 选项[,选项[,选项[,...]]]
定义一个新驱动器。 有效的选项是:

文件=文件
此选项定义要与该驱动器一起使用的磁盘映像。 如果文件名
包含逗号,您必须将其加倍(例如,“file=my,,file”以使用 file
“我的,文件”)。

可以使用特定于协议的 URL 指定特殊文件,例如 iSCSI 设备。
有关详细信息,请参阅“设备 URL 语法”部分。

如果=接口
此选项定义驱动器连接的接口类型。 可用的
类型有:ide、scsi、sd、mtd、软盘、pflash、virtio。

巴士=总线,单位=单元
这些选项通过定义总线编号和
单位标识。

指数=指数
此选项通过使用列表中的索引定义连接驱动器的位置
给定接口类型的可用连接器。

媒体=上的相关利益产业。
此选项定义媒体类型:磁盘或 cdrom。

圆柱=c,头=h,秒=s[,反式=t]
这些选项的定义与它们在 -hdachs.

快照=快照
快照 为“on”或“off”并控制给定驱动器的快照模式(请参阅
-快照).

缓存=缓存
缓存 是“无”、“回写”、“不安全”、“直接同步”或“直写”以及
控制如何使用主机缓存来访问块数据。

合一=AIO
AIO 是“线程”或“本机”并在基于 pthread 的磁盘 I/O 和
原生 Linux AIO。

丢弃=丢弃
丢弃 是“忽略”(或“关闭”)或“取消映射”(或“开启”)之一并控制是否
丢弃 (也称为 修剪 or 取消映射) 请求被忽略或传递给
文件系统。 某些机器类型可能不支持丢弃请求。

格式=格式
指定哪个磁盘 格式 将被使用而不是检测格式。 可
用于指定 format=raw 以避免解释不受信任的格式标头。

串行=串行
此选项指定要分配给设备的序列号。

地址=地址
指定控制器的 PCI 地址(if=virtio only)。

错误=行动,错误=行动
指定哪个 行动 承担写入和读取错误。 有效操作是:“忽略”
(忽略错误并尝试继续)、“停止”(暂停 QEMU)、“报告”(报告
来宾错误),“enospc”(仅当主机磁盘已满时才暂停 QEMU;报告
否则错误给客人)。 默认设置是 错误=enospc
错误=报告.

只读
打开驱动 文件 作为只读。 来宾写入尝试将失败。

读时复制=读时复制
读时复制 是“on”或“off”,启用是否复制读取的备份文件
扇区到图像文件中。

检测零=检测零
检测零 为“关闭”、“开启”或“取消映射”并启用自动转换
操作系统对驱动程序特定优化的零写入命令进行纯零写入。 你
甚至可以选择“取消映射”,如果 丢弃 设置为“取消映射”以允许零写入
转换为 UNMAP 操作。

默认情况下, 缓存=写回 模式被使用。 它将报告数据写入已完成
一旦数据出现在主机页面缓存中。 这是安全的,只要你
来宾操作系统确保在需要时正确刷新磁盘缓存。 如果您的来宾操作系统
没有正确处理易失性磁盘写入缓存,并且您的主机崩溃或断电,
那么来宾可能会遇到数据损坏。

对于这样的客人,你应该考虑使用 缓存=直写。 这意味着
主机页面缓存将用于读取和写入数据,但写入通知将被
仅在 QEMU 确保将每次写入刷新到磁盘后才发送给来宾。 是
意识到这对性能有重大影响。

可以完全避免主机页面缓存 缓存=无. 这将尝试做
磁盘 IO 直接到来宾的内存。 QEMU 可能仍会执行内部副本
数据。 请注意,这被视为写回模式,来宾操作系统必须处理
磁盘写入缓存正确以避免主机崩溃时的数据损坏。

可以避免主机页面缓存,同时只向来宾发送写入通知
当数据已使用刷新到磁盘时 缓存=直接同步.

如果您不关心主机故障的数据完整性,请使用 缓存=不安全。 这
选项告诉 QEMU 它永远不需要将任何数据写入磁盘,而是可以
将东西保存在缓存中。 如果出现任何问题,例如您的主机断电,磁盘
存储意外断开连接等。您的图像很可能是
导致无法使用。 当使用 -快照 选项,总是使用不安全的缓存。

读取时复制避免重复访问相同的后备文件扇区并且很有用
当后备文件通过慢速网络时。 默认情况下,读取时复制是关闭的。

而不是 -光盘 您可以使用:

qemu-system-i386 -驱动文件=文件,索引=2,媒体=cdrom

而不是 -hda, -HDB, -HDC, -hdd, 您可以使用:

qemu-system-i386 -驱动文件=文件,索引=0,媒体=磁盘
qemu-system-i386 -驱动文件=文件,索引=1,媒体=磁盘
qemu-system-i386 -驱动文件=文件,索引=2,媒体=磁盘
qemu-system-i386 -驱动文件=文件,索引=3,媒体=磁盘

您可以使用 fd 集中预先打开的文件描述符打开图像:

qemu-系统-i386
-add-fd fd=3,set=2,opaque="rdwr:/path/to/file"
-add-fd fd=4,set=2,opaque="rdonly:/path/to/file"
-驱动器文件=/dev/fdset/2,index=0,media=disk

您可以将 CDROM 连接到 ide0 的从机:

qemu-system-i386 -drive 文件=文件,if=ide,index=1,media=cdrom

如果不指定“file=”参数,则定义一个空驱动器:

qemu-system-i386 -drive if=ide,index=1,media=cdrom

您可以在总线 #6 上连接单元 ID 为 0 的 SCSI 磁盘:

qemu-system-i386 -驱动文件=file,if=scsi,bus=0,unit=6

而不是 -FDA, -fdb, 您可以使用:

qemu-system-i386 -drive 文件=文件,索引=0,if=软盘
qemu-system-i386 -drive 文件=文件,索引=1,if=软盘

默认情况下, 接口 是“ide”和 指数 自动递增:

qemu-system-i386 -drive 文件=a -drive 文件=b”

被解释为:

qemu-system-i386 -hda a -hdb b

-mtdblock 文件
使用 文件 作为板载闪存映像。

-标准差 文件
使用 文件 作为 SecureDigital 卡图像。

-pflash 文件
使用 文件 作为并行闪存图像。

-快照
写入临时文件而不是磁盘映像文件。 在这种情况下,原始磁盘映像
你用不回写。 但是,您可以通过按强制回写 s.

-hdachs c,h,s,[,t]
强制硬盘 0 物理几何(1 <= c <= 16383, 1 <= h <= 16, 1 <= s <= 63) 和
可选择强制 BIOS 转换模式(t= 无、lba 或自动)。 通常 QEMU 可以
猜测所有这些参数。 此选项对于旧的 MS-DOS 磁盘映像很有用。

-fsdev
驱动程序,编号=id,路径=,[安全模型=安全模型][,写出=写出][,只读][,socket=插座|sock_fd=袜子_fd]
定义一个新的文件系统设备。 有效的选项是:

驱动程序
此选项指定要使用的 fs 驱动程序后端。 当前“本地”,“处理”
和“代理”文件系统驱动程序受支持。

id =id
指定此设备的标识符

路径=
指定文件系统设备的导出路径。 此路径下的文件将
可用于来宾上的 9p 客户端。

安全模型=安全模型
指定要用于此导出路径的安全模型。 支持的安全性
模型是“passthrough”、“mapped-xattr”、“mapped-file”和“none”。 在
“直通”安全模型,文件使用与它们相同的凭据存储
是在来宾上创建的。 这需要 QEMU 以 root 身份运行。 在“映射-xattr”中
安全模型,一些文件属性,如 uid、gid、模式位和链接
目标存储为文件属性。 对于“映射文件”,这些属性是
存储在隐藏的 .virtfs_metadata 目录中。 由此导出的目录
安全模型不能与其他 unix 工具交互。 “无”安全模型是
与 passthrough 相同,只是如果设置文件失败,服务器不会报告失败
所有权等属性。 安全模型仅对本地 fsdriver 是必需的。
其他 fsdrivers(如句柄、代理)不将安全模型作为参数。

写出=写出
这是一个可选参数。 唯一支持的值是“立即”。 这意味着
该主机页面缓存将用于读取和写入数据但写入通知
只有当数据已报告为由写入的数据时才会发送给客人
存储子系统。

只读
允许将 9p 共享导出为来宾的只读安装。 默认读写
访问被授予。

套接字=插座
启用代理文件系统驱动程序以使用传递的套接字文件与
virtfs 代理助手

袜子_fd=袜子_fd
启用代理文件系统驱动程序以使用传递的套接字描述符进行通信
使用 virtfs-proxy-helper。 通常像 libvirt 这样的助手会创建 socketpair 和
将 fds 之一作为 sock_fd 传递

-fsdev 选项与 -device 驱动程序“virtio-9p-pci”一起使用。

-Deva virtio-9p-pci,fsdev=id,挂载标签=挂载标签
virtio-9p-pci 驱动程序的选项是:

FSDev=id
指定与 -fsdev 选项一起指定的 id 值

安装标签=挂载标签
指定来宾用于挂载此导出点的标签名称

-virtfs
驱动程序[,路径=],挂载标签=挂载标签[,安全模型=安全模型][,写出=写出][,只读][,socket=插座|sock_fd=袜子_fd]
虚拟文件系统传递选项的一般形式是:

驱动程序
此选项指定要使用的 fs 驱动程序后端。 当前“本地”,“处理”
和“代理”文件系统驱动程序受支持。

id =id
指定此设备的标识符

路径=
指定文件系统设备的导出路径。 此路径下的文件将
可用于来宾上的 9p 客户端。

安全模型=安全模型
指定要用于此导出路径的安全模型。 支持的安全性
模型是“passthrough”、“mapped-xattr”、“mapped-file”和“none”。 在
“直通”安全模型,文件使用与它们相同的凭据存储
是在来宾上创建的。 这需要 QEMU 以 root 身份运行。 在“映射-xattr”中
安全模型,一些文件属性,如 uid、gid、模式位和链接
目标存储为文件属性。 对于“映射文件”,这些属性是
存储在隐藏的 .virtfs_metadata 目录中。 由此导出的目录
安全模型不能与其他 unix 工具交互。 “无”安全模型是
与 passthrough 相同,只是如果设置文件失败,服务器不会报告失败
所有权等属性。 安全模型仅对本地 fsdriver 是必需的。
其他 fsdrivers(如句柄、代理)不将安全模型作为参数。

写出=写出
这是一个可选参数。 唯一支持的值是“立即”。 这意味着
该主机页面缓存将用于读取和写入数据但写入通知
只有当数据已报告为由写入的数据时才会发送给客人
存储子系统。

只读
允许将 9p 共享导出为来宾的只读安装。 默认读写
访问被授予。

套接字=插座
启用代理文件系统驱动程序以使用传递的套接字文件与
virtfs 代理助手。 通常像 libvirt 这样的助手会创建 socketpair 并通过
作为 sock_fd 的 fds 之一

袜子_fd
启用代理文件系统驱动程序以使用传递的“sock_fd”作为套接字描述符
用于与 virtfs-proxy-helper 接口

-virtfs_synth
创建合成文件系统映像

USB 选项:

-USB
启用 USB 驱动程序(即将成为默认设置)

-usb设备 开发名称
添加 USB 设备 开发名称.

老鼠
虚拟鼠标。 这将在激活时覆盖 PS/2 鼠标模拟。

良好
使用绝对坐标的指针设备(如触摸屏)。 这意味着
QEMU 能够报告鼠标位置而无需抓住鼠标。 还
激活时覆盖 PS/2 鼠标模拟。

磁盘:[格式=格式]:文件
基于文件的大容量存储设备。 可选的 格式 将使用参数
而不是检测格式。 可用于指定“format=raw”以避免
解释不受信任的格式标头。

主机:总线.地址
通过由以下标识的主机设备 总线.地址 (仅限 Linux)。

主机:供应商_id:产品编号
通过由以下标识的主机设备 供应商_id:产品编号 (仅限 Linux)。

序列号:[供应商=供应商_id][,产品ID=产品编号]:开发
串行转换器到主机字符设备 开发,请参阅“-serial”以了解可用的
设备。

点字
盲文设备。 这将使用 BrlAPI 在真实或
假设备。

净:选项
支持 CDC 以太网和 RNDIS 协议的网络适配器。

显示选项:

-显示 类型
选择要使用的显示器类型。 此选项是旧样式的替代
-sdl/-curses/... 选项。 有效值 类型 旨在

数据表 通过 SDL 显示视频输出(通常在单独的图形窗口中;请参阅 SDL
其他可能性的文档)。

诅咒
通过curses 显示视频输出。 对于支持文本的图形设备型号
模式下,QEMU 可以使用curses/ncurses 接口显示此输出。 没有什么是
当图形设备处于图形模式或图形设备
不支持文本模式。 一般只有VGA设备型号支持文本
模式。

没有
不显示视频输出。 客人仍然会看到模拟显卡,
但它的输出不会显示给 QEMU 用户。 此选项不同于
-nographic 选项,因为它只影响对视频输出的处理;
-nographic 还会更改串行和并行端口数据的目的地。

GTK 在 GTK 窗口中显示视频输出。 该界面提供下拉菜单和
在运行时配置和控制 VM 的其他 UI 元素。

VNC 在显示器上启动 VNC 服务器

- 图形学
通常,QEMU 使用 SDL 来显示 VGA 输出。 使用此选项,您可以完全
禁用图形输出,使 QEMU 成为一个简单的命令行应用程序。 这
模拟串行端口在控制台上重定向并与监视器混合(除非
明确重定向到别处)。 因此,您仍然可以使用 QEMU 来调试 Linux
带有串行控制台的内核。 用 h 帮助在控制台和
监控。

-诅咒
通常,QEMU 使用 SDL 来显示 VGA 输出。 使用这个选项,QEMU 可以显示
在文本模式下使用 Curses/ncurses 接口时的 VGA 输出。 没有什么是
以图形方式显示。

-无框
不要对 SDL 窗口使用装饰,并使用整个可用屏幕启动它们
空间。 这使得在专用桌面工作区中使用 QEMU 更加方便。

-alt-抓取
使用 Ctrl-Alt-Shift 来抓取鼠标(而不是 Ctrl-Alt)。 请注意,这也会影响
特殊键(用于全屏、监视器模式切换等)。

-ctrl-抓取
使用 Right-Ctrl 来抓取鼠标(而不是 Ctrl-Alt)。 请注意,这也会影响
特殊键(用于全屏、监视器模式切换等)。

-不放弃
禁用 SDL 窗口关闭功能。

-sdl
启用 SDL。

-香料 选项[,选项[,...]]
启用 spice 远程桌面协议。 有效的选项是

端口=
设置 TCP 端口 spice 正在侦听明文通道。

地址=
设置 IP 地址 spice 正在侦听。 默认为任何地址。

ipv4
ipv6
UNIX
强制使用指定的 IP 版本。

密码=
设置验证所需的密码。

萨斯
要求客户端使用 SASL 对 spice 进行身份验证。 准确的选择
使用的身份验证方法由系统/用户的 SASL 控制
“qemu”服务的配置文件。 这通常出现在
/etc/sasl2/qemu.conf。 如果以非特权用户身份运行 QEMU,则环境
变量 SASL_CONF_PATH 可用于使其搜索替代位置
服务配置。 虽然一些 SASL 身份验证方法也可以提供数据加密(例如
GSSAPI),建议 SASL 始终与 'tls' 和 'x509' 结合使用
设置以启用 SSL 和服务器证书。 这确保了数据
加密防止身份验证凭据泄露。

禁止售票
允许客户端无需身份验证即可连接。

禁用复制粘贴
禁用客户端和来宾之间的复制粘贴。

禁用代理文件xfer
在客户端和来宾之间禁用基于 spice-vdagent 的 file-xfer。

tls-端口=
设置 TCP 端口 spice 正在侦听加密通道。

x509-目录=
设置 x509 文件目录。 期望与 -vnc $display,x509=$dir 相同的文件名

x509-key-file=
x509-key-password=
x509-cert-file=
x509-cacert-file=
x509-dh-key-file=
x509 文件名也可以单独配置。

tls-密码=
指定要使用的密码。

tls-channel=[主|显示|光标|输入|记录|回放]
明文通道=[主|显示|光标|输入|记录|回放]
强制使用或不使用 TLS 加密的特定通道。 选项可以
多次指定以配置多个通道。 特别的名字
“default”可用于设置默认模式。 对于非
明确强制进入一种模式,允许 spice 客户端选择 tls/plaintext
如他所愿。

图像压缩=[auto_glz|auto_lz|quic|glz|lz|off]
配置图像压缩(无损)。 默认为 auto_glz。

jpeg-wan-compression=[自动|从不|总是]
zlib-glz-wan-compression=[自动|从不|总是]
配置 wan 图像压缩(慢速链接有损)。 默认为自动。

流视频=[关闭|全部|过滤器]
配置视频流检测。 默认为过滤器。

代理鼠标=[开|关]
通过 vdagent 启用/禁用传递鼠标事件。 默认开启。

播放压缩=[开|关]
启用/禁用音频流压缩(使用 celt 0.5.1)。 默认开启。

无缝迁移=[开|关]
启用/禁用 spice 无缝迁移。 默认关闭。

-肖像
将图形输出向左旋转 90 度(仅限 PXA LCD)。

-旋转
将图形输出向左旋转一些度(仅限 PXA LCD)。

-VGA 类型
选择要模拟的 VGA 卡类型。 有效值 类型 旨在

触须
Cirrus Logic GD5446 显卡。 从 Windows 95 开始的所有 Windows 版本
应识别并使用此图形卡。 为获得最佳性能,请使用 16 位
来宾和主机操作系统中的颜色深度。 (这是默认的)

STD 带有 Bochs VBE 扩展的标准 VGA 卡。 如果您的来宾操作系统支持 VESA
2.0 VBE 扩展(例如 Windows XP)以及如果您想使用高分辨率模式
(>= 1280x1024x16) 那么你应该使用这个选项。

VMware的
VMWare SVGA-II 兼容适配器。 如果您最近有足够的信息,请使用它
XFree86/XOrg 服务器或带有此卡驱动程序的 Windows 客户机。

x QXL 半虚拟显卡。 它是 VGA 兼容的(包括 VESA 2.0 VBE
支持)。 尽管安装了 qxl 来宾驱动程序,但效果最佳。 推荐选择
使用 spice 协议时。

TCX (仅限 sun4m)Sun TCX 帧缓冲区。 这是 sun4m 的默认帧缓冲区
机器并以固定分辨率提供 8 位和 24 位色深
1024x768。

cg3 (仅限 sun4m)Sun cgthree 帧缓冲区。 这是用于 sun8m 的简单 4 位帧缓冲区
提供 1024x768 (OpenBIOS) 和 1152x900 (OBP) 分辨率的机器
面向希望运行较旧 Solaris 版本的人。

维蒂奥
Virtio 显卡。

没有
禁用 VGA 卡。

-全屏
全屏启动。

-g 宽度x高度[x深度]
设置初始图形分辨率和深度(仅限 PPC、SPARC)。

-vnc 产品[,选项[,选项[,...]]]
通常,QEMU 使用 SDL 来显示 VGA 输出。 使用此选项,您可以拥有
QEMU 监听 VNC 显示 产品 并通过 VNC 会话重定向 VGA 显示。
使用此选项时启用 USB 平板设备非常有用(选项
-usb设备 良好)。 使用 VNC 显示时,必须使用 -k 要设置的参数
如果您不使用 en-us,则键盘布局。 的有效语法 产品 is

主持人:d
TCP 连接将只允许来自 主持人 展示中 d. 按照惯例,
TCP 端口为 5900+d. 可选, 主持人 可以省略,在这种情况下服务器将
接受来自任何主机的连接。

Unix:
将允许通过 UNIX 域套接字进行连接,其中 是的位置
用于侦听连接的 unix 套接字。

没有
VNC 已初始化但未启动。 监视器“更改”命令可用于
稍后启动 VNC 服务器。

产品 值可能有一个或多个 选项 以逗号分隔的标志。
有效的选项是

反转
通过“反向”连接连接到侦听 VNC 客户端。 客户是
由指定 产品. 对于反向网络连接(主持人:d,"反向"),
d 参数是 TCP 端口号,而不是显示号。

网络套接字
打开一个额外的 TCP 侦听端口,专用于 VNC Websocket 连接。 经过
定义 Websocket 端口为 5700+产品。 如果 主持人 是指定的连接
将只允许来自该主机。 作为替代方案,Websocket 端口可以
使用“websocket”= 指定端口. 如果未提供 TLS 凭据,则
websocket 连接以未加密模式运行。 如果提供了 TLS 凭据,
websocket 连接需要加密的客户端连接。

密码
要求对客户端连接使用基于密码的身份验证。

必须使用“set_password”命令单独设置密码
pcsys_monitor. 更改密码的语法是:“set_password
“ 在哪里可以是“vnc”或“spice”。

如果你想改变密码过期,你应该使用
"过期密码“到期时间可能是一个
以下选项中的一个:now、never、+seconds 或 UNIX 过期时间,例如
+60 使密码在 60 秒后过期,或 1335196800 使密码过期
在“Mon Apr 23 12:00:00 EDT 2012”(此日期和时间的 UNIX 时间)。

您还可以使用关键字“now”或“never”作为过期时间以允许
密码立即过期或永不过期。

tls-信用=ID
提供一组用于保护 VNC 服务器的 TLS 凭据的 ID。 他们
将适用于普通 VNC 服务器套接字和 websocket 套接字(如果
启用)。 设置 TLS 凭据将导致 VNC 服务器套接字启用
VeNCrypt 身份验证机制。 凭据应该是以前创建的
使用 -目的 tls-信用 论据。

tls-信用 参数作废 TLS, x509x509验证 选项,并作为
因此不允许同时设置新旧类型选项。

TLS 要求客户端在与 VNC 服务器通信时使用 TLS。 这使用
匿名 TLS 凭证因此容易受到中间人攻击。 这是
建议将此选项与 x509 or x509验证
选项​​。

现在不推荐使用此选项,而是使用 tls-信用 论据。

x509 =/路径/到/证书/目录
如果有效 TLS 被指定。 要求使用 x509 凭据进行协商
TLS 会话。 服务器将其 x509 证书发送给客户端。 这是
建议在 VNC 服务器上设置密码以提供身份验证
客户端使用时。 此选项后面的路径指定
x509 证书将从中加载。 见 vnc_安全 详情部分
关于生成证书。

现在不推荐使用此选项,而是使用 tls-信用 论据。

x509验证=/路径/到/证书/目录
如果有效 TLS 被指定。 要求使用 x509 凭据进行协商
TLS 会话。 服务器将其 x509 证书发送给客户端,并且
请求客户端发送自己的 x509 证书。 服务器将验证
客户端的证书针对 CA 证书,并拒绝客户端
验证失败。 如果证书颁发机构是可信的,这就足够了
认证机制。 您可能仍然希望在 VNC 服务器上设置密码
作为第二个身份验证层。 此选项后面的路径指定在哪里
要从中加载 x509 证书。 见 vnc_安全 对于部分
有关生成证书的详细信息。

现在不推荐使用此选项,而是使用 tls-信用 论据。

萨斯
要求客户端使用 SASL 与 VNC 服务器进行身份验证。 最正确
所使用的身份验证方法的选择由系统/用户的 SASL 控制
“qemu”服务的配置文件。 这通常出现在
/etc/sasl2/qemu.conf。 如果以非特权用户身份运行 QEMU,则环境
变量 SASL_CONF_PATH 可用于使其搜索替代位置
服务配置。 虽然一些 SASL 身份验证方法也可以提供数据加密(例如
GSSAPI),建议 SASL 始终与 'tls' 和 'x509' 结合使用
设置以启用 SSL 和服务器证书。 这确保了数据
加密防止身份验证凭据泄露。 见
vnc_安全 有关使用 SASL 身份验证的详细信息的部分。

ACL 打开访问控制列表以检查 x509 客户端证书和 SASL
派对。 对于 x509 证书,ACL 检查是针对证书的
专有名称。 这看起来像
“C=GB,O=ACME,L=波士顿,CN=bob”。 对于 SASL 方,ACL 检查是针对
用户名,取决于 SASL 插件,可能包含一个领域组件,例如
“鲍勃”或“bob@EXAMPLE.COM“。 当。。。的时候 ACL 标志被设置,初始访问列表
将是空的,带有“拒绝”策略。 因此没有人将被允许使用 VNC
服务器直到 ACL 加载完毕。 这可以使用“acl”来实现
监视命令。

有损
启用有损压缩方法(渐变、JPEG 等)。 如果设置了这个选项,VNC
客户端可能会根据其编码设置接收有损帧缓冲区更新。
启用此选项可以以牺牲质量为代价节省大量带宽。

非适应性
禁用自适应编码。 默认情况下启用自适应编码。 一个
自适应编码将尝试检测频繁更新的屏幕区域,并发送
使用有损编码(如 JPEG)更新这些区域。 这真的可以
有助于在播放视频时节省带宽。 禁用自适应编码
恢复像 Tight 这样的编码的原始静态行为。

共享=[允许独占|强制共享|忽略]
设置显示共享策略。 'allow-exclusive' 允许客户要求独占
使用权。 正如 rfb 规范所建议的,这是通过删除其他
连接。 并行连接多个客户端需要所有客户端询问
对于共享会话(vncviewer:-shared 开关)。 这是默认设置。
'force-shared' 禁用独占客户端访问。 对共享桌面有用
会话,您不希望有人忘记指定 -shared disconnect
其他人。 'ignore' 完全忽略共享标志并允许每个人
无条件连接。 不符合 rfb 规范,而是传统的 QEMU
行为。

仅限 i386 目标:

-win2k-hack
在安装 Windows 2000 时使用它以避免磁盘已满错误。 在 Windows 2000 之后
安装后,您不再需要此选项(此选项会减慢 IDE 传输速度)。

-无 fd-bootchk
在 BIOS 中禁用软盘的启动签名检查。 可能需要从启动
旧软盘。

-无acpi
禁用 ACPI(高级配置和电源接口)支持。 使用它,如果你
来宾操作系统抱怨 ACPI 问题(仅限 PC 目标机器)。

-没有-hpet
禁用 HPET 支持。

- 可以接受的 [签名=STR][,转=n][,oem_id=STR][,oem_table_id=STR][,oem_rev=n]
[,asl_compiler_id=STR][,asl_compiler_rev=n][,数据=file1[:file2]...]
添加具有指定标题字段和来自指定文件的上下文的 ACPI 表。 为了
file=,从指定文件中取出整个 ACPI 表,包括所有 ACPI 头
(可能被其他选项覆盖)。 对于 data=,只有表的数据部分是
使用时,所有头信息都在命令行中指定。

-smbios 文件=二进制
从二进制文件加载 SMBIOS 条目。

-smbios 类型=0[,供应商=STR][,版本=STR][,日期=STR][,发布=%d.%d][,uefi=开|关]
指定 SMBIOS 类型 0 字段

-smbios
类型=1[,制造商=STR][,产品=STR][,版本=STR][,串行=STR][,uuid=uid][,sku=STR][,家庭=STR]
指定 SMBIOS 类型 1 字段

-smbios
类型=2[,制造商=STR][,产品=STR][,版本=STR][,串行=STR][,资产=STR][,位置=STR][,家庭=STR]
指定 SMBIOS 类型 2 字段

-smbios 类型=3[,制造商=STR][,版本=STR][,串行=STR][,资产=STR][,sku=STR]
指定 SMBIOS 类型 3 字段

-smbios
类型=4[,sock_pfx=STR][,制造商=STR][,版本=STR][,串行=STR][,资产=STR][,部分=STR]
指定 SMBIOS 类型 4 字段

-smbios
类型=17[,loc_pfx=STR][,银行=STR][,制造商=STR][,串行=STR][,资产=STR][,部分=STR][,速度=%d]
指定 SMBIOS 类型 17 字段

网络选项:

-净 网卡[,vlan=n][,macaddr=MAC][,模型=类型] [,姓名=姓名][,地址=地址][,向量=v]
创建一个新的网络接口卡并将其连接到 VLAN n (n = 0 是默认值)。
默认情况下,PC 目标上的 NIC 是 e1000。 可选地,MAC 地址可以是
变成 MAC, 设备地址设置为 地址 (仅限 PCI 卡)和一个 姓名
分配用于监视命令。 或者,对于 PCI 卡,您可以指定
v 卡应具有的 MSI-X 向量; 此选项目前仅
影响 virtio 卡; 放 v = 0 禁用 MSI-X。 如果不 -净 选项被指定,一个
创建单个 NIC。 QEMU 可以模拟几种不同型号的网卡。
有效值 类型 是“virtio”、“i82551”、“i82557b”、“i82559er”、“ne2k_pci”、
“ne2k_isa”、“pcnet”、“rtl8139”、“e1000”、“smc91c111”、“lance”和“mcf_fec”。 不是全部
所有目标都支持设备。 使用“-net nic,model=help”获取列表
目标的可用设备。

-netdev 用户,id=id[,选项][,选项][,……]
-净 用户[,选项][,选项][,……]
使用无需管理员权限即可运行的用户模式网络堆栈。
有效的选项是:

VLAN=n
将用户模式堆栈连接到 VLAN n (n = 0 是默认值)。

id =id
命名=姓名
分配符号名称以在监视器命令中使用。

净=地址[/面膜]
设置访客将看到的 IP 网络地址。 (可选)指定网络掩码,或者
以 abcd 形式或有效最高位的数量。 默认值为 10.0.2.0/24。

主机=地址
指定主机的访客可见地址。 默认是来宾中的第二个 IP
网络,iexxx2。

限制=开|关
如果启用此选项,访客将被隔离,即无法访问
联系主机,没有访客 IP 数据包将通过主机路由到
外部。 此选项不影响任何明确设置的转发规则。

主机名=姓名
指定内置 DHCP 服务器报告的客户端主机名。

dhcp启动=地址
指定内置 DHCP 服务器可以分配的 16 个 IP 中的第一个。 默认是
来宾网络中的第 15 到 31 个 IP,即xxx15 到 xxx31。

域名=地址
指定虚拟名称服务器的访客可见地址。 地址必须是
与主机地址不同。 默认为访客网络中的第三个 IP,即
xxx3.

dns搜索=
为内置 DHCP 服务器发送的域搜索列表提供一个条目。
通过多次指定此选项可以传输多个域后缀
次。 如果支持,这将导致来宾自动尝试附加
给定域后缀,以防域名无法解析。

示例:

qemu -net 用户,dnssearch=mgmt.example.org,dnssearch=example.org [...]

传输协议=DIR
使用用户模式网络堆栈时,激活内置 TFTP 服务器。 文件
in DIR 将作为 TFTP 服务器的根公开。 来宾上的 TFTP 客户端
必须以二进制模式配置(使用 Unix TFTP 客户端的命令“bin”)。

引导文件=文件
使用用户态网络栈时,广播 文件 作为 BOOTP 文件名。 在
TFTP,这可用于从本地网络引导来宾
目录。

示例(使用 pxelinux):

qemu-system-i386 -hda linux.img -boot n -net user,tftp=/path/to/tftp/files,bootfile=/pxelinux.0

SMB=DIR[,服务器=地址]
使用用户模式网络堆栈时,激活内置 SMB 服务器,以便
Windows 操作系统可以访问主机文件 DIR 透明地。 的 IP 地址
SMB 服务器可以设置为 地址. 默认情况下,访客网络中的第 4 个 IP 是
使用,iexxx4。

在来宾 Windows 操作系统中,该行:

10.0.2.4 SMB 服务器

必须在文件中添加 C:\WINDOWS\LMHOSTS (对于 Windows 9x/Me)或
C:\WINNT\SYSTEM32\DRIVERS\ETC\LMHOSTS (Windows NT/2000)。

然后 DIR 可以在 \smbserver\qemu.

请注意,主机操作系统上必须安装 SAMBA 服务器。 QEMU 已测试
成功使用 Red Hat 9、Fedora Core 3 和 OpenSUSE 11.x 的 smbd 版本。

hostfwd=[tcp|udp]:[主机地址]:主机端口-[访客地址]:来宾端口
将传入的 TCP 或 UDP 连接重定向到主机端口 主机端口 到访客IP
地址 访客地址 在来宾端口 来宾端口。 如果 访客地址 未指定,其
值为 xxx15(由内置 DHCP 服务器提供的默认第一个地址)。 经过
指定 主机地址,规则可以绑定到特定的主机接口。 如果不
连接类型已设置,使用 TCP。 可以多次给出此选项。

例如,要将主机 X11 连接从屏幕 1 重定向到访客屏幕 0,请使用
执行以下操作:

# 在主机上
qemu-system-i386 -net 用户,hostfwd=tcp:127.0.0.1:6001-:6000 [...]
# 这个主机 xterm 应该在来宾 X11 服务器中打开
xterm -显示:1

要将 telnet 连接从主机端口 5555 重定向到来宾上的 telnet 端口,
使用以下内容:

# 在主机上
qemu-system-i386 -net 用户,hostfwd=tcp::5555-:23 [...]
远程登录本地主机 5555

然后当你在主机上使用“telnet localhost 5555”时,你连接到guest
远程登录服务器。

来宾fwd = [tcp]:服务器:端口-开发
来宾fwd = [tcp]:服务器:端口-命令:命令
将访客 TCP 连接转发到 IP 地址 服务器 在港口 端口
字符设备 开发 或执行的程序 命令:命令 产生的
对于每个连接。 可以多次给出此选项。

您可以直接使用 chardev 并在整个 QEMU 中使用它
生命周期,如下例所示:

# 在启动时打开 10.10.1.1:4321,无论何时将 10.0.2.100:1234 连接到它
# 来宾访问它
qemu -net 用户,guestfwd=tcp:10.0.2.100:1234-tcp:10.10.1.1:4321 [...]

或者你可以在guest建立的每一个TCP连接上执行一个命令,这样
QEMU 的行为类似于该虚拟服务器的 inetd 进程:

# 在每个到 10.10.1.1:4321 的 TCP 连接上调用“netcat 10.0.2.100 1234”
# 并将 TCP 流连接到其标准输入/标准输出
qemu -net 'user,guestfwd=tcp:10.0.2.100:1234-cmd:netcat 10.10.1.1 4321'

注意:仍会处理旧的独立选项 -tftp、-bootp、-smb 和 -redir
并应用于-net 用户。 将它们与新的配置语法混合给出
未定义的结果。 不鼓励将它们用于新应用程序,因为它们将
从未来版本中删除。

-netdev 点击,id=id[,fd=h][,如果名称=姓名][,脚本=文件][,下标=文件][,助手=帮手]
-净
点击[,vlan=n][,姓名=姓名][,fd=h][,如果名称=姓名][,脚本=文件][,下标=文件][,助手=帮手]
连接主机 TAP 网络接口 姓名 到 VLAN n.

使用网络脚本 文件 配置它和网络脚本 文件
解除配置。 如果 姓名 未提供,操作系统会自动提供。 这
默认网络配置脚本是 /etc/qemu-ifup 和默认的网络解除配置
脚本是 /etc/qemu-ifdown。 使用 脚本=否 or 下标=否 禁用脚本
执行。

如果以非特权用户身份运行 QEMU,请使用网络助手 帮手 配置
TAP 接口。 默认的网络助手可执行文件是
/路径/到/qemu-bridge-helper.

fd=h 可用于指定已打开的主机 TAP 接口的句柄。

例子:

#使用默认网络脚本启动 QEMU 实例
qemu-system-i386 linux.img -net nic -net tap

#启动一个带有两个网卡的 QEMU 实例,每个网卡都连接
#到TAP设备
qemu-系统-i386 linux.img
-net 网卡,vlan=0 -net tap,vlan=0,ifname=tap0
-net 网卡,vlan=1 -net tap,vlan=1,ifname=tap1

#使用默认的网络助手启动一个 QEMU 实例
#将一个 TAP 设备连接到桥接 br0
qemu-系统-i386 linux.img
-net nic -net tap,"helper=/path/to/qemu-bridge-helper"

-netdev 桥,id=id[,br=][,助手=帮手]
-净 网桥[,vlan=n][,姓名=姓名][,br=][,助手=帮手]
将主机 TAP 网络接口连接到主机桥接设备。

使用网络助手 帮手 配置 TAP 接口并将其附加到
桥。 默认的网络助手可执行文件是 /路径/到/qemu-bridge-helper
默认桥接设备是 br0.

例子:

#使用默认的网络助手启动一个 QEMU 实例
#将一个 TAP 设备连接到桥接 br0
qemu-system-i386 linux.img -net bridge -net nic,型号=virtio

#使用默认的网络助手启动一个 QEMU 实例
#连接一个 TAP 设备来桥接 qemubr0
qemu-system-i386 linux.img -net bridge,br=qemubr0 -net nic,模型=virtio

-netdev 套接字,id=id[,fd=h][,听=[主持人]:端口][,连接=主持人:端口]
-净 套接字[,vlan=n][,姓名=姓名][,fd=h] [,听=[主持人]:端口][,连接=主持人:端口]
连接VLAN n 使用 TCP 套接字连接到另一个 QEMU 虚拟机中的远程 VLAN
联系。 如果 指定,QEMU 等待传入的连接 端口 (主持人
是可选的)。 联接 用于连接到另一个 QEMU 实例,使用
选项。 fd=h 指定一个已经打开的 TCP 套接字。

示例:

# 启动第一个 QEMU 实例
qemu-系统-i386 linux.img
-net nic,macaddr=52:54:00:12:34:56
-net 套接字,听=:1234
# 将本实例的 VLAN 0 连接到 VLAN 0
# 第一个实例
qemu-系统-i386 linux.img
-net nic,macaddr=52:54:00:12:34:57
-net 套接字,连接=127.0.0.1:1234

-netdev 套接字,id=id[,fd=h][,广播=马德:端口[,本地地址=地址]]
-净 套接字[,vlan=n][,姓名=姓名][,fd=h][,广播=马德:端口[,本地地址=地址]]
创建 VLAN n 使用 UDP 多播与另一个 QEMU 虚拟机共享
socket,有效地为每个具有相同多播地址的 QEMU 创建一个总线 马德
端口. 笔记:

1. 多个 QEMU 可以运行在不同的主机上并共享相同的总线(假设
这些主机的正确多播设置)。

2. mcast 支持与用户模式 ​​Linux 兼容(参数 ETHN=转播),请参阅
<http://user-mode-linux.sf.net>.

3。 使用 fd=h 指定一个已经打开的 UDP 多播套接字。

示例:

# 启动一个 QEMU 实例
qemu-系统-i386 linux.img
-net nic,macaddr=52:54:00:12:34:56
-net 套接字,mcast=230.0.0.1:1234
# 在同一个“总线”上启动另一个 QEMU 实例
qemu-系统-i386 linux.img
-net nic,macaddr=52:54:00:12:34:57
-net 套接字,mcast=230.0.0.1:1234
# 在同一个“总线”上启动另一个 QEMU 实例
qemu-系统-i386 linux.img
-net nic,macaddr=52:54:00:12:34:58
-net 套接字,mcast=230.0.0.1:1234

示例(用户模式 ​​Linux 兼容):

# 启动 QEMU 实例(注意选择了 mcast 地址
# 是 UML 的默认值)
qemu-系统-i386 linux.img
-net nic,macaddr=52:54:00:12:34:56
-net 套接字,mcast=239.192.168.1:1102
# 启动 UML
/path/to/linux ubd0=/path/to/root_fs eth0=mcast

示例(从主机的 1.2.3.4 发送数据包):

qemu-系统-i386 linux.img
-net nic,macaddr=52:54:00:12:34:56
-net 套接字,mcast=239.192.168.1:1102,localaddr=1.2.3.4

-netdev
l2tpv3,id=id,源=源地址, 目的地=数据表[,源端口=源端口][,目标端口=端口],tx会话=会话[,rx会话=会话][,ipv6][,udp][,cookie64][,计数器][,pincounter][,txcookie=小甜饼][,rxcookie=接收cookie][,偏移=抵消]
-净
l2tpv3[,vlan=n][,姓名=姓名],源=源地址, 目的地=数据表[,源端口=源端口][,目标端口=端口],tx会话=会话[,rx会话=会话][,ipv6][,udp][,cookie64][,计数器][,pincounter][,txcookie=小甜饼][,rxcookie=接收cookie][,偏移=抵消]
连接VLAN n 到 L2TPv3 伪线。 L2TPv3 (RFC3391) 是一种流行的协议
在两个系统之间传输以太网(和其他第 2 层)数据帧。 它存在
在路由器、防火墙和 Linux 内核中(从 3.3 版开始)。

这种传输允许 VM 直接与另一个 VM、路由器或防火墙通信。

SRC =源地址
源地址(必填)

dst =数据表
目的地址(必填)

UDP 选择udp封装(默认为ip)。

源端口=源端口
源 udp 端口​​。

端口=端口
目标 udp 端口​​。

ipv6
强制 v6,否则默认为 v4。

rxcookie=接收cookie
txcookie=小甜饼
在 l2tpv3 规范中,cookie 是一种较弱的安全形式。 它们的功能是
主要是为了防止配置错误。 默认情况下,它们是 32 位的。

cookie64
将 cookie 大小设置为 64 位而不是默认的 32

计数器=关闭
强制“削减” L2TPv3 没有计数器,如
草案-mkonstan-l2tpext-keyed-ipv6-tunnel-00

pincounter=开
解决对等中损坏的计数器处理。 这也可能有助于具有以下功能的网络
数据包重新排序。

偏移=抵消
在标题和数据之间添加额外的偏移量

例如,通过 L4.3.2.1TPv2 将运行在主机 3 上的 VM 附加到网桥 br-lan on
远程 Linux 主机 1.2.3.4:

# 使用原始 IP 作为封装在 linux 主机上设置隧道
# 在 1.2.3.4
ip l2tp 添加隧道远程 4.3.2.1 本地 1.2.3.4 tunnel_id 1 peer_tunnel_id 1
封装 udp udp_sport 16384 udp_dport 16384
ip l2tp 添加会话隧道 ID 1 名称 vmtunnel0 会话 ID
0xFFFFFFFF 对等会话 ID 0xFFFFFFFF
ifconfig vmtunnel0 mtu 1500
ifconfig vmtunnel0 向上
brctl addif br-lan vmtunnel0

# 在 4.3.2.1
# 启动 QEMU 实例 - 如果您的网络重新排序或非常有损添加,pincounter

qemu-system-i386 linux.img -net nic -net l2tpv3,src=4.2.3.1,dst=1.2.3.4,udp,srcport=16384,dstport=16384,rxsession=0xffffffff,txsession=0xffffffff,计数器

-netdev vde,id=id[,袜子=套接字路径][,端口=n][,组=团队名字][,模式=八模]
-净 vde[,vlan=n][,姓名=姓名][,袜子=套接字路径]
[,端口=n][,组=团队名字][,模式=八模]
连接VLAN n 到港口 n 在主机上运行并侦听传入的 vde 交换机
连接开启 套接字路径. 使用组 团队名字 和模式 八模 更改默认值
通信端口的所有权和权限。 此选项仅在以下情况下可用
QEMU 在编译时启用了 vde 支持。

示例:

# 启动 vde 开关
vde_switch -F -sock /tmp/myswitch
# 启动 QEMU 实例
qemu-system-i386 linux.img -net nic -net vde,sock=/tmp/myswitch

-netdev 枢纽,id=id,中心=傲慢的
在 QEMU“vlan”上创建集线器端口 傲慢的.

hubport netdev 允许您将 NIC 连接到 QEMU “vlan”而不是单个 netdev。
带参数的“-net”和“-device” VLAN 自动创建所需的集线器。

-netdev 虚拟主机用户,chardev=id[,vhostforce=开|关][,队列=n]
建立一个由 chardev 支持的 vhost-user netdev id. chardev 应该是一个 unix
域套接字支持之一。 vhost-user 使用专门定义的协议来传递
vhost ioctl 替换消息到套接字另一端的应用程序。 在
非 MSIX 来宾,可以强制使用该功能 虚拟主机. 使用'队列=n' 来指定
要为多队列 vhost-user 创建的队列数。

示例:

qemu -m 512 -object 内存后端文件,id=mem,大小=512M,mem-path=/hugetlbfs,share=on
-numa 节点,memdev=mem
-chardev 套接字,路径=/路径/到/套接字
-netdev 类型=虚拟主机用户,id=net0,chardev=chr0
-设备 virtio-net-pci,netdev=net0

-净 转储[,vlan=n][,文件=文件][,长度=LEN]
在 VLAN 上转储网络流量 n 归档 文件 (qemu-vlan0.pcap 默认情况下)。 最多 LEN
存储每个数据包的字节数(默认为 64k)。 文件格式为libpcap,所以可以
使用 tcpdump 或 Wireshark 等工具进行分析。 注意:对于使用创建的设备
'-netdev',使用 '-object filter-dump,...' 代替。

-净 没有
表示不应配置任何网络设备。 它用于覆盖
默认配置(-净 NIC -净 用户) 如果没有则激活 -净 选项是
提供。

字符设备选项:

字符设备选项的一般形式是:

-chardev 后端 ,编号=id [,mux=开|关] [,选项]
后端是以下之一: , 插座, UDP, 鼠标, vc, 环形缓冲区, 文件, , 领事,
串行, PTY, 标准输出, 点字, TTY, 并行, 登机口, 香料. 香料港。 该
特定的后端将决定适用的选项。

所有设备都必须有一个 id,它可以是最多 127 个字符的任何字符串。 这是
用于在其他命令行指令中唯一标识此设备。

一个字符设备可以被多个前端以多路复用的方式使用。 钥匙
的顺序 控制-ac 将在连接的前端之间旋转输入焦点。
指定 多路复用器=开 启用此模式。

每个后端的选项如下所述。

-chardev ,编号=id
一个空装置。 该设备不会发出任何数据,并且会丢弃它接收到的任何数据。
空后端不接受任何选项。

-chardev 插座 ,编号=id [TCP 选项 or UNIX 选项] [,服务器] [,等待] [,远程登录]
[,重新连接=]
创建一个双向流套接字,它可以是 TCP 或 unix 套接字。 一个unix
套接字将被创建,如果 被指定。 如果 TCP 选项是,则行为未定义
为 unix 套接字指定。

服务器 指定套接字应为侦听套接字。

NOWAIT 指定 QEMU 不应阻塞等待客户端连接到
监听套接字。

远程登录 指定套接字上的流量应解释 telnet 转义序列。

重新连接 设置远程端重新连接非服务器套接字的超时时间
消失了。 qemu 将延迟这么多秒,然后尝试重新连接。 零
禁用重新连接,并且是默认设置。

TCP 和 unix 套接字选项如下:

TCP opţiuni: 端口=端口 [,主机=主持人] [,到=] [,ipv4] [,ipv6] [,节点]
主持人 对于侦听套接字指定要绑定的本地地址。 为一个
连接套接字指定要连接的远程主机。 主持人 是可选的
监听套接字。 如果未指定,则默认为 0.0.0.0。

端口 对于侦听套接字指定要绑定的本地端口。 对于一个连接
socket 指定远程主机上要连接的端口。 端口 可以给出为
端口号或服务名称。 端口 是必须的。

仅与侦听套接字相关。 如果已指定,并且 端口 不可能是
绑定,QEMU 将尝试绑定到后续端口,包括 直到
它成功了。 必须指定为端口号。

ipv4ipv6 指定必须使用 IPv4 或 IPv6。 如果两者都不是
指定套接字可以使用任一协议。

节点 禁用 Nagle 算法。

UNIX opţiuni: 路径=
指定unix 套接字的本地路径。 是必须的。

-chardev UDP ,编号=id [,主机=主持人] ,端口=端口 [,本地地址=本地地址] [,本地端口=本地端口]
[,ipv4] [,ipv6]
通过 UDP 将所有流量从来宾发送到远程主机。

主持人 指定要连接的远程主机。 如果未指定,则默认为
“本地主机”。

端口 指定远程主机上要连接的端口。 端口 是必须的。

本地地址 指定要绑定到的本地地址。 如果未指定,则默认为
0.0.0.0.

本地端口 指定要绑定到的本地端口。 如果未指定任何可用的本地
端口将被使用。

ipv4ipv6 指定必须使用 IPv4 或 IPv6。 如果两者都没有指定
设备可以使用任一协议。

-chardev 鼠标 ,编号=id
将 QEMU 的模拟 msmouse 事件转发给来宾。 鼠标 不采取任何
选项​​。

-chardev vc ,编号=id [[,宽度=宽度] [,高度=高度]] [[,列=] [,行=]]
连接到 QEMU 文本控制台。 vc 可以选择指定特定大小。

宽度高度 分别指定控制台的宽度和高度,以像素为单位。

指定控制台的大小以适合具有给定的文本控制台
尺寸。

-chardev 环形缓冲区 ,编号=id [,大小=尺寸]
创建一个固定大小的环形缓冲区 尺寸. 尺寸 必须是 XNUMX 的幂,并且是默认值
到“64K”)。

-chardev 文件 ,编号=id ,路径=
将从来宾收到的所有流量记录到文件中。

指定要打开的文件的路径。 如果这样做,将创建此文件
不存在,如果存在则覆盖。 是必须的。

-chardev ,编号=id ,路径=
创建与来宾的双向连接。 行为略有不同
Windows 主机和其他主机:

在 Windows 上,将在以下位置创建单个双工管道 \。管道.

在其他主机上,将创建 2 个管道,称为 。在。出去. 数据写入
。在 客人会收到。 可以读取来宾写入的数据
。出去. QEMU 不会创建这些 fifo,并要求它们存在。

形成如上所述的管道路径的一部分。 是必须的。

-chardev 领事 ,编号=id
将来自来宾的流量发送到 QEMU 的标准输出。 领事 不采取任何
选项​​。

领事 仅在 Windows 主机上可用。

-chardev 串行 ,编号=id ,路径=路径
将流量从来宾发送到主机上的串行设备。

在 Unix 主机上,串行实际上会接受任何 tty 设备,而不仅仅是串行线路。

指定要打开的串行设备的名称。

-chardev PTY ,编号=id
在主机上创建一个新的伪终端并连接到它。 PTY 不采取任何
选项​​。

PTY 在 Windows 主机上不可用。

-chardev 标准输出 ,编号=id [,信号=开|关]
连接到 QEMU 进程的标准输入和标准输出。

信号 控制是否在终端上启用信号,包括退出 QEMU
与键序列 控制-c. 此选项默认启用,使用 信号=关闭
禁用它。

标准输出 在 Windows 主机上不可用。

-chardev 点字 ,编号=id
连接到本地 BrlAPI 服务器。 点字 不采取任何选择。

-chardev TTY ,编号=id ,路径=
TTY 仅在 Linux、Sun、FreeBSD、NetBSD、OpenBSD 和 DragonFlyBSD 主机上可用。
它是一个别名 串行.

指定 tty 的路径。 是必须的。

-chardev 并行 ,编号=id ,路径=
-chardev 登机口 ,编号=id ,路径=
并行 仅在 Linux、FreeBSD 和 DragonFlyBSD 主机上可用。

连接到本地并行端口。

指定并行端口设备的路径。 是必须的。

-chardev 香料 ,编号=id ,调试=调试, 命名=姓名
香料 仅在内置 spice 支持时可用。

调试 spicevmc 的调试级别

姓名 要连接的香料频道的名称

连接到 spice 虚拟机通道,例如 vdiport。

-chardev 香料港 ,编号=id ,调试=调试, 命名=姓名
香料港 仅在内置 spice 支持时可用。

调试 spicevmc 的调试级别

姓名 要连接的 spice 端口的名称

连接到 spice 端口,允许 Spice 客户端处理由
名称(最好是 fqdn)。

设备 URL 语法:

除了对模拟存储设备使用普通文件映像外,QEMU 还可以
使用网络资源,例如 iSCSI 设备。 这些是使用特殊 URL 指定的
语法。

iSCSI
iSCSI 支持允许 QEMU 直接访问 iSCSI 资源并用作
客人存储。 支持磁盘和 cdrom 映像。

指定 iSCSI LUN 的语法是“iscsi:// [: ]/ / ”

默认情况下,qemu 将使用 iSCSI 启动器名称 'iqn.2008-11.org.linux-kvm[: ]'
但这也可以从命令行或配置文件中设置。

从 Qemu 2.4 版本开始,可以指定 iSCSI 请求超时来检测
停止请求并强制重新建立会话。 超时已指定
片刻之间。 默认值为 0,表示没有超时。 Libiscsi 1.15.0 或更高版本是
此功能所需。

示例(无身份验证):

qemu-system-i386 -iscsi 启动器名称=iqn.2001-04.com.example:my-initiator
-cdrom iscsi://192.0.2.1/iqn.2001-04.com.example/2
-驱动文件=iscsi://192.0.2.1/iqn.2001-04.com.example/1

示例(通过 URL 的 CHAP 用户名/密码):

qemu-system-i386 -驱动文件=iscsi://user%密码@192.0.2.1/iqn.2001-04.com.example/1

示例(通过环境变量的 CHAP 用户名/密码):

LIBISCSI_CHAP_USERNAME="用户"
LIBISCSI_CHAP_PASSWORD="密码"
qemu-system-i386 -drive file=iscsi://192.0.2.1/iqn.2001-04.com.example/1

iSCSI 支持是 QEMU 的可选功能,仅在编译和
与 libiscsi 相关联。

用户名和密码等 iSCSI 参数也可以通过
配置文件。 有关更多信息和示例,请参阅 qemu-doc。

新开发银行 QEMU 支持使用 TCP 协议和 Unix 的 NBD(网络块设备)
域套接字。

使用 TCP 指定 NBD 设备的语法
“nbd: : [:出口名称= ]”

使用 Unix 域套接字指定 NBD 设备的语法
“nbd:unix: [:出口名称= ]”

TCP 示例

qemu-system-i386 --drive 文件=nbd:192.0.2.1:30000

Unix 域套接字示例

qemu-system-i386 --驱动文件=nbd:unix:/tmp/nbd-socket

SSH的 QEMU 支持对远程磁盘的 SSH(安全外壳)访问。

例子:

qemu-system-i386 -驱动文件=ssh://user@host/path/to/disk.img
qemu-system-i386 -drive file.driver=ssh,file.user=user,file.host=host,file.port=22,file.path=/path/to/disk.img

目前必须使用 ssh-agent 进行身份验证。 其他认证方式
以后可能会支持。

牧羊犬
Sheepdog 是 QEMU 的分布式存储系统。 QEMU 支持使用本地
牧羊犬设备或远程联网设备。

指定牧羊犬设备的语法

牧羊犬[+tcp|+unix]://[host:port]/vdiname[?socket=path][#snapid|#tag]

例如:

qemu-system-i386 --驱动文件=sheepdog://192.0.2.1:30000/MyVirtualMachine

也可以看看http://http://www.osrg.net/sheepdog/>.

Gluster文件系统
GlusterFS 是一个用户空间分布式文件系统。 QEMU 支持使用
使用 TCP、Unix 域套接字和 RDMA 托管 VM 磁盘映像的 GlusterFS 卷
传输协议。

在 GlusterFS 卷上指定 VM 磁盘映像的语法是

gluster[+传输]://[服务器[:端口]]/volname/image[?socket=...]

例如:

qemu-system-x86_64 --驱动文件=gluster://192.0.2.1/testvol/a.img

也可以看看http://www.gluster.org>.

HTTP/HTTPS/FTP/FTPS/TFTP
QEMU 支持对通过 http(s)、ftp(s) 和 tftp 访问的文件进行只读访问。

使用单个文件名的语法:

://[ [: ]@] /

其中:

协议
“http”、“https”、“ftp”、“ftps”或“tftp”。

用户名
用于对远程服务器进行身份验证的可选用户名。

密码
用于对远程服务器进行身份验证的可选密码。

主持人
远程服务器的地址。


远程服务器上的路径,包括任何查询字符串。

还支持以下选项:

网址 将选项显式传递给驱动程序时的完整 URL。

预读
对远程服务器的每个范围请求要提前读取的数据量。
该值可以选择带有后缀“T”、“G”、“M”、“K”、“k”或“b”。 如果它
没有后缀,它将被假定为以字节为单位。 该值必须是
512 字节的倍数。 默认为 256k。

验证
通过 SSL 连接时是否验证远程服务器的证书。 它可以
具有值“开”或“关”。 它默认为“开”。

饼干
发送此 cookie(它也可以是由 ';' 分隔的 cookie 列表)与每个
传出请求。 仅在使用 HTTP 等支持的协议时才支持
cookie,否则忽略。

超时
设置 CURL 连接的超时时间(以秒为单位)。 这个超时时间是
CURL 等待来自远程服务器的响应以获取图像的大小
被下载。 如果未设置,则使用默认超时 5 秒。

请注意,当明确地将选项传递给 qemu 时, 司机 是.

示例:从远程 Fedora 20 live ISO 映像启动

qemu-system-x86_64 --驱动器介质=cdrom,文件=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,只读

qemu-system-x86_64 --drive media=cdrom,file.driver=http,file.url=http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Live/x86_64/Fedora-Live-Desktop-x86_64-20-1.iso,只读

示例:使用本地覆盖进行写入,从远程 Fedora 20 云映像启动,
读时复制,预读 64k

qemu-img create -f qcow2 -o backing_file='json:{"file.driver":"http",, "file.url":"https://dl.fedoraproject.org/pub/fedora/linux/releases /20/Images/x86_64/Fedora-x86_64-20-20131211.1-sda.qcow2", "file.readahead":"64k"}' /tmp/Fedora-x86_64-20-20131211.1-sda.q

qemu-system-x86_64 -drive file=/tmp/Fedora-x86_64-20-20131211.1-sda.qcow2,copy-on-read=on

示例:从存储在 VMware vSphere 服务器上的映像启动,使用自签名
使用本地覆盖进行写入的证书,64k 的预读和 10 的超时
秒。

qemu-img create -f qcow2 -o backing_file='json:{"file.driver":"https",, "file.url":"https://user:密码@vsphere.example.com/folder/test/test-flat.vmdk?dcPath=Datacenter&dsName=datastore1", "file.sslverify":"off",, "file.readahead":"64k",, "file.timeout":10}' /tmp/test.qcow2

qemu-system-x86_64 -drive 文件=/tmp/test.qcow2

蓝牙(R) 选项:

-BT 人机交互[...]
定义相应蓝牙 HCI 的功能。 -bt 选项与
所选机器类型中存在的 HCI。 例如在模拟机器时
只有一个 HCI 内置在其中,只有第一个“-bt hci[...]”选项有效并且
定义 HCI 的逻辑。 传输层由机器类型决定。
目前机器“n800”和“n810”有一个HCI,所有其他机器有
没有。

可识别以下三种类型:

-BT hci,空
(默认)相应的蓝牙 HCI 假设没有内部逻辑,并且不会
响应任何 HCI 命令或发出事件。

-BT hci,主机[:id]
(仅“bluez”)相应的 HCI 将命令/事件传递到/从
由名称标识的物理 HCI id (默认值:“hci0”)在运行的计算机上
动车组。 仅在支持“bluez”的系统(如 Linux)上可用。

-BT hci[,vlan=n]
添加将参与蓝牙散射网的虚拟标准 HCI n
(默认 0)。 类似于 -净 VLAN,蓝牙网络内的设备 n 能够
仅与同一网络(分散网)中的其他设备通信。

-BT vhci[,vlan=n]
(仅限 Linux 主机)在分散网中创建 HCI n (默认 0)附加到主机
蓝牙堆栈而不是模拟目标。 这允许主机和目标
机器参与共同的散布网络并进行通信。 需要 Linux
安装了“vhci”驱动程序。 可以如下使用:

qemu-system-i386 [...选项...] -bt hci,vlan=5 -bt vhci,vlan=5

-BT 设备:开发[,VLAN=n]
模拟蓝牙设备 开发 并将其放置在网络中 n (默认 0)。 QEMU 只能
目前模拟一种蓝牙设备:

键盘
实现 HIDP 蓝牙配置文件的虚拟无线键盘。

TPM 设备选项:

TPM 设备选项的一般形式是:

-tpmdev 后端 ,编号=id [,选项]
后端类型必须是: 直通.

特定的后端类型将决定适用的选项。 “-tpmdev”选项
创建 TPM 后端并需要一个“-device”选项来指定 TPM
前端接口模型。

每个后端的选项如下所述。

使用“帮助”打印所有可用的 TPM 后端类型。

qemu -tpmdev 帮助

-tpmdev 通过, id =id, 路径=, 取消路径=取消路径
(仅限 Linux 主机)使用直通驱动程序启用对主机 TPM 的访问。

指定主机 TPM 设备的路径,即,在 Linux 主机上,这将是
“/dev/tpm0”。 是可选的,默认情况下使用“/dev/tpm0”。

取消路径 指定主机 TPM 设备的 sysfs 条目的路径,允许
取消正在进行的 TPM 命令。 取消路径 是可选的,默认情况下 QEMU
将搜索要使用的 sysfs 条目。

关于将主机的 TPM 与 passthrough 驱动程序一起使用的一些注意事项:

直通驱动程序访问的 TPM 设备不得被任何其他设备使用
主机上的应用程序。

由于主机的固件 (BIOS/UEFI) 已经初始化了 TPM,VM 的
固件 (BIOS/UEFI) 将无法再次初始化 TPM,因此可能
不显示 TPM 特定的菜单,否则将允许用户配置 TPM,
例如,允许用户启用/禁用或激活/停用 TPM。 进一步,如果
从虚拟机内部释放 TPM 所有权,然后主机的 TPM 将被禁用,并且
停用。 之后要再次启用和激活 TPM,主机必须
重新启动,用户需要进入固件菜单才能启用和激活
TPM。 如果 TPM 被禁用和/或停用,大多数 TPM 命令将失败。

要创建直通 TPM,请使用以下两个选项:

-tpmdev 直通,id=tpm0 -设备 tpm-tis,tpmdev=tpm0

请注意,“-tpmdev” id 是“tpm0”,并由设备中的“tpmdev=tpm0”引用
选项。

Linux/Multiboot 引导特定:

使用这些选项时,您可以使用给定的 Linux 或 Multiboot 内核而无需安装
它在磁盘映像中。 它可用于更轻松地测试各种内核。

-核心 图像
使用 图像 作为内核映像。 内核可以是 Linux 内核,也可以是多重引导
格式。

-附加 CMDLINE
使用 CMDLINE 作为内核命令行

-initrd 文件
使用 文件 作为初始 ram 磁盘。

-initrd "file1 参数=富,file2"
此语法仅适用于多重引导。

使用 file1file2 作为模块并将 arg=foo 作为参数传递给第一个模块。

-dtb 文件
使用 文件 作为设备树二进制 (dtb) 映像并在启动时将其传递给内核。

调试/专家选项:

-fw_cfg [姓名=]姓名,文件=文件
从文件中添加命名的 fw_cfg 条目。 姓名 确定 fw_cfg 中条目的名称
暴露给来宾的文件目录。

-fw_cfg [姓名=]姓名,字符串=STR
从字符串中添加命名的 fw_cfg 条目。

-serial 开发
将虚拟串口重定向到主机字符设备 开发. 默认设备是
图形模式下的“vc”和非图形模式下的“stdio”。

此选项可多次使用以模拟最多 4 个串行端口。

使用“-serial none”禁用所有串行端口。

可用的字符设备有:

VC[:WxH]
虚拟控制台。 可选地,可以以像素为单位给出宽度和高度

视频会议:800x600

也可以用字符指定宽度或高度:

VC:80Cx24C

PTY [仅限Linux] 伪TTY(自动分配一个新的PTY)

没有
没有分配设备。


无效装置

字符:id
使用用“-chardev”选项定义的命名字符设备。

/开发/XXX
[仅限 Linux] 使用主机 tty,例如 /开发/ttyS0. 主机串口参数为
根据模拟设置。

/开发/端口N
[仅限Linux,仅限并口] 使用主机并口 N. 目前 SPP 和 EPP
可以使用并口功能。

文件:文件名
将输出写入 文件名. 无法读取任何字符。

标准输出
[仅限 Unix] 标准输入/输出

管道:文件名
名称管道 文件名

COM的n
[仅限 Windows] 使用主机串口 n

UDP:[远程主机]:远程端口[@[源地址]:源端口]
这实现了 UDP 网络控制台。 什么时候 远程主机 or 源地址 未指定
它们默认为 0.0.0.0。 当不使用指定的 源端口 一个随机端口是
自动选择。

如果你只想要一个简单的只读控制台,你可以使用“netcat”或“nc”,通过
启动 QEMU:“-serial udp::4555” 和 nc 为:“nc -u -l -p 4555”。 任何时间
QEMU 向该端口写入一些内容,它将出现在 netconsole 会话中。

如果您打算通过 netconsole 发回字符,或者您想停止和启动
QEMU 很多次,你应该让 QEMU 每次使用相同的源端口
对 QEMU 使用类似“-serial udp::4555@4556”的东西。 另一种方法是使用
netcat 的补丁版本,它可以监听 TCP 端口并发送和接收
通过 udp 的字符。 如果您有激活的 netcat 补丁版本
telnet 远程回显和单字符传输,那么你可以使用下面的
加强 netcat 重定向器的选项,以允许端口 5555 上的 telnet 访问
QEMU 端口。

“QEMU 选项:”
-串行 udp::4555@4556

“网猫选项:”
-u -P 4555 -L 0.0.0.0:4556 -t -p 5555 -I -T

“远程登录选项:”
localhost 5555

TCP:[主持人]:端口[,服务器][,nowait][,nodelay][,重新连接=]
TCP Net Console 有两种操作模式。 它可以将串行 I/O 发送到
位置或等待来自某个位置的连接。 默认情况下 TCP Net 控制台
发送给 主持人端口。 如果你使用 服务器 选项 QEMU 将等待一个
客户端套接字应用程序在继续之前连接到端口,除非
指定了“nowait”选项。 “nodelay”选项禁用 Nagle 缓冲
算法。 “重新连接”选项仅适用于 无服务器 被设置,如果
连接断开它将尝试在给定的时间间隔重新连接。 如果 主持人
省略,假定为 0.0.0.0。 一次只接受一个 TCP 连接。 你
可以使用“telnet”连接到相应的字符设备。

“将 tcp 控制台发送到 192.168.0.2 端口 4444 的示例”
-串行 tcp:192.168.0.2:4444

“在端口 4444 上侦听并等待连接的示例”
-串行 tcp::4444,服务器

“不等待和侦听 ip 192.168.0.100 端口 4444 的示例”
-串行 tcp:192.168.0.100:4444,server,nowait

远程登录:主持人:端口[,服务器][,nowait][,nodelay]
使用 telnet 协议代替原始 tcp 套接字。 选项工作相同
就像您指定了“-serial tcp”一样。 不同之处在于端口的作用类似于
使用 telnet 选项协商的 telnet 服务器或客户端。 这也将允许
如果您使用支持发送 MAGIC_SYSRQ 序列的 telnet
断序列。 通常在 unix telnet 中,您使用 Control-] 执行此操作,然后键入
“发送中断”,然后按回车键。

Unix:[,服务器][,nowait][,重新连接=]
使用 unix 域套接字而不是 tcp 套接字。 该选项的工作原理相同
就像您指定了“-serial tcp”一样,除了 unix 域套接字 用来
用于连接。

星期一:开发字符串
这是一个特殊的选项,允许监视器多路复用到另一个
串行端口。 使用以下键序列访问监视器 控制-a 然后
紧迫 c. 开发字符串 应该是上面指定的任何一种串行设备。
将监视器多路复用到侦听端口 4444 的 telnet 服务器的示例
将会:

“-serial mon:telnet::4444,server,nowait”

当monitor以这种方式复用到stdio时,Ctrl+C不会终止
不再使用 QEMU,而是将其传递给来宾。

点字
盲文设备。 这将使用 BrlAPI 在真实或
假设备。

鼠标
三键串行鼠标。 将来宾配置为使用 Microsoft 协议。

-平行线 开发
将虚拟并行端口重定向到主机设备 开发 (与串行设备相同的设备
港口)。 在 Linux 主机上, /dev/parportN 可用于使用连接的硬件设备
对应的主机并口。

此选项可多次使用以模拟最多 3 个并行端口。

使用“-parallel none”禁用所有并行端口。

-监控 开发
将监视器重定向到主机设备 开发 (与串行端口相同的设备)。 这
默认设备在图形模式下为“vc”,在非图形模式下为“stdio”。 用
“-monitor none”禁用默认监视器。

-qmp 开发
与 -monitor 类似,但以“控制”模式打开。

-qmp-漂亮 开发
像 -qmp 但使用漂亮的 JSON 格式。

-周一 [chardev=]名称[,模式=readline|控制][,默认]
在 chardev 上设置监视器 姓名.

-调试器 开发
将调试控制台重定向到主机设备 开发 (与串行端口相同的设备)。 这
调试控制台是一个 I/O 端口,通常是端口 0xe9; 写入该 I/O 端口
将输出发送到此设备。 默认设备是图形模式下的“vc”和“stdio”
在非图形模式下。

-pid文件 文件
将 QEMU 进程 PID 存储在 文件. 如果您从脚本启动 QEMU,这会很有用。

-一小步
以单步模式运行仿真。

-S 不要在启动时启动 CPU(您必须在监视器中键入“c”)。

-即时的 mlock=开|关
运行具有实时功能的 qemu。 可以通过以下方式启用 mlocking qemu 和来宾内存
锁=开 (默认启用)。

-gdb 开发
等待设备上的 gdb 连接 开发. 典型的连接可能是基于 TCP 的,
但 UDP、伪 TTY 甚至 stdio 也是合理的用例。 后者是
允许从 gdb 中启动 QEMU 并通过管道建立连接:

(gdb) 目标远程 | exec qemu-system-i386 -gdb stdio ...

-s -gdb tcp::1234 的简写,即在 TCP 端口 1234 上打开一个 gdbserver。

-d 项目1[,...]
启用指定项目的日志记录。 使用“-d help”获取日志项列表。

-D 日志文件
输出登录 日志文件 而不是标准错误

-L
设置 BIOS、VGA BIOS 和键盘映射的目录。

-BIOS 文件
设置 BIOS 的文件名。

-启用-kvm
启用 KVM 完全虚拟化支持。 此选项仅在 KVM 支持时可用
编译时启用。

-xendomid id
指定 xen 来宾域 id (仅限 XEN)。

-xen-创建
使用 xen 超级调用创建域,绕过 xend。 警告:不应在以下情况下使用
xend 正在使用中(仅限 XEN)。

-xen-附加
附加到现有的 xen 域。 xend 将在启动 QEMU 时使用它(仅限 XEN)。

-无重启
退出而不是重新启动。

- 不关机
不要在来宾关闭时退出 QEMU,而只是停止仿真。 这允许
例如切换到监视器以提交对磁盘映像的更改。

-loadvm 文件
立即从保存的状态开始(监视器中的“loadvm”)

-守护进程
初始化后守护 QEMU 进程。 QEMU 不会脱离标准
IO,直到它准备好在其任何设备上接收连接。 这个选项是一个
外部程序启动 QEMU 的有用方法,无需处理
初始化竞争条件。

-选项-ROM 文件
加载内容 文件 作为选项 ROM。 此选项可用于加载诸如
以太网启动。

-RTC [base=utc|本地时间|日期][,时钟=主机|虚拟机][,driftfix=无|回转]
指定 基地 作为“utc”或“localtime”让RTC从当前UTC或本地开始
时间,分别。 在 MS-DOS 或 Windows 中,正确的日期需要“localtime”。 到
在特定时间点开始,提供 日期 格式为“2006-06-17T16:01:21”或
“2006-06-17”。 默认基数是 UTC。

默认情况下,RTC 由主机系统时间驱动。 这允许使用 RTC 作为
客人内部准确的参考时钟,特别是如果主人时间顺利
遵循准确的外部参考时钟,例如通过 NTP。 如果你想隔离
来自主机的客人时间,您可以设置 时钟 改为“rt”。 甚至防止它
从暂停期间的进展,您可以将其设置为“vm”。

启用 漂移修正 (仅限 i386 目标)如果您遇到时间漂移问题,
特别是 Windows 的 ACPI HAL。 此选项将尝试找出有多少计时器
Windows 来宾未处理中断,并将重新注入它们。

-我算 [移位=N|自动][,rr=记录|重播,rrfile=文件名]
启用虚拟指令计数器。 虚拟 CPU 将执行一条指令
每 2^N ns 虚拟时间。 如果指定了“auto”,则虚拟 CPU 速度将
自动调整以将虚拟时间保持在实时时间的几秒钟内。

当虚拟cpu休眠时,虚拟时间会以默认速度前进
除非 睡眠=否 被指定。 和 睡眠=否,虚拟时间会跳到下一个
每当虚拟 CPU 进入睡眠模式并且不会
如果未启用计时器,则提前。 这种行为给出了确定性的执行时间
客人的观点。

请注意,虽然此选项可以提供确定性行为,但它不提供循环
精确仿真。 现代 CPU 包含具有复杂功能的超标量乱序内核
缓存层次结构。 执行的指令数量通常很少或没有
与实际表现的相关性。

对齐=开 将激活将尝试同步主机的延迟算法
时钟和虚拟时钟。 目标是让客人以真实频率运行
由班次选项强加。 每当访客时钟落后于主机时钟并且如果
对齐=开 指定然后我们向用户打印一条消息以通知延迟。
当前此选项在以下情况下不起作用 转移 是“自动”。 注意:同步算法
将适用于访客时钟在主机之前运行的那些班次值
时钟。 通常,当移位值很高时会发生这种情况(多高取决于
主机)。

什么时候 rr 选项指定确定性记录/重播已启用。 重播日志是
写入 文件名 记录模式下的文件,并在重放模式下从该文件中读取。

-看门狗 模型
创建虚拟硬件看门狗设备。 一旦启用(通过访客操作),
看门狗必须由访客内部的代理定期轮询,否则访客
将重新启动。 选择您的客人有驱动程序的模型。

模型 是要模拟的硬件看门狗模型。 使用“-watchdog help”列出
可用的硬件型号。 一个访客只能启用一个看门狗。

可能提供以下型号:

ib700
iBASE 700 是一个非常简单的带有单个定时器的 ISA 看门狗。

i6300esb
Intel 6300ESB I/O 控制器集线器是一个功能更强大的基于 PCI 的双定时器
看门狗。

诊断288
由诊断 390 超级调用(当前为 KVM)支持的 s288x 虚拟看门狗
只要)。

-看门狗动作 行动
行动 控制当看门狗定时器到期时 QEMU 将做什么。 默认是
“重置”(强制重置来宾)。 其他可能的操作是:“关闭”(尝试
优雅地关闭来宾),“poweroff”(强行关闭来宾),“暂停”
(暂停来宾)、“调试”(打印调试消息并继续)或“无”(执行
没有)。

请注意,“关闭”操作要求来宾响应 ACPI 信号,
在看门狗可能有的那种情况下,它可能无法做到
已过期,因此不建议将“-watchdog-action shutdown”用于生产用途。

例子:

“-watchdog i6300esb -watchdog-action 暂停”
“-看门狗 ib700”
-ecr 数字_ascii_值
更改使用监视器时用于切换到监视器的转义字符和
串行共享。 使用“-nographic”选项时,默认值为 0x01。 0x01 是
等于按“Control-a”。 您可以从 ascii 中选择不同的字符
控制键,其中 1 到 26 映射到 Control-a 到 Control-z。 比如你
可以使用以下任一方法将转义字符更改为 Control-t。

“-echr 0x14”
“-echr 20”
-虚拟控制台 c
设置 virtio 控制台。

保留此选项是为了向后兼容。

请使用“-device virtconsole”作为新的调用方式。

-显示光标
显示光标。

-tb-大小 n
设置 TB 大小。

-传入 TCP:[主持人]:端口[,到=最大端口][,ipv4][,ipv6]
-传入 rma:主持人:端口[,ipv4][,ipv6]
准备传入迁移,侦听给定的 tcp 端口。

-传入 Unix:套接字路径
准备传入迁移,侦听给定的 unix 套接字。

-传入 FD:fd
接受来自给定文件描述符的传入迁移。

-传入 执行:CMDLINE
接受传入迁移作为指定外部命令的输出。

-传入 延缓
等待通过 migrate_incoming 指定 URI。 监视器可用于
在发出 migrate_incoming 之前更改设置(例如迁移参数)
允许迁移开始。

-无默认值
不要创建默认设备。 通常,QEMU 设置默认设备,如串行
端口、并口、虚拟控制台、显示器设备、VGA适配器、软盘和CD-ROM
开车等。 “-nodefaults”选项将禁用所有这些默认设备。

-chroot DIR
在即将开始执行来宾之前,chroot 到指定目录。
与 -runas 结合使用特别有用。

-鲁纳斯 用户
在开始来宾执行之前,删除 root 权限,切换到
指定用户。

-舞会环境 变量=折扣值
设置 OpenBIOS nvram 变量 给予 折扣值 (仅限 PPC、SPARC)。

- 半主机
启用半主机模式(仅限 ARM、M68K、Xtensa、MIPS)。

-半主机配置 [启用=on|off][,target=native|gdb|auto][,arg=str[,...]]
启用和配置半主机(仅限 ARM、M68K、Xtensa、MIPS)。

目标=“本机|gdb|自动”
定义半主机调用将被寻址到 QEMU(“本机”)或
GDB(“gdb”)。 默认为“auto”,这意味着在调试会话和
否则为“本地”。

参数=str1,参数=str2,...
允许用户传递输入参数,并且可以多次使用来构建
列一个清单。 传递命令行的旧式“-kernel”/“-append”方法是
仍然支持向后兼容。 如果同时“--semihosting-config arg”
并且指定了“-kernel”/“-append”,前者被传递给半主机作为
它总是优先。

-旧参数
旧参数模式(仅限 ARM)。

-沙盒 ARG
启用 Seccomp 模式 2 系统调用过滤器。 'on' 将启用系统调用过滤和 'off'
将禁用它。 默认值为“关闭”。

-读取配置 文件
从中读取设备配置 文件. 当您想要生成时,此方法很有用
QEMU 进程有很多命令行选项,但你不想超出命令
行字符限制。

- 写配置 文件
将设备配置写入 文件。 该 文件 可以是文件名来保存命令
行和设备配置到文件或破折号“-”)字符以将输出打印到
标准输出。 这可以稍后用作“-readconfig”选项的输入文件。

-nodefconfig
通常 QEMU 从 系统配置目录数据目录 在启动时。 这
“-nodefconfig”选项将阻止 QEMU 加载任何这些配置文件。

-无用户配置
“-no-user-config”选项使 QEMU 不加载任何用户提供的配置文件
on 系统配置目录,但不会让它跳过 QEMU 提供的配置文件 数据目录.

-痕迹 [事件=文件][,文件=文件]
指定跟踪选项。

事件=文件
立即启用中列出的事件 文件. 该文件必须包含一个事件名称
(如所列 跟踪事件 文件)每行。 此选项仅在以下情况下可用
QEMU 已编译为 简单 or 斯特德 追踪后端。

文件=文件
将输出跟踪记录到 文件.

此选项仅在 QEMU 已使用以下命令编译时可用 简单 追踪
后端。

-启用-fips
启用 FIPS 140-2 合规性模式。

-味精 时间戳[=开|关]
为每条日志消息添加时间戳。(默认:开启)

-转储-vmstate 文件
将当前机器类型的 json 编码 vmstate 信息转储到文件中 文件 通用
对象创建

-目的 类型名[,prop1=价值1……]
创建一个新的对象类型 类型名 按顺序设置属性
指定的。 请注意,必须设置“id”属性。 这些对象被放置在
“/对象”路径。

-目的 内存后端文件,id=id,大小=尺寸,内存路径=DIR,分享=开|关
创建一个内存文件后端对象,该对象可用于支持来宾 RAM
大页面。 这 id 参数是一个唯一的 ID,将用于引用它
配置时的内存区域 -沼 争论。 这 尺寸 选项提供
内存区域的大小,并接受常见的后缀,例如 500M。 该 内存路径
提供共享内存或大页面文件系统挂载的路径。 这
分享 布尔选项确定内存区域是否被标记为私有
QEMU,或者共享。 后者允许合作的外部进程访问
QEMU 内存区域。

-目的 rng-随机,id=id,文件名=/ dev /随机
创建一个随机数生成器后端,它从设备上获取熵
主人。 这 id 参数是一个唯一的 ID,将用于引用它
熵后端来自 虚拟化 设备。 的 文件名 参数指定哪个
从中获取熵的文件,如果省略则默认为 / dev /随机.

-目的 rng-egd,id=id,查德夫=查德维德
创建一个随机数生成器后端,它从外部获取熵
在主机上运行的守护进程。 这 id 参数是一个唯一的 ID,将用于
虚拟化 设备。 的 查德夫 参数
是字符设备后端的唯一 ID,它提供到
RNG 守护进程。

-目的
tls-creds-匿名,id=id,端点=端点,目录=/路径/到/信用/目录,验证对等=开|关
创建 TLS 匿名凭据对象,可用于提供 TLS
支持网络后端。 这 id 参数是网络的唯一 ID
后端将用于访问凭据。 这 端点 或者是 服务器 or
客户 取决于使用凭证的 QEMU 网络后端
将充当客户端或服务器。 如果 验证对等体 已启用(默认)
然后一旦握手完成,将验证对等凭据,
尽管这是匿名凭据的无操作。

DIR 参数告诉 QEMU 在哪里可以找到凭证文件。 服务器用
端点,此目录可能包含一个文件 dh-参数.pem 提供差异
用于 TLS 服务器的地狱参数。 如果文件丢失,QEMU 将
在启动时生成一组 DH 参数。 这是一个计算上昂贵的
消耗随机池熵的操作,因此建议
预先生成并保存一组持久的参数。

-目的
tls-creds-x509,id=id,端点=端点,目录=/路径/到/信用/目录,验证对等=开|关
创建 TLS 匿名凭据对象,可用于提供 TLS
支持网络后端。 这 id 参数是网络的唯一 ID
后端将用于访问凭据。 这 端点 或者是 服务器 or
客户 取决于使用凭证的 QEMU 网络后端
将充当客户端或服务器。 如果 验证对等体 已启用(默认)
然后一旦握手完成,将验证对等凭据。 和
x509 证书,这意味着必须为客户端提供有效的
客户证书也是如此。

DIR 参数告诉 QEMU 在哪里可以找到凭证文件。 服务器用
端点,此目录可能包含一个文件 dh-参数.pem 提供差异
用于 TLS 服务器的地狱参数。 如果文件丢失,QEMU 将
在启动时生成一组 DH 参数。 这是一个计算上昂贵的
消耗随机池熵的操作,因此建议
预先生成并保存一组持久的参数。

对于 x509 证书凭据,该目录将包含更多文件
提供 x509 证书。 证书必须以 PEM 格式存储在
档名 ca-cert.pem, 钙-crl-PEM (可选的), 服务器-cert.pem (仅限服务器),
服务器密钥.pem (仅限服务器), 客户端证书.pem (仅限客户),以及 客户端密钥.pem
(仅限客户)。

-目的 过滤缓冲区,id=id,网络设备=网络视频,间隔=t[,队列=全部|接收|发送]
间隔 t 不能为 0,此过滤器批量发送数据包:所有数据包
在 netdev 上的给定间隔内到达 网络视频 被推迟到年底
间隔。 间隔以微秒为单位。

队列 全部|接收|发送 是一个可以应用于任何网络过滤器的选项。

所有:过滤器同时连接到接收队列和发送队列
netdev(默认)。

rx: 过滤器附加到 netdev 的接收队列,它会在那里
接收发送到 netdev 的数据包。

tx: 过滤器附加到 netdev 的传输队列,在那里它将
接收netdev发送的数据包。

-目的 过滤转储,id=id,网络设备=开发,文件=文件名][,最大长度=LEN]
在 netdev 上转储网络流量 开发 到指定的文件 文件名. 最多
LEN 存储每个数据包的字节数(默认为 64k)。 文件格式是 libpcap,所以
可以使用 tcpdump 或 Wireshark 等工具对其进行分析。

在图形仿真期间,您可以使用特殊的组合键来更改模式。 这
默认键映射如下所示,但如果您使用“-alt-grab”,则修饰符为
Ctrl-Alt-Shift(而不是 Ctrl-Alt),如果您使用“-ctrl-grab”,则修饰符是
右 Ctrl 键(而不是 Ctrl-Alt):

Ctrl-Alt-f
切换全屏

Ctrl-Alt-+
放大屏幕

Ctrl-Alt--
缩小萤幕

Ctrl-Alt-u
恢复屏幕的未缩放尺寸

Ctrl-Alt-n
切换到虚拟控制台“n”。 标准控制台映射是:

1 目标系统显示

2 显示器

3 串口

Ctrl-Alt
切换鼠标和键盘抓取。

在虚拟控制台中,您可以使用 Ctrl-向上, Ctrl-向下, Ctrl-PageUpCtrl-PageDown
在后备日志中移动。

在仿真过程中,如果您使用 - 图形学 选项,使用 控制键 h 获取终端
命令:

控制键 h
控制键 ?
打印此帮助

控制键 x
退出模拟器

控制键 s
将磁盘数据保存回文件(如果 -snapshot)

控制键 t
切换控制台时间戳

控制键 b
发送中断(Linux 中的魔术 sysrq)

控制键 c
在控制台和监视器之间切换

控制键 控制键
发送 Ctrl-a

以下选项特定于 PowerPC 仿真:

-g WxH[x深度]
设置初始 VGA 图形模式。 默认为 800x600x32。

-舞会环境 绳子
在 NVRAM 中设置 OpenBIOS 变量,例如:

qemu-system-ppc -prom-env 'auto-boot?=false'
-prom-env 'boot-device=hd:2,\yaboot'
-prom-env 'boot-args=conf=hd:2,\yaboot.conf'

Open Hack'Ware 不使用这些变量。

以下选项特定于 Sparc32 仿真:

-g WxHx[x]深度]
设置初始图形模式。 对于 TCX,默认为 1024x768x8,可选择
1024x768x24。 对于 cgthree,默认为 1024x768x8,可选择 1152x900x8
希望使用 OBP 的人。

-舞会环境 绳子
在 NVRAM 中设置 OpenBIOS 变量,例如:

qemu-system-sparc -prom-env 'auto-boot?=false'
-prom-env 'boot-device=sd(0,2,0):d' -prom-env 'boot-args=linux single'

-M [SS-4|SS-5|SS-10|SS-20|SS-600MP|LX|Voyager|SPARCClassic] [|SPARC书]
设置仿真机器类型。 默认值为 SS-5。

以下选项特定于 Sparc64 仿真:

-舞会环境 绳子
在 NVRAM 中设置 OpenBIOS 变量,例如:

qemu-system-sparc64 -prom-env 'auto-boot?=false'

-M [sun4u|sun4v|尼亚加拉]
设置仿真机器类型。 默认值为 sun4u。

使用 onworks.net 服务在线使用 qemu-system-tricore



最新的 Linux 和 Windows 在线程序