【QEMU中文文档】1.4 已经移除的功能

本文由 AI 翻译(ChatGPT-4)完成,并由作者进行人工校对。如有任何问题或建议,欢迎联系我。联系方式:jelin-sh@outlook.com

原文:Removed features — QEMU documentation

以下是最近删除的、以前不推荐使用的功能的记录,这是为那些在最近升级后遇到问题的用户提供的记录。

系统仿真器命令行参数

-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 中使用隐式通用或板特定的分割规则。使用 memdevmemory-backend-ram 后端或 mem 参数(如果所用的机器类型支持)来明确定义映射。希望保留相同 RAM 分配的现有虚拟机用户应使用 -numa node,memdev 选项进行明确配置。当前的 RAM 分配可以使用 HMP 命令 info numa 检索,如果存在单独的内存设备(例如 pc|nv-dimm),则使用 info memory-device 并从 info numa 的输出中减去设备内存。

-smp (无效拓扑)(在 5.2 中移除)

CPU 拓扑属性应描述整个机器拓扑,包括可能的 CPU。然而,从历史上看,可能会以不正确的拓扑启动 QEMU,其中 n <= sockets * cores * threads < maxcpus,这可能会导致客户机对不正确的拓扑进行枚举。不再支持无效的拓扑,用户必须确保用 -smp 描述的拓扑包括所有可能的 CPU,即 sockets * cores * threads = maxcpus

-machine enforce-config-section=on|off (在 5.2 中删除)

enforce-config-section 属性已被 -global migration.send-configuration={on|off} 选项替换。

-no-kvm (在 5.2 中删除)

-no-kvm 参数是设置 -machine accel=tcg 的同义词。

-realtime (在 6.0 中删除)

-realtime mlock=on|off 参数已被 -overcommit mem-lock=on|off 参数替换。

-show-cursor 选项(在 6.0 版本中移除)

请使用 -display sdl,show-cursor=on-display gtk,show-cursor=on-display default,show-cursor=on

-tb-size 选项(在 6.0 版本中移除)

QEMU 5.0 引入了一种替代语法来指定翻译块缓存的大小,即 -accel tcg,tb-size=

-usbdevice audio (在 6.0 中删除)

此选项缺乏指定音频后端设备的功能。现在应使用 -device usb-audio(并在必要时指定相应的 USB 主机控制器或 -usb)。

-vnc acl (在 6.0 中删除)

acl 参数已被 tls-authzsasl-authz 选项替换。

-mon …,control=readline,pretty=on|off (在 6.0 中删除)

pretty=on|off 开关对 HMP 监视器没有影响,其使用已被弃用。

-drive file=json:{…{‘driver’:‘file’}} (在 6.0 中删除)

“file”驱动器不再适用于字符或主机设备,只接受常规文件(S_IFREG)。这些文件类型的正确驱动程序是“host_cdrom”或“host_device”。

软盘控制器的驱动属性(在 6.0 中已移除)

请使用 -device floppy,... 来配置板载软盘控制器:

  • -global isa-fdc.driveA=...
    -global sysbus-fdc.driveA=...
    -global SUNW,fdtwo.drive=...
    

    替换为

    -device floppy,unit=0,drive=...
    
  • -global isa-fdc.driveB=...
    -global sysbus-fdc.driveB=...
    

    替换为

    -device floppy,unit=1,drive=...
    

当插入软盘控制器时:

  • -device isa-fdc,...,driveA=...
    

    替换为

    -device isa-fdc,...
    -device floppy,unit=0,drive=...
    
  • -device isa-fdc,...,driveB=...
    

    替换为

    -device isa-fdc,...
    -device floppy,unit=1,drive=...
    

-drive 使用虚假的接口类型(在 6.0 中已移除)

具有接口类型 if=none 以外的驱动器适用于板载设备。板卡无法识别的驱动器将无法再与设备一起使用。请改用 if=none

-usbdevice ccid (在 6.0 中删除)

此选项未记录并且未在实际中使用。请改用 -device usb-ccid

