升级Mac到12.0.1 Monterey后VirtualBox无法运行,host-only适配器报错
问题成因
- macOS 12.0.1 Monterey升级了内核扩展(kext)安全校验机制,VirtualBox的虚拟网络功能依赖
VBoxNetAdp.kext、VBoxNetFlt.kext等内核扩展,未获得系统授权的情况下无法正常加载,因此系统中不存在/dev/vboxnetctl设备文件,创建host-only适配器时触发报错。 - 之前安装VirtualBox时仅主程序部署成功,内核扩展组件因为安全策略拦截安装失败,因此会出现安装报错但应用图标正常显示的情况。
- 安全与隐私设置中没有出现Oracle权限授权选项,是因为内核扩展的授权请求有10分钟左右的有效期,超时后会自动消失,不会常驻设置页面。
解决方案
- 完全卸载残留的VirtualBox组件:
执行官方卸载脚本清除残留配置:
sudo /Library/Application\ Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh uninstall
将应用程序文件夹中的VirtualBox拖入废纸篓并清空,重启电脑。
2. 手动授权VirtualBox内核扩展签名:
重启电脑时按住Command + R进入恢复模式,在顶部菜单栏选择「实用工具」→「终端」,执行以下命令添加Oracle开发者ID的kext白名单:
spctl kext-consent add VB5E2TV963
操作完成后正常重启进入系统。
3. 重新安装适配版本的VirtualBox:
下载VirtualBox 6.1.30及以上正式版本(该版本开始官方兼容Monterey),安装过程中如果弹出安全授权提示,立即点击允许;如果没有弹窗,立刻打开「系统设置」→「安全与隐私」→「通用」,点击右下角的「允许」按钮(该选项仅在安装完成后10分钟内可见)。
4. 验证内核扩展加载状态:
安装完成后再次重启电脑,打开终端执行以下命令:
kextstat | grep -i vbox
如果输出包含VBoxNetAdp、VBoxNetFlt等条目,说明内核扩展加载成功,此时执行ls /dev/vboxnetctl能正常输出文件路径即可。
5. 修复host-only网络配置:
打开VirtualBox主程序,进入「主机网络管理器」,手动创建新的host-only网卡,IPv4地址设置为192.168.56.1/24并开启DHCP服务,保存配置后再执行vagrant up启动虚拟机即可。
内容的提问来源于stack exchange,提问作者Maartje
相关产品推荐
相关产品推荐

