Ubuntu 20.04执行vagrant up报AMD-V不可用(VERR_SVM_NO_SVM)错误如何解决
报错根因
VERR_SVM_NO_SVM错误的本质是VirtualBox无法调用CPU的AMD-V(AMD硬件虚拟化技术,又称SVM)能力,你的AMD EPYC 7502P本身原生支持该功能,问题出在BIOS或宿主机系统配置层面。
解决方案
步骤1:确认BIOS开启SVM功能
重启服务器进入BIOS/UEFI设置界面,找到名为SVM Mode、AMD-V或AMD Virtualization Technology的选项,调整为开启状态后保存配置重启服务器。部分服务器型号需要同时开启IOMMU选项才能正常使用虚拟化功能,建议同步开启。步骤2:验证系统已识别虚拟化能力
执行以下命令校验CPU是否暴露了虚拟化标识:egrep -c '(svm|vmx)' /proc/cpuinfo
返回结果大于0则说明BIOS配置已生效,系统已识别到硬件虚拟化能力;如果返回0,需要重新检查BIOS配置。步骤3:释放KVM对虚拟化资源的占用
Ubuntu 20.04 Server默认会加载KVM内核模块,KVM会独占硬件虚拟化资源导致VirtualBox无法调用,可按以下操作处理:- 临时卸载KVM模块验证问题:
执行完成后重新运行sudo modprobe -r kvm_amd sudo modprobe -r kvmvagrant up测试是否能正常启动虚拟机。
2. 若临时卸载后问题解决,可配置永久禁用KVM模块避免开机自动加载:
新建/编辑/etc/modprobe.d/blacklist-kvm.conf文件,写入以下内容:
保存后执行blacklist kvm blacklist kvm_amdsudo update-initramfs -u更新内核引导文件,重启服务器后配置永久生效。步骤4:排查Vagrant配置错误
检查你的Vagrantfile中是否存在关闭硬件虚拟化的配置,确认没有类似v.customize ["modifyvm", :id, "--hwvirtex", "off"]的参数,该参数会强制VirtualBox不使用硬件虚拟化能力,触发报错。
内容的提问来源于stack exchange,提问作者Aref
相关产品推荐
相关产品推荐

