本文由 AI 翻译(ChatGPT-4)完成,并由作者进行人工校对。如有任何问题或建议,欢迎联系我。联系方式:jelin-sh@outlook.com。
以下是最近删除的、以前不推荐使用的功能的记录,这是为那些在最近升级后遇到问题的用户提供的记录。
系统仿真器命令行参数
-hdachs(在 2.12 中删除)
由 -hdachs c,h,s,t
定义的几何图形现在应通过 -device ide-hd,drive=dr,cyls=c,heads=h,secs=s,bios-chs-trans=t
(连同 -drive if=none,id=dr,...
)指定。
-net channel(在 2.12 中删除)
此选项已被 -net user,guestfwd=...
替换。
-net dump(在 2.12 中删除)
-net dump[,vlan=n][,file=filename][,len=maxlen]
已被 -object filter-dump,id=id,netdev=dev[,file=filename][,maxlen=maxlen]
替换。请注意,新的语法使用 netdev ID 而不是旧的“vlan”中心。
-no-kvm-pit(在 2.12 中删除)
这只是一个被忽略的虚拟选项,因为内核中的 PIT 现在无法单独禁用,与 irqchip 无法分开。可以通过 -M kernel_irqchip=split
获得类似的效果(也会禁用 KVM IOAPIC)。
-tdf(在 2.12 中删除)
没有替代方案,-tdf 选项刚刚被忽略,因为在 qemu-kvm 中可以通过该选项更改的行为现在在使用 KVM PIT 时已成为默认行为。仍然可以通过 -global kvm-pit.lost_tick_policy=delay
明确请求。
-drive secs=s,-drive heads=h 和 -drive cyls=c(在 3.0 中移除)
驱动几何结构现在应通过 -device ...,drive=dr,cyls=c,heads=h,secs=s
(连同 -drive if=none,id=dr,...
)指定。
-drive serial=,-drive trans= 和 -drive addr=(在 3.0 中移除)
使用 -device ...,drive=dr,serial=r,bios-chs-trans=t,addr=a
代替(连同 -drive if=none,id=dr,...
)。
-net …,vlan=x(在 3.0 中删除)
术语“vlan”在这种情况下对大多数用户来说非常令人困惑(它是关于指定一个集线器 ID,而不是关于 IEEE 802.1Q 或类似的东西),因此已被移除。要将一个 NIC 前端与网络后端连接起来,可以使用 -nic ...
(例如用于板载 NIC)或者使用 -netdev ...,id=n
与 -device ...,netdev=n
一起(用于对可插拔 NIC 具有完全控制)。要通过一个集线器设备连接多个 NIC 或网络后端(这就是 vlan 所做的事情),请改用 -nic hubport,hubid=x,...
或 -netdev hubport,id=n,hubid=x,...
(与 -device ...,netdev=n
一起)。
-no-kvm-irqchip(在 3.0 中删除)
请使用 -machine kernel_irqchip=off
替代。
-no-kvm-pit-reinjection(在 3.0 中删除)
请使用 -global kvm-pit.lost_tick_policy=discard
替代。
-balloon(在 3.1 中删除)
选项 -balloon virtio
已被替换为 -device virtio-balloon
。选项 -balloon none
是一个无操作选项,没有替代项。
-bootp(在 3.1 中删除)
第 -bootp /some/file
参数将被替换为 -netdev user,id=x,bootp=/some/file
(用于可插拔网卡,附带 -device ...,netdev=x
)或 -nic user,bootp=/some/file
(用于板载网卡)。新的语法允许为每个网卡提供不同的设置。
-redir(在 3.1 中删除)
选项 -redir [tcp|udp]:hostport:[guestaddr]:guestport
被替换为 -netdev user,id=x,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport
(适用于可插拔网卡,配有 -device ...,netdev=x
)或选项 -nic user,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport
(适用于板载网卡)。新语法允许为每个网卡提供不同的设置。
-smb(在 3.1 中删除)
第 -smb /some/dir
参数将被替换为 -netdev user,id=x,smb=/some/dir
(用于可插拔网卡,附带 -device ...,netdev=x
)或 -nic user,smb=/some/dir
(用于板载网卡)。新的语法允许为每个网卡提供不同的设置。
-tftp(在 3.1 中删除)
第 -tftp /some/dir
参数将被替换为 -netdev user,id=x,tftp=/some/dir
(用于可插拔网卡,附带 -device ...,netdev=x
),或 -nic user,tftp=/some/dir
(用于板载网卡)。新的语法允许为每个网卡提供不同的设置。
-localtime(在 3.1 中删除)
被 -rtc base=localtime
替换。
-nodefconfig(在 3.1 中删除)
请使用 -no-user-config
替代。
-rtc-td-hack(在 3.1 中删除)
请使用 -rtc driftfix=slew
替代。
-startdate(在 3.1 中删除)
被 -rtc base=date
替换。
-vnc …,tls=…,-vnc …,x509=… 和 -vnc …,x509verify=…(在 3.1 中移除)
“tls-creds”选项应该使用,而不是指向使用“-object”创建的“tls-creds-x509”对象。
-mem-path 回退到 RAM(在 5.0 中已移除)
如果从由 -mem-path
指定的文件中分配客户端 RAM 失败,QEMU 会回退到直接从 RAM 中分配,这可能导致不可预测的行为,因为用户指定的备用文件被忽略。目前,用户需要确保使用 -mem-path
指定的备用存储确实可以提供与 -m
选项配置的客户端 RAM 相匹配的存储空间。如果 RAM 分配失败,QEMU 将无法启动。
-net …,name=… (在 5.1 中删除)
-net
选项的 name
参数是 id
参数的同义词,现在应使用 id
参数。
-numa node,mem=… (在 5.1 中删除)
-numa node
选项的 mem
参数用于将一部分客户端 RAM 分配给 NUMA 节点。但在使用时,无法在主机端管理指定的 RAM 块(比如将其绑定到主机节点,设置绑定策略等),因此客户端最终会以虚拟 NUMA 配置,性能不佳。然而,自 2014 年以来,可以使用参数 memdev
将 RAM 分配给 NUMA 节点,它与 mem
参数相同,并增加了在主机端实际管理节点 RAM 的功能。使用 memdev
参数与 memory-backend-ram
后端替换 mem
参数,以实现相同的虚拟 NUMA 效果,或者使用正确配置的 memory-backend-file
后端以实际受益于 NUMA 配置。新版本的机器(自 5.1 版本以来)将不接受该选项,但仍可与旧的机器类型一起使用。用户可以查看 QAPI 模型,通过查看 MachineInfo::numa-mem-supported
属性来确定是否支持传统选项。
-numa 节点(未指定内存)(在 5.2 中移除)
默认情况下,在 NUMA 节点之间分割 RAM 存在与 mem
参数相同的问题,不同之处在于用户在 QEMU 中使用隐式通用或板特定的分割规则。使用 memdev
与 memory-backend-ram
后端或 mem
参数(如果所用的机器类型支持)来明确定义映射。希望保留相同 RAM 分配的现有虚拟机用户应使用 -numa node,memdev
选项进行明确配置。当前的 RAM 分配可以使用 HMP 命令 info numa
检索,如果存在单独的内存设备