RISC-V 固件默认未启动(在 5.1 中移除)

QEMU 5.1 将 RISC-V virt 机器和 sifive_u 机器的默认行为从 -bios none 更改为 -bios default

-no-quit (在 7.0 中删除)

-no-quit-display ...,window-close=off 的同义词,应该使用 -display ...,window-close=off

–enable-fips (在 7.1 中删除)

此选项在主机以 FIPS 模式运行时限制了某些加密算法的使用。如果需要符合 FIPS 标准,应使用 libgcrypt 或 gnutls 库构建 QEMU,作为加密提供程序。不支持在启用 FIPS 的主机上使用 nettle 库或内置的加密提供程序。

-writeconfig (在 7.1 中删除)

-writeconfig 选项无法序列化 QEMU 命令行的全部内容。因此,它被视为失败的实验,并在没有替代方案的情况下被移除。

loaded 属性的 secret 和 secret_keyring 对象(在 7.1 中移除)

命令行中的 loaded=on 选项或 QMP object-add 选项没有任何效果(如果 loaded 是最后一个选项),或者导致选项被有效地忽略,就好像它们没有被给出一样。因此,该属性是无用的,应该被简单地移除。

rng-* 对象的 opened 属性(在 7.1 中已移除)

命令行中的 opened=on 选项或 QMP object-add 选项没有任何效果(如果 opened 是最后一个选项),或者会导致错误。因此,该属性是无用的,应该被简单地移除。

-display sdl,window_close=… (在 7.1 中删除)

请使用 -display sdl,window-close=... 代替(即在“window”和“close”之间使用减号而不是下划线)。

-alt-grab 和 -display sdl,alt_grab=on (在 7.1 中移除)

请使用 -display sdl,grab-mod=lshift-lctrl-lalt 替代。

-ctrl-grab 和 -display sdl,ctrl_grab=on (在 7.1 中移除)

请使用 -display sdl,grab-mod=rctrl 替代。

-sdl (在 7.1 中删除)

请使用 -display sdl 替代。

-curses (在 7.1 中删除)

请使用 -display curses 替代。

使用 -soundhw 创建声卡设备(在 7.1 中已移除)

声卡设备应使用 -device-audio 创建。例外情况是 pcspk,可以使用 -machine pcspk-audiodev=<name> 激活。

-watchdog (自 7.2 版本起)

请使用 -device 替代。

十六进制大小与缩放倍数(自 8.0 版起)

接受大小值的输入参数应在基数以十进制形式书写时使用大小后缀(如 ‘k’ 或 ‘M’),而在值为十六进制时不应使用大小后缀。例如,‘0x20M’ 应该写成 ‘32M’ 或 ‘0x2000000’。

-chardev 后端别名 tty 和 parport (在 8.0 中已移除)

ttyparport 曾分别是 serialparallel 的别名。应使用实际的后端名称。

-drive if=none 适用于 sifive_u OTP 设备(在 8.0 中已移除)

使用 -drive if=pflash 来配置 sifive_u RISC-V 机器的 OTP 设备。

-spice password=string (在 8.0 中删除)

此选项不安全,因为 SPICE 密码在进程列表中仍然可见。已被新的 password-secret 选项替换,该选项允许使用 secret 对象实例在命令行上安全地提供密码。

QEMU_AUDIO_ 环境变量和 -audio-help (在 8.2 中已移除)

-audiodev-audio 命令行选项现在是指定音频后端设置的唯一方式。

使用 -audiodev 来定义默认音频后端(在 8.2 中已移除)

如果未指定 audiodev 属性,则以前的版本将使用第一个 -audiodev 命令行选项作为后备。从版本 8.2 开始,使用 -audiodev 创建的音频后端将仅由在 audiodev= 属性中引用它的客户端(声卡、带有嵌入式声音硬件的机器、VNC)使用。

为了配置默认音频后端,请使用 `

-audio` 命令行选项,而无需指定 model;以前的 QEMU 版本需要一个模型,从 8.2 版本开始,QEMU 不需要模型,在这种情况下不会创建任何声卡。

