AMD芯片主机加载考试系统虚拟化报错解决方案(KVM无法启动)

使用 AMD 芯片第一次打开虚拟机并启动 KVM 虚拟机一般会遇到如下报错

通过lscpu命令可以看出自己使用的是 AMD 芯片

[root@foundation0 ~]# lscpu |grep 'Model name'
Model name:          AMD Ryzen 7 4800U with Radeon Graphics

使用 su - 命令切换到超级管理员 root用户,并执行 modinfo命令:

⚠️ 注意:使用 root 管理系统很危险,请谨慎操作;并且再您执行完所有操作之后,退回只普通用户 kiosk 进行管理 kvm 虚拟机。

[root@foundation0 ~]# modinfo kvm -p
nx_huge_pages: (bool)
nx_huge_pages_recovery_ratio: (uint)
ignore_msrs: (bool)
report_ignored_msrs: (bool)
min_timer_period_us: (uint)
kvmclock_periodic_sync: (bool)
tsc_tolerance_ppm: (uint)
lapic_timer_advance_ns: (int)
vector_hashing: (bool)
enable_vmware_backdoor: (bool)
force_emulation_prefix: (bool)
pi_inject_timer: (bint)
halt_poll_ns: (uint)
halt_poll_ns_grow: (uint)
halt_poll_ns_grow_start: (uint)
halt_poll_ns_shrink: (uint)

接着使用 vim编辑 kvm.conf文件,并按照以下示例进行修改:

[root@foundation0 ~]# cat /etc/modprobe.d/kvm.conf
# Setting modprobe kvm_intel/kvm_amd nested = 1
# only enables Nested Virtualization until the next reboot or
# module reload. Uncomment the option applicable
# to your system below to enable the feature permanently.
#
# User changes in this file are preserved across upgrades.
#
# For Intel
#options kvm_intel nested=1
#
# For AMD
#options kvm_amd nested=1
options kvm_amd nested=1
options kvm ignore_msrs=1

重启您的虚拟主机

[root@foundation0 ~]# reboot

重启完成后查看以下内容

[root@foundation0 ~]# cat /sys/module/kvm/parameters/ignore_msrs
Y		//如果为Y表示大功告成

但是也有少数例外,如果看到的依旧是 N,那么您只能每次系统开机后,使用 root用户执行以下命令了

[root@foundation0 ~]# echo Y > /sys/module/kvm/parameters/ignore_msrs

最后,您就可以正常启动 KVM 虚拟机了

posted @ 2022-08-30 10:20  姜翎  阅读(575)  评论(2编辑  收藏  举报