文章目录
- Debug/Expert options:
-
- -fw_cfg
- -serial ★
- -parallel ★
- -monitor ★
- -qmp
- -qmp-pretty
- -mon
- -debugcon
- -pidfile
- -singlestep
- - -preconfig ★
- -S ★
- -realtime
- -overcommit
- -gdb ★
- -s ★
- -d ★
- -D ★
- -dfilter
- -seed
- -L
- -bios
- -enable-kvm
- -xen-domid
- -xen-attach
- -xen-domid-restrict
- -no-reboot
- -no-shutdown
- -loadvm
- -daemonize
- -option-rom
- -rtc
- -icount
- -watchdog
- -watchdog-action
- -echr
- -show-cursor
- -tb-size
- -incoming
- -only-migratable
- -nodefaults
- -chroot
- -runas
- -sandbox
- -readconfig
- -writeconfig
- -no-user-config
- -trace
- -plugin
- -enable-fips
- -msg
- -dump-vmstate
- -enable-sync-profile
Debug/Expert options:
-fw_cfg
-fw_cfg [name=]<name>,file=<file>
add named fw_cfg entry with contents from file
-fw_cfg [name=]<name>,string=<str>
add named fw_cfg entry with contents from string
在 QEMU 中,-fw_cfg
选项用于配置虚拟机的固件配置(firmware configuration),这通常用于向虚拟机的 BIOS 或 UEFI 固件传递特定的配置数据。以下是 -fw_cfg
选项的两种使用方式的详细解释:
-fw_cfg [name=]<name>,file=<file>
这个选项允许你添加一个命名的固件配置项,其内容来自一个文件。这里:[name=]<name>
是一个可选的参数,用于指定固件配置项的名称。如果不提供,则 QEMU 会自动生成一个名称。file=<file>
指定包含配置数据的文件的路径。
例如,以下命令将从文件/path/to/config.data
加载配置数据,并将其作为一个名为config
的固件配置项传递给虚拟机:
qemu-system-x86_64 ... -fw_cfg name=config,file=/path/to/config.data ...
-fw_cfg [name=]<name>,string=<str>
这个选项允许你添加一个命名的固件配置项,其内容来自一个字符串。这里:[name=]<name>
同样是用于指定固件配置项名称的可选参数。string=<str>
是要传递给固件的字符串值。
例如,以下命令将字符串example
作为名为example_str
的固件配置项传递给虚拟机:
qemu-system-x86_64 ... -fw_cfg name=example_str,string="example" ...
这些固件配置项可以被虚拟机内的操作系统或固件在启动时读取,以执行特定的配置任务,例如网络配置、启动参数传递等。在某些情况下,这对于自定义虚拟机的启动行为非常有用。
-serial ★
-serial dev redirect the serial port to char device 'dev'
在 QEMU 中,-serial
选项用于配置虚拟机的串行端口。串行端口可以用于虚拟机和宿主机之间的通信,也可以用于重定向虚拟机的控制台输出。
-serial dev
中的 dev
可以是以下几种不同的值或设备:
null
:禁用串行端口。stdio
:将虚拟机的串行端口输出重定向到 QEMU 的标准输入输出,通常用于在控制台窗口中查看虚拟机的输出。file:<filename>
:将虚拟机的串行端口输出重定向到一个文件。pipe:<pipename>
:将虚拟机的串行端口输出重定向到一个命名管道。socket
:将虚拟机的串行端口输出重定向到一个套接字。chardev:id
:将虚拟机的串行端口连接到一个字符设备,其中id
是使用-chardev
选项创建的字符设备的标识符。
以下是一些使用-serial
选项的例子:
# 将虚拟机的串行端口输出重定向到标准输入输出
qemu-system-x86_64 -serial stdio ...
# 将虚拟机的串行端口输出重定向到一个文件
qemu-system-x86_64 -serial file:/path/to/serial.log ...
# 将虚拟机的串行端口输出重定向到一个命名管道
qemu-system-x86_64 -serial pipe:myserialpipe ...
# 将虚拟机的串行端口连接到一个套接字
qemu-system-x86_64 -serial socket ...
# 将虚拟机的串行端口连接到一个字符设备
qemu-system-x86_64 -chardev pipe,id=charpipe -serial chardev:charpipe ...
-parallel ★
-parallel dev redirect the parallel port to char device 'dev'
在 QEMU 中,-parallel
选项用于配置虚拟机的并行端口。并行端口通常用于打印机和其他并行设备,但在虚拟化环境中,它也可以用于重定向输出,类似于串行端口。
与 -serial
选项类似,-parallel
选项的 dev
参数可以是以下几种不同的值或设备:
null
:禁用并行端口。file:<filename>
:将虚拟机的并行端口输出重定向到一个文件。pipe:<pipename>
:将虚拟机的并行端口输出重定向到一个命名管道。socket
:将虚拟机的并行端口输出重定向到一个套接字。chardev:id
:将虚拟机的并行端口连接到一个字符设备,其中id
是使用-chardev
选项创建的字符设备的标识符。
以下是一些使用-parallel
选项的例子:
# 将虚拟机的并行端口输出重定向到标准输入输出
qemu-system-x86_64 -parallel stdio ...
# 将虚拟机的并行端口输出重定向到一个文件
qemu-system-x86_64 -parallel file:/path/to/parallel.log ...
# 将虚拟机的并行端口输出重定向到一个命名管道
qemu-system-x86_64 -parallel pipe:myparallelpipe ...
# 将虚拟机的并行端口连接到一个套接字
qemu-system-x86_64 -parallel socket ...
# 将虚拟机的并行端口连接到一个字符设备
qemu-system-x86_64 -chardev pipe,id=charpipe -parallel chardev:charpipe ...
请注意,虽然 -parallel
选项在技术上仍然可用,但在现代虚拟化环境中,并行端口的使用已经不如串行端口那么普遍。因此,在某些情况下,你可能不会经常看到这个选项的使用。
-monitor ★
-monitor dev redirect the monitor to char device 'dev'
在 QEMU 中,-monitor
选项用于指定监视器(monitor)的设备