请注意,如果使用 -nodefaults 选项,则必须在命令行上配置默认音频后端。

-no-hpet (在 9.0 中删除)

HPET 设置已转换为机器属性。请使用 -machine hpet=off

-no-acpi (在 9.0 中删除)

-no-acpi 设置已转换为机器属性。请使用 -machine acpi=off

-async-teardown (在 9.0 中删除)

请使用 -run-with async-teardown=on 替代。

-chroot (在 9.0 中删除)

请使用 -run-with chroot=dir 替代。

-singlestep (在 9.0 中删除)

选项 -singlestep 已转换为加速器属性,并赋予了一个更能反映其实际功能的名称。请使用 -accel tcg,one-insn-per-tb=on

-smp (“parameter=0” SMP 配置)(在 9.0 中移除)

指定的 CPU 拓扑参数必须大于零。在 SMP 配置中,用户应提供合理的 CPU 拓扑参数(大于零),或者省略它,QEMU 将计算缺失的值。

历史上隐式允许用户提供值为零的参数,这是没有意义的,也可能导致 -smp 解析中的意外结果。因此,自 9.0 版本开始,不再支持这种配置(例如 -smp 8,sockets=0),用户必须确保所有使用 -smp 描述的拓扑成员大于零。

-global migration.decompress-error-check (在 9.1 中删除)

随着压缩迁移功能一起移除。

用户模式模拟器命令行参数

-singlestep (在 9.0 中删除)

选项 -singlestep 已被赋予一个更能反映其实际功能的名称。对于 Linux 用户和 BSD 用户,请使用选项 -one-insn-per-tb

QEMU 机器协议(QMP)命令

block-dirty-bitmap-add “autoload”参数(在 4.2 中已移除)

“autoload”参数自 2.12.0 版本起已被忽略。所有位图将自动从 qcow2 镜像加载。

cpu-add (在 5.2 中删除)

使用 device_add 来热插拔虚拟 CPU,而不是 cpu-add。有关更多详细信息,请参阅 query-hotpluggable-cpus 的文档。

change (在 6.0 中删除)

请使用 blockdev-change-mediumchange-vnc-passworddisplay-update

query-events (在 6.0 中删除)

query-events 命令已被更强大和准确的 query-qmp-schema 命令取代。

migrate_set_cache_size 和 query-migrate-cache-size (在 6.0 中移除)

使用 migrate_set_parameterinfo migrate_parameters 代替。

migrate_set_downtime 和 migrate_set_speed (在 6.0 中移除)

请使用 migrate_set_parameter 替代。

query-cpus (在 6.0 中删除)

query-cpus 命令被 query-cpus-fast 命令替换。

query-cpus-fast arch 输出成员(在 6.0 中已移除)

query-cpus-fast 命令的 arch 输出成员被 target 输出成员替换。

chardev 客户端套接字与 wait 选项(在 6.0 中已移除)

在客户端模式下创建套接字的字符设备不应指定 wait 字段,该字段仅适用于服务器模式下的套接字。

query-named-block-nodes 结果 encryption_key_missing (在 6.0 中移除)

无替代品移除。

query-block 结果 inserted.encryption_key_missing (在 6.0 中移除)

无替代品移除。

query-named-block-nodes 和 query-block 结果 dirty-bitmaps[i].status(在 6.0 中已移除)

这些命令返回的 BlockDirtyInfo 结构的 status 字段已被移除。两个新的布尔字段 recordingbusy 有效地取代了它。

query-block 结果字段 dirty-bitmaps (在 6.0 中已移除)

查询块命令返回的 BlockInfo 结构的 dirty-bitmaps 字段现在已被移除。应该使用 BlockDeviceInfo 结构的 dirty-bitmaps 字段,这是查询块回复中 inserted 字段的类型,以及查询命名块节点中数组项的类型。

object-add 选项 props (在 6.0 中已移除)

将对象的属性指定为顶级参数。

query-sgx 返回值成员 section-size (在 8.0 中已移除)

