You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启Hyper-V的Windows主机下,如何让VirtualBox中的Ubuntu虚拟机正常使用/dev/kvm进行嵌套虚拟化

开启Hyper-V的Windows主机下,如何让VirtualBox中的Ubuntu虚拟机正常使用/dev/kvm进行嵌套虚拟化

首先得给你明确一个核心点:Hyper-V和VirtualBox的原生虚拟化模式是互斥的。当你在Windows主机启用Hyper-V(包括Windows Hypervisor Platform)后,系统会优先加载Hyper-V的底层hypervisor,它会独占CPU的虚拟化扩展(比如Intel VT-x/AMD-V),这就导致VirtualBox没法再把这些虚拟化能力传递给内部的Ubuntu虚拟机,所以你之前能看到的/dev/kvm就消失了。

针对你不想迁移500GB虚拟机的情况,给你两个可行的解决思路:

1. 临时切换Hyper-V状态,按需使用

这是最直接的办法,毕竟你需要Hyper-V是为了GPU直通的VM,而VirtualBox的VM需要KVM嵌套虚拟化,两者没法同时运行:

  • 当你需要使用VirtualBox里的Ubuntu虚拟机并启用KVM时,临时关闭Hyper-V和Windows Hypervisor Platform:
    1. 打开Windows的「控制面板」→「程序和功能」→「启用或关闭Windows功能」
    2. 取消勾选「Hyper-V」和「Windows Hypervisor Platform」,点击确定后重启电脑
    3. 重启后VirtualBox会恢复原生虚拟化模式,Ubuntu里的/dev/kvm就会回来,嵌套虚拟化也能正常工作
  • 当你需要使用Hyper-V的GPU直通VM时,再重新勾选这两个选项并重启,就能切换回Hyper-V环境

2. 尝试将VirtualBox虚拟机磁盘转换为Hyper-V兼容格式(无需完整迁移)

虽然你不想手动迁移,但可以试试用工具把VirtualBox的VDI磁盘转换为Hyper-V支持的VHDX格式,这样不用重新配置虚拟机的系统环境:

  • 首先关闭VirtualBox的Ubuntu虚拟机
  • 打开命令提示符(以管理员身份),切换到VirtualBox的安装目录(比如cd C:\Program Files\Oracle\VirtualBox)
  • 执行转换命令:VBoxManage clonehd "你的虚拟机磁盘路径.vdi" "转换后的路径.vhdx" --format VHDX
  • 然后在Hyper-V管理器里新建一个虚拟机,选择刚才转换好的VHDX磁盘作为系统盘,再配置嵌套虚拟化和GPU直通
  • 这个方法相当于把磁盘格式转一下,不用重新安装系统,能节省不少时间,而且Hyper-V本身也支持嵌套虚拟化,你可以在Hyper-V的Ubuntu虚拟机里继续用KVM

另外要提醒你:如果坚持同时开着Hyper-V用VirtualBox,VirtualBox会自动切换到Hyper-V后端模式,这种情况下是没法在Ubuntu里启用KVM的,因为Hyper-V的嵌套虚拟化只支持在Hyper-V虚拟机里再开Hyper-V或VMware,不兼容KVM。

备注:内容来源于stack exchange,提问作者anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:59:41