Docs / Guests
文档 / 系统
Guest notes
系统说明
What each guest supports, and the specific things it does differently. Most of these you never have to think about -- AnyVM already applies them -- but when something behaves oddly, the reason is usually on this page.
每个系统支持什么,以及它有哪些跟别人不一样的地方。这些绝大多数你都不用操心, AnyVM 已经替你处理了 —— 但真出现什么奇怪现象时,原因通常就在这一页上。
FreeBSD
The broadest architecture coverage of any guest here, and the one to reach
for first if you just want a BSD to test on. UEFI boot is enabled
implicitly, so --uefi is unnecessary.
这里架构覆盖最广的一个系统。只是想随便找个 BSD 测东西的话,先用它。UEFI
启动是隐式打开的,不用再写 --uefi。
Desktop images ship for XFCE, GNOME and KDE:
--release 15.1-xfce, 15.1-gnome,
15.1-kde6.
桌面镜像有 XFCE、GNOME 和 KDE 三种:--release 15.1-xfce、
15.1-gnome、15.1-kde6。
OpenBSD
Seven desktop environments are published --
7.9-xfce, -gnome, -kde6,
-mate, -lxqt, -lumina,
-enlightenment -- more than any other guest.
一共发布了七种桌面环境 —— 7.9-xfce、-gnome、
-kde6、-mate、-lxqt、-lumina、
-enlightenment —— 比任何其他系统都多。
-
sparc64 needs patched firmware. The OpenBIOS that QEMU
bundles crashes every OpenBSD 7.3-and-later sparc64 kernel on cold boot.
AnyVM downloads a rebuilt OpenBIOS and passes it via
-biosautomatically; the builder compiles it from source and publishes it as a release asset. sparc64 is console-only, no graphics. sparc64 需要打过补丁的固件。QEMU 自带的 OpenBIOS 会让 7.3 及以后的每一个 OpenBSD sparc64 内核在冷启动时崩溃。AnyVM 会自动下载 重新编译过的 OpenBIOS,通过-bios传进去;这个固件由 builder 从 源码编译并作为 release 附件发布。sparc64 只有控制台,没有图形界面。 -
aarch64 boots slowly. The boot timeout defaults to 1200
seconds instead of the usual 600, because OpenBSD arm64 takes that long
under emulation. An explicit
--boot-timeout-secalways wins. aarch64 启动很慢。启动超时默认给到 1200 秒而不是 通常的 600 秒,因为 OpenBSD arm64 在模拟下确实要这么久。你自己写的--boot-timeout-sec永远优先。
NetBSD
-
sparc64 syncs with
scp, notrsync. The QEMU sun4u machine boots only off the CMD646 PCI IDE controller, whose TCG emulation loses interrupts under sustained concurrent network and disk DMA. A livesshfsornfsmount drives exactly that pattern and wedges the guest, and the base image ships norsync. A one-shotscpavoids both. Override with--syncif you know what you are doing. sparc64 用scp同步,不用rsync。 QEMU 的 sun4u 机器只能从 CMD646 这块 PCI IDE 控制器启动,而它的 TCG 模拟在 网络和磁盘 DMA 持续并发时会丢中断。sshfs或nfs的实时挂载正好制造这种压力,会把虚拟机卡死;而基础镜像里又没有rsync。一次性的scp两个问题都避开了。你确实清楚 自己在做什么的话,可以用--sync覆盖。 - sparc64 is console-only here too.这里的 sparc64 同样只有控制台。
DragonFlyBSD
The guest most sensitive to the host PMU. Exposing hardware performance
counters through -cpu host can trigger intermittent
general-protection faults in wrmsr during early boot, which
showed up as random boot failures across CI runners with different Intel
generations. The PMU is therefore off by default for every guest; pass
--enable-pmu only if you need perf-style
profiling inside the VM.
对宿主 PMU 最敏感的一个系统。通过 -cpu host 把硬件性能计数器暴露
进去,可能让早期启动阶段的 wrmsr 偶发触发一般保护错误 —— 表现出来
就是在不同代 Intel 的 CI 机器上随机启动失败。所以 PMU 对所有系统默认关闭;
只有你确实要在虚拟机里做 perf 那类性能分析时,才加
--enable-pmu。
MidnightBSD
A FreeBSD derivative with the mport package system. Nothing
special is needed to run it.
FreeBSD 的衍生版,用自己的 mport 包管理系统。跑它不需要任何特殊处理。
GhostBSD
A desktop-first FreeBSD derivative -- MATE is the default image, with
26.1-xfce and 26.1-gershwin also published.
以桌面为先的 FreeBSD 衍生版 —— 默认镜像是 MATE,另外还发布了
26.1-xfce 和 26.1-gershwin。
Skips WHPX on Windows hosts. Its boot aborts under the
Windows Hypervisor Platform with failed to decode instruction f
10, so AnyVM runs it under TCG there rather than letting it fail.
Slower, but it boots.
在 Windows 宿主上跳过 WHPX。它在 Windows Hypervisor
Platform 下启动会中止,报 failed to decode instruction f 10,所以
AnyVM 在那儿直接让它走 TCG,而不是眼看着它失败。慢一些,但能起来。
NextBSD
FreeBSD with Mach IPC and launchd as PID 1 -- there is no
rc.d. Built from a rolling upstream tag, so the release you
get is resolved at build time.
带 Mach IPC 的 FreeBSD,PID 1 是 launchd —— 没有
rc.d。它从上游的滚动标签构建,所以你拿到的是哪个版本,在构建时才定。
Solaris
Oracle Solaris 11. A heavy guest: under TCG it needs a long boot window, which AnyVM already allows for by raising the default timeout to 1800 seconds whenever no hardware acceleration is available.
Oracle Solaris 11。比较重的一个系统:在 TCG 下启动要等很久,AnyVM 已经考虑到了 —— 只要没有硬件加速可用,默认超时就自动提到 1800 秒。
OmniOS
An illumos distribution aimed at servers and storage. Stable LTS releases
alongside the rolling bloody line, depending on what the
builder currently publishes.
面向服务器和存储的 illumos 发行版。有稳定的 LTS 版本,也有滚动的
bloody 线,具体看 builder 当前发布了哪些。
OpenIndiana
The community continuation of OpenSolaris, with a full package repository and a desktop available.
OpenSolaris 的社区续作,有完整的软件仓库,也有桌面可用。
Tribblix
A lightweight illumos distribution with its own zap package
manager and a retro window manager.
轻量级 illumos 发行版,有自己的 zap 包管理器和一个复古风窗口管理器。
Historical note. Images before v2.0.3 froze a
CPU-vendor-specific libc_hwcap variant into
/lib/libc.so.1 at build time, which crash-looped under KVM on
the other vendor's CPU. Current images ship the capability-neutral libc
that boots on both Intel and AMD and re-optimises per CPU on first boot.
Only reach for --tcg if you must run a pre-2.0.3 image on a
mismatched host.
历史遗留问题。v2.0.3 之前的镜像在构建时
把某一家 CPU 专用的 libc_hwcap 变体固化进了
/lib/libc.so.1,换到另一家的 CPU 上用 KVM 跑就会崩溃重启循环。
现在的镜像装的是不挑 CPU 特性的通用 libc,Intel 和 AMD 都能起来,首次启动时再
按当前 CPU 重新优化。只有当你非得在不匹配的宿主上跑 2.0.3 之前的镜像时,才需要
动用 --tcg。
Ubuntu
The widest spread of emulated architectures, and consequently the guest with the most QEMU-version sensitivity. Every case below is handled for you on a Linux x86_64 host: when the system QEMU is too old, AnyVM downloads and uses a pinned QEMU 10.2.3 for exactly that combination.
模拟架构铺得最开的一个系统,因此也是对 QEMU 版本最挑剔的一个。下面这些情况在 Linux x86_64 宿主上都替你处理好了:系统自带的 QEMU 太旧时,AnyVM 会下载一个固定的 QEMU 10.2.3,只用在那一种组合上。
| Architecture架构 | What it needs, and why需要什么,为什么 |
|---|---|
| aarch64 |
Defaults to -cpu cortex-a72. Under -cpu max
the distro QEMU 8.2 aborts with a regime_is_user
assertion when the 26.04 kernel uses VHE.
默认用 -cpu cortex-a72。用 -cpu max
时,26.04 的内核一旦启用 VHE,发行版自带的 QEMU 8.2 就会在
regime_is_user 断言处中止。
|
| riscv64 |
26.04 requires QEMU 9.1 or newer and selects
-cpu rva23s64 automatically -- the RVA23 userspace
baseline and the 7.0 kernel do not run on QEMU 8.2. 22.04 and 24.04
are fine on stock QEMU.
26.04 需要 QEMU 9.1 或更新,并会自动选
-cpu rva23s64 —— RVA23 的用户态基线和 7.0 内核在 QEMU 8.2
上跑不起来。22.04 和 24.04 用系统自带的 QEMU 就行。
|
| s390x |
Wants QEMU 10 or newer; the distro 8.2 intermittently freezes guest
systemd at startup, a TCG-only bug. On a real IBM Z host with
/dev/kvm, KVM is used automatically and stock QEMU is
fine.
需要 QEMU 10 或更新;发行版的 8.2 会偶发地把虚拟机里的
systemd 冻在启动阶段,这是个只在 TCG 下出现的 bug。在真正的 IBM Z 机器上
(有 /dev/kvm)会自动走 KVM,系统自带的 QEMU 就够。
|
| ppc64le | 22.04 requires QEMU 10 or newer: under the distro 8.2 pseries TCG the jammy python3.10 segfaults, so every cloud-init and apt run crashes. 24.04 and 26.04 work on stock QEMU. 22.04 需要 QEMU 10 或更新:在发行版 8.2 的 pseries TCG 下, jammy 的 python3.10 会段错误,于是每次 cloud-init 和 apt 都崩。24.04 和 26.04 用自带的 QEMU 没问题。 |
OpenEuler
The only guest with a loongarch64 image. That architecture needs the EDK2
LoongArch firmware (edk2-loongarch64-code.fd), which QEMU only
started bundling in 9.2 -- so on a Linux x86_64 host with an older system
QEMU, AnyVM fetches a pinned QEMU 10.2.3 for it. Always TCG, so expect it
to be slow.
唯一有 loongarch64 镜像的系统。这个架构需要 EDK2 的 LoongArch 固件
(edk2-loongarch64-code.fd),而 QEMU 从 9.2 才开始自带 —— 所以在
系统 QEMU 较旧的 Linux x86_64 宿主上,AnyVM 会为它取一个固定的 QEMU 10.2.3。
它始终走 TCG,所以慢是正常的。
Release names carry their own capitalisation
(24.03-LTS-SP4), but --release matches
case-insensitively, so 24.03-lts-sp4 finds it.
它的版本名自带大小写(24.03-LTS-SP4),不过 --release
匹配时不区分大小写,写 24.03-lts-sp4 也能找到。
BlissOS
Android on x86, with root SSH and the Android desktop on the VNC console --
so this is one to open in the browser rather than drive from a shell.
Releases map to Android versions: 16 (Android 13),
15 (12L), 14 (11).
跑在 x86 上的 Android,带 root 权限的 SSH,Android 桌面在 VNC 控制台上 ——
所以这个更适合用浏览器打开看,而不是从 shell 里操作。版本号对应 Android 版本:
16 是 Android 13,15 是 12L,14 是 11。
Directory sync uses scp. It is the only
backend the Android userspace supports.
目录共享走 scp。这是 Android 用户态
唯一支持的后端。
HaikuOS
The BeOS successor -- a complete graphical desktop operating system that is neither Unix nor Linux. Worth opening on the VNC console rather than treating as a headless build target.
BeOS 的继承者 —— 一个完整的图形桌面操作系统,既不是 Unix 也不是 Linux。 值得用 VNC 控制台打开看看,而不是只把它当成一个无头的构建目标。
GNU Hurd
Debian GNU/Hurd, the only guest that ships a 32-bit image as well:
--arch i386.
Debian GNU/Hurd,唯一一个同时提供 32 位镜像的系统:--arch i386。
Hurd has no virtio drivers, so it runs on emulated legacy hardware. The amd64 image needs a q35 machine with AHCI, which AnyVM selects for you.
Hurd 没有 virtio 驱动,只能跑在模拟的老式硬件上。amd64 镜像需要带 AHCI 的 q35 机型,AnyVM 会替你选好。
Plan 9
9front, the maintained Plan 9 fork. Not a Unix: there is no SSH daemon in the usual sense, and AnyVM talks to it over its own transport.
Directory sync is 9P, and Linux-host only.
--sync 9p is the default here: the host mounts the guest's
exportfs share through the Linux kernel v9fs client
(mount -t 9p, needs root or sudo). On Windows and macOS hosts
a Plan 9 guest still boots and still runs commands -- only -v
folder sync is skipped.