返回值中的成员 section-size 已被 sections 取代。

query-sgx-capabilities 返回值成员 section-size (在 8.0 中已移除)

返回值中的成员 section-size 已被 sections 取代。

query-migrate 返回值成员 skipped (在 9.1 中已移除)

MigrationStats 结构体的成员 skipped 已经超过 10 年没有被使用。已删除且没有替代。

migrate 命令选项 inc (在 9.1 版本中已移除)

使用 blockdev-mirrorNBD 代替。有关详细说明,请参阅 docs/interop/live-block-operations.rst 中的“使用 blockdev-mirror + NBD 进行实时存储迁移的 QMP 调用”。

migrate 命令选项 blk (在 9.1 版本中已移除)

使用 blockdev-mirrorNBD 代替。有关详细说明,请参阅 docs/interop/live-block-operations.rst 中的“使用 blockdev-mirror + NBD 进行实时存储迁移的 QMP 调用”。

migrate-set-capabilities block 选项(在 9.1 中已移除)

块迁移已被移除。要进行替代,请参阅 docs/interop/live-block-operations.rst 中的“使用 blockdev-mirror + NBD 进行实时存储迁移的 QMP 调用”。

migrate-set-parameter compress-level 选项(在 9.1 中已移除)

请使用 multifd-zlib-levelmultifd-zstd-level

migrate-set-parameter compress-threads 选项(在 9.1 中已移除)

请使用 multifd-channels 替代。

migrate-set-parameter compress-wait-thread 选项(在 9.1 中已移除)

无替代品移除。

migrate-set-parameter decompress-threads 选项(在 9.1 中已移除)

请使用 multifd-channels 替代。

migrate-set-capability compress 选项(在 9.1 中已移除)

请使用 multifd-compression 替代。

人类监控协议(HMP)命令

usb_add 和 usb_remove (在 2.12 中移除)

device_adddevice_del 替换(使用 device_add help 查看可用设备列表)。

host_net_add 和 host_net_remove (在 2.12 中移除)

netdev_addnetdev_del 替换。

hostfwd_add / hostfwd_remove 的 hub_id 参数(在 5.0 中已移除)

“hostfwd_add”和“hostfwd_remove” HMP 命令的 [hub_id name] 参数元组已被 netdev_id 替换。

cpu-add (在 5.2 中删除)

使用 device_add 来热插拔虚拟 CPU,而不是 cpu-add。有关更多详细信息,请参阅 query-hotpluggable-cpus 的文档。

change vnc TARGET (在 6.0 中删除)

没有替换。change vnc passwordchange DEVICE MEDIUM 命令不受影响。

acl_show,acl_reset,acl_policy,acl_add,acl_remove (在 6.0 中已移除)

acl_showacl_resetacl_policyacl_addacl_remove 命令已被删除,没有替代。应使用可插拔的 QAuthZ 对象执行 VNC 的授权。

migrate-set-cache-size 和 info migrate-cache-size (在 6.0 中移除)

使用 migrate-set-parametersinfo migrate-parameters 代替。

migrate_set_downtime 和 migrate_set_speed (在 6.0 中移除)

请使用 migrate-set-parameters 替代。

info cpustats (在 6.1 中删除)

这个命令没有产生任何输出。已删除且没有替换。

singlestep (在 9.0 中删除)

singlestep 命令已被 one-insn-per-tb 命令替换,两者行为相同,但名称更少误导。

migrate 命令 -i 选项(在 9.1 中已移除)

使用 blockdev-mirrorNBD 代替。有关详细说明,请参阅 docs/interop/live-block-operations.rst 中的“使用 blockdev-mirror + NBD 进行实时存储迁移的 QMP 调用”。

migrate 命令 -b 选项(在 9.1 中已移除)

使用 blockdev-mirrorNBD 代替。有关详细说明,请参阅 docs/interop/live-block-operations.rst 中的“使用 blockdev-mirror + NBD 进行实时存储迁移的 QMP 调用”。

migrate_set_capability block 选项(在 9.1 中已移除)

