Skip to content

常见问题 FAQ

安装与环境

我的手机能用 DroidVM 吗?

需要满足三个条件:Android 13+已 Root开启了硬件虚拟化的 ARM64 设备

芯片方面三种平台都支持:高通(骁龙 8 Gen 3 或更新,Gunyah)、联发科(天玑 9000 或更新,GenieZone)、其它 ARM64(EL2 + KVM)。最直接的判断办法:看 /dev/gunyah/dev/gzvm/dev/kvm 是否存在其中一个。详见 环境要求

提示没有虚拟化设备 / 检测不到 /dev/gunyah

说明设备未启用硬件虚拟化或芯片不支持。可在 Root 终端执行 ls -l /dev/gunyah /dev/kvm /dev/gzvm 确认。若都不存在,只能尝试 软件模拟(soft) 后端,但性能很差。

Root 授权失败

检查 DroidVM 是否在 Magisk / KernelSU / APatch 的授权列表中,并选择「永久允许」。


虚拟机

该用 CrosVM 还是 QEMU?

默认推荐 CrosVM,性能与集成度更好。需要自定义 UEFI 固件、或 CrosVM 不兼容的特殊设备时再考虑 QEMU。详见 后端兼容性

虚拟机启动失败怎么办?

  1. 查看 运行日志 定位错误
  2. 确认引导方式正确(多数发行版镜像用 UEFI
  3. 确认磁盘已正确挂载、内存 / CPU 分配合理
  4. 若用了压缩 qcow2,先对磁盘执行「优化

内存 / CPU 应该分配多少?

最小建议 2048 MB 内存 + 2 CPU。图形桌面建议 4096 MB 起。注意不要超过设备物理内存的安全范围,以免系统不稳定。

怎么优雅关机?

优先使用详情页的 电源键(触发 ACPI 关机),而非直接「停止」(相当于强制断电)。详见 管理与控制虚拟机


启动与运行报错排查

以下排查项整理自 官方 Wiki · 常见问题。遇到具体报错时,请先在 运行日志终端控制台 中查找对应关键字。

Linux 启动卡死,日志出现 host access to lent memory region at 0xXXX

这是 保护模式(Protected VM) 下系统缺少 SWIOTLB 支持导致的。保护模式要求内核启用 Restrict DMA Pool,而部分内核缺失该功能。

解决方法

  • 更换支持的内核,或重新编译内核启用相关配置
  • 也可直接使用 DroidVM 内置的内核
  • 关键内核配置项:CONFIG_DMA_RESTRICT_POOL

参考:问题:虚拟机的系统不支持 SWIOTLB Restrict DMA Pool

启动中途退出,日志出现 page fault ... attempt: -12 / Out of memory (os error 12)

这是 大页内存(HugePage)已耗尽 导致的。

解决方法:安装并配置 预分配大页模块gh-hugepage-reserve)。

谨慎使用大页模块

  • 少数机型可能因此引发内核崩溃甚至变砖,请谨慎使用
  • 该模块会预留内存(默认约 2 GiB),不使用时请禁用并停止模块 以释放内存

参考:问题:虚拟机运行时出现内存不足错误

骁龙 8 Gen 3(SM8650)无法启动

8 Gen 3 由于内核中 Gunyah 内存分配的问题,通常无法正常启动(小概率可成功)。骁龙 8 Elite 及更新的芯片重构了 Gunyah 代码,不受此问题影响。

可能的解决方法:若你能自行编译内核,可参考以下补丁尝试修复:

参考:问题:Gunyah 资源管理器拒绝启动虚拟机


Windows 虚拟机

Windows 系统无法输入(键盘 / 鼠标无响应)

需要使用修改过、支持 Protected VM 的 VirtIO 驱动。该驱动尚未公开发布,可加入交流群下载(QQ 群:1098335601)。

启动 Windows 出现 Press any key to boot from CD or DVD

这是提示从光盘启动,按键盘上任意键 即可继续从安装盘引导。


显示

VNC 太卡 / 想要更流畅的画面

启用 原生显示(需 GPU + Virtio-GPU + GfxStream),性能明显优于 VNC。详见 图形显示

软键盘弹不出来

在显示界面的悬浮菜单中点击「键盘」按钮手动唤起。

怎么用电脑连接虚拟机画面?

在 VNC 显示界面顶栏菜单选择 查看 URL,复制 vnc:// 地址与密码,用电脑端 VNC 客户端连接。

想接大屏当电脑用

使用 外接屏投屏:外接显示器 + 蓝牙/USB 键鼠,手机作触控板。


磁盘

qcow2 和 raw 怎么选?

  • qcow2:支持快照、压缩、增量镜像,功能全,推荐
  • raw:性能最佳,但占满全部空间且无快照

想从一个镜像派生多个虚拟机

使用 增量镜像(backing image):以基础镜像为底层创建差分盘,各虚拟机只保存自己的改动。详见 磁盘管理

忘记虚拟机系统密码了

使用 Linux Agent 离线修改密码,无需启动系统即可重置。

磁盘怎么扩容?

在磁盘操作中选 调整大小(resize),然后在虚拟机内用 growpart / resize2fs 等工具扩展分区与文件系统。


网络

虚拟机上不了网

  1. 确认在虚拟机网卡配置中选择了一个网络
  2. 网络模式建议用 L3 三层路由 并启用 IPv4 SNAT
  3. 检查虚拟机内是否通过 DHCP 正确获取了 IP

端口转发不生效

确认所属网络启用了 SNAT;IPv6 端口转发还需使用 gVisor 网桥。格式见 网络管理

编辑网络时保存按钮是灰的

正在运行的网络不可编辑,请先停止使用该网络的虚拟机。


其它

共享文件夹怎么用?

虚拟机存储标签 添加共享目录并设置标签,在虚拟机内用 mount -t virtiofs <标签> /mnt/share(或 9p)挂载。

怎么把虚拟机搬到另一台手机?

长按虚拟机选 导出为包,把生成的 .vmpkg 传到新设备,在首页点 导入虚拟机 即可。这个包含磁盘,所以文件比较大。详见 导出与导入虚拟机包

如果只想备份设置、不需要磁盘,用 设置页的「导出配置」,文件小得多。

磁盘转换太慢

应用设置 里把 CPU 亲和性 设为「仅大核」。反过来,如果嫌手机发烫卡顿,可以限制到小核。

在哪里反馈 Bug?

前往 GitHub Issues 提交,并附上 运行日志

升级会丢失数据吗?

不会。直接安装新版 APK 覆盖即可,虚拟机配置与磁盘镜像都会保留。

基于 GNU GPL v3.0 许可证发布