块迁移已被移除。要进行替代,请参阅 docs/interop/live-block-operations.rst 中的“使用 blockdev-mirror + NBD 进行实时存储迁移的 QMP 调用”。

migrate_set_parameter compress-level 选项(在 9.1 中已移除)

请使用 multifd-zlib-levelmultifd-zstd-level

migrate_set_parameter compress-threads 选项(在 9.1 中已移除)

请使用 multifd-channels 替代。

migrate_set_parameter compress-wait-thread 选项(在 9.1 中已移除)

无替代品移除。

migrate_set_parameter decompress-threads 选项(在 9.1 中已移除)

请使用 multifd-channels 替代。

migrate_set_capability compress 选项(在 9.1 中已移除)

请使用 multifd-compression 替代。

主机架构

32 位 Windows 主机上的系统仿真(在 9.0 中已移除)

Windows 11 不支持 32 位主机安装,Windows 10 也不支持新的 32 位安装,只支持升级。MSYS2 项目现在已经放弃了对 32 位 Windows 的支持。QEMU 也正在逐渐停止支持 32 位 x86 主机部署。因此,32 位 Windows 不再是 QEMU 的支持主机。由于过去 10 年来所有最新的 x86 硬件都支持 64 位 x86 扩展,应使用相应的 64 位操作系统。

客人模拟器 ISA

RISC-V ISA 特权规范版本 1.09.1(在 5.1 中移除)

RISC-V ISA 特权规范版本 1.09.1 已被移除。QEMU 支持更新版本 1.10.0 和已批准版本 1.11.0,应使用这些版本代替 1.09.1 版本。

系统仿真器 CPU

在 32 位 Arm 主机上支持 KVM 客户端(在 5.2 中已移除)

Linux 内核已经在 5.7 内核中停止支持允许 32 位 Arm 系统托管 KVM 客户端,并因此也从 QEMU 中移除。在 64 位 Arm 主机上运行 32 位客户端仍然受支持。

RISC-V ISA 特定的 CPU(在 5.1 中移除)

RISC-V CPUs 中带有 CPU 名称的 ISA 版本已被移除。这四个 CPU 是:rv32gcsu-v1.9.1、rv32gcsu-v1.10.0、rv64gcsu-v1.9.1 和 rv64gcsu-v1.10.0。相反,版本可以通过在使用 rv32 或 rv64 CPU 时指定 CPU priv_spec 选项来指定。

RISC-V 没有 MMU 的 CPU(在 5.1 中移除)

RISC-V 没有 MMU 的 CPU 已被移除。两个 CPU:rv32imacu-nommu 和 rv64imacu-nommu 不能再使用。取而代之的是,在使用 rv32 或 rv64 CPU 时,可以通过 CPU mmu 选项指定 MMU 状态。

服务器类 POWER CPUs 的 compat 属性(在 6.0 中已移除)

应使用 pseries 机器类型的 max-cpu-compat 属性。

moxie CPU(在 6.1 中移除)

在 QEMU 中没有人在使用这个 CPU 仿真,并且没有可用的测试镜像来确保代码仍然有效,因此已经被移除而没有替代。

lm32 CPU(在 6.1 中移除)

这种架构的唯一公共用户是已经停止运行多年的 milkymist 项目;从未有过上游 Linux 端口。已移除且没有替代。

unicore32 CPU(在 6.1 中移除)

该 CPU 的支持已从上游 Linux 内核中移除,并且没有可用的上游工具链来构建二进制文件。已移除且没有替代。

x86 Icelake-Client CPU(在 7.1 中移除)

从来没有 Icelake Client CPU,那是错误的和虚构的。请使用 Icelake-Server 代替。

Nios II CPU(在 9.1 中移除)

QEMU Nios II 架构已被遗弃;英特尔已经终止了 Nios II 处理器 IP(请参阅英特尔终止通知)。

系统加速器

用户空间本地 APIC 与 KVM(x86,在 8.0 中已移除)

-M kernel-irqchip=off 如果 CPU 型号包含本地 APIC,则无法在 KVM 上使用。支持 split 设置,当 CPU 没有本地 APIC 时也支持使用 -M kernel-irqchip=off 。

HAXM( -accel hax )(在 8.2 中已移除)

HAXM 项目已经被弃用(请参阅 https://github.com/intel/haxm#status)。请改用“whpx”(在 Windows 上)或“hvf”(在 macOS 上)。

MIPS“陷阱和模拟”KVM 支持(在 8.0 中移除)

MIPS“陷阱和模拟”KVM 主机和客户端支持已于 2021 年从 Linux 中移除,并且 QEMU 也不再支持。

系统仿真机器

s390-virtio (在 2.6 中删除)

使用 s390-ccw-virtio 机器代替。

m68k dummy 机器(在 2.9 中移除)

使用 none 机器与 loader 设备替代。

xlnx-ep108 (在 3.0 中删除)

EP108 是一个早期的开发板,现在不再使用。请改用 xlnx-zcu102 机器。

spike_v1.9.1spike_v1.10 (在 5.1 中移除)

特定版本的 Spike 机器已被移除,取而代之的是通用 spike 机器。如果您需要指定旧版本的 RISC-V 规范,可以使用 -cpu rv64gcsu,priv_spec=v1.10.0 命令行参数。

MIPS r4k 平台(在 5.2 版中已移除)

这种机器类型非常古老且未维护。用户应该使用 malta 机器类型。

MIPS fulong2e 机器别名(在 6.0 中已移除)

这台机器已经更名为 fuloong2e

pc-0.10pc-i440fx-1.7 (在 4.0 到 8.2 版本中已移除)

这些机器类型非常古老,很可能无法再用于从旧的 QEMU 版本进行实时迁移。请改用更新的机器类型。

树莓派 raspi2raspi3 机器(在 6.2 版本中移除)

树莓派机器有各种型号(A、A+、B、B+)。为了能够区分 QEMU 正在实现的是哪个型号,raspi2raspi3 机器已被重命名为 raspi2braspi3b

Aspeed swift-bmc 机器(在 7.0 中移除)

这台机器被移除是因为它没有被使用。替代的基于 AST2500 的 OpenPOWER 机器是 witherspoon-bmcromulus-bmc

ppc taihu 机器(已在 7.2 中移除)

这台机器被移除,因为它部分被模拟,并且 405 台机器非常相似。请使用 ref405ep 机器代替。

Nios II 10m50-ghrdnios2-generic-nommu 机器(在 9.1 中移除)

Nios II 架构已被孤立。

Linux 用户模式 CPU

tilegx CPU(在 6.0 中移除)

已删除 tilegx 客户 CPU 支持,且没有替代品。它仅在 linux-user 模式下实现,但该 CPU 的支持已于 2018 年从上游 Linux 内核中移除,并且也已从 glibc 中删除,因此没有新的 Linux 开发使用该架构。要运行旧的二进制文件,您可以使用较旧版本的 QEMU。

ppc64abi32 CPU(在 7.0 中移除)

ppc64abi32 架构存在许多问题,经常导致 CI 测试失败,并被怀疑存在严重问题。因此,维护人员强烈怀疑没有人实际使用它。

nios2 CPU(在 9.1 中移除)

QEMU Nios II 架构已被遗弃;英特尔已经终止了 Nios II 处理器 IP(请参阅英特尔终止通知)。

TCG 内省特性

TCG trace-events(自 6.2 起)

添加新的 TCG 跟踪点的能力已经被废弃,因为这一功能可以通过 TCG 插件复制。如果任何用户目前正在使用此功能并需要将其转换为使用 TCG 插件的帮助,请联系 qemu-devel 邮件列表。

系统仿真器设备

spapr-pci-vfio-host-bridge(在 2.12 中移除)

spapr-pci-vfio-host-bridge 设备类型已被 spapr-pci-host-bridge 设备类型取代。

ivshmem(在 4.0 中移除)

已被 ivshmem-plainivshmem-doorbell 取代。

ide-drive(在 6.0 中移除)

ide-drive 设备已被移除。用户应根据需要使用 ide-hdide-cd 以获得 IDE 硬盘或 CD-ROM。

scsi-disk(在 6.0 中移除)

scsi-disk 设备已被移除。用户应根据需要使用 scsi-hdscsi-cd 以获得 SCSI 硬盘或 CD-ROM。

sga(在 8.0 中移除)

sga 设备为 x86 目标加载了一个选项 ROM,使 SeaBIOS 可以将消息发送到串行控制台。从 SeaBIOS 1.11.0 开始,包含了对该功能的原生支持,因此选项 ROM 的使用已被淘汰。可以通过使用 -machine graphics=off 激活原生的 SeaBIOS 支持。

pvrdma 和 RDMA 子系统(在 9.1 中移除)

pvrdma 设备和整个 RDMA 子系统已被移除。

相关二进制文件

qemu-nbd --partition(在 5.0 中移除)

qemu-nbd --partition $digit 代码(也拼写为 -P)只能处理 MBR 分区,并且从未正确处理超过分区 5 的逻辑分区。仍然可以通过使用 --image-opts 选项并结合 raw 块设备的 offsetsize 参数来导出分区。例如,如果分区 1 长度为 100MiB,起始位置为 1MiB,则旧命令:

qemu-nbd -t -P 1 -f qcow2 file.qcow2

可以重写为:

qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.file.driver=file,file.file.filename=file.qcow2

qemu-img convert -n -o(在 5.1 中移除)

所有在 -o 中指定的选项都是镜像创建选项,因此它们现在在使用 -n 跳过镜像创建时会被拒绝。

qemu-img create -b bad file $size(在 5.1 中移除)

在使用无法打开的后备文件创建镜像时,qemu-img create 曾在提供明确的大小时发出警告但继续创建镜像。然而,由于 -u 选项的存在,更安全的做法是强制要求在不使用 -u 时,任何打开后备镜像的失败(包括后备文件缺失或格式不正确)都被视为错误。

qemu-img amend to adjust backing file(在 6.1 中移除)

使用 qemu-img amend 修改 qcow2 后备镜像的名称或格式从未完全记录或测试,并且干扰了需要访问原始后备镜像的其他修订操作(例如在转换为 v2 镜像时决定是否可以保留 v3 零集群未分配)。任何对后备链的更改应通过 qemu-img rebase -u 在修订前后进行。

qemu-img backing file without format(在 6.1 中移除)

使用 qemu-img createqemu-img rebaseqemu-img convert 创建或修改依赖于后备文件的镜像,现在要求提供明确的后备格式。这是为了安全性:如果 QEMU 探测到的格式与你所认为的不一致,呈现给客机的数据将会损坏;同样,如果未来探测到的基于客机写入的非原始镜像呈现给客机,将可能造成潜在的安全漏洞。

为避免创建不安全的后备链,必须传递 -o backing_fmt=(或在创建期间使用简写 -F)来指定预期的后备格式。可以使用 qemu-img rebase -u 追溯添加后备格式到现有镜像。然而,需注意盲目使用 qemu-img info 探测不受信任的后备镜像格式时,决定将何种格式添加到现有镜像中,已经存在潜在的安全风险。

块设备

VXHS 后端(在 5.1 中移除)

自 v2.12.0 以来,VXHS 代码未能编译。它在 5.1 版本中被移除。

sheepdog 驱动程序(在 6.0 中移除)

相应的上游服务器项目不再维护。建议用户切换到其他分布式块设备驱动程序,如 RBD。

工具

virtiofsd(在 8.0 中移除)

有一个较新的 Rust 实现的 virtiofsd,可在 https://gitlab.com/virtio-fs/virtiofsd 获取;该实现已经稳定了一段时间,并被广泛使用。其命令行和功能集与已移除的 C 实现非常接近。


© Copyright 2024, The QEMU Project Developers. This documentation is for QEMU version 9.0.50.

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jelin大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值