如何从 BIOS 或其他方式启用虚拟化 AMD-V Aspire 一台 AO725

如何从 BIOS 或其他方式启用虚拟化 AMD-V Aspire 一台 AO725

我尝试使用 virtualbox 虚拟化 64 位系统,但得到的错误是:

La aceleración VT-x/AMD-V ha sido habilitada, pero no es funcional. Su sistema invitado de 64-bit fallára al detectar una CPU de 64-bit y no podrá arrancar.
Compruebe que VT-x/AMD-V están habilitadas en la BIOS de su computadora anfitrión.

对于不懂西班牙语的人,谷歌翻译给出:

VT-x/AMD-V acceleration has been enabled but is not functional. 
Its system of 64-bit guest will fail to detect a 64-bit CPU and will not boot.
Check VT-x/AMD-V are enabled in the BIOS of your host computer.

我已经使用以下命令检查了 AMD V CPU 虚拟化扩展:

grep --color svm /proc/cpuinfo

输出是:

flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
         pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb
         rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid perfmperf
         pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm extapic
         cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt arat cpb
         hw_pstate npt lbrv svm_lock nrip_save pausefilter
flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
         pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb
         rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid
         aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm
         extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch ibs skinit wdt
         arat cpb hw_pstate npt lbrv svm_lock nrip_save pausefilter

运行命令lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            20
Model:                 2
Stepping:              0
CPU MHz:               800.000
BogoMIPS:              1996.36
Virtualization:        AMD-V
L1d cache:             32K
L1i cache:             32K
L2 cache:              512K
NUMA node0 CPU(s):     0,1

更新

运行命令:

grep -o "^flags\s*:.*\ssvm\(\s\|$\)" /proc/cpuinfo

输出是:

flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm 
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid aperfmperf pni monitor ssse3 cx16 popcnt lahf_lm cmp_legacy svm 

所以,它可能是从BIOS或其他地方修复的。

如何纠正错误?有可能吗?

答案1

的输出lscpu表明 CPU 能够执行的操作,不一定是在 BIOS 中启用的,或者您进入 BIOS 并可以配置它。

BIOS手册机器上没有任何迹象表明您可以设置此项,但通常浏览 BIOS 中有限数量的 CPU 选项会告诉您是否可以。

如果您找不到它,您可能必须去 Acer 提供的支持 UEFI 的 BIOS 升级,以启用(在 UEFI 模式下)AMD-V。这很可能需要重新安装主机系统。

另一种方法是尝试从 ACER 网站下载 BIOS 版本 1.05 并安装 ZHGBIOS.FD,据说在“电源”->“高级 CPU 控制”下有一个设置 ZSM 的选项。

如果您之前没有进行过 BIOS 升级和/或如果这是您唯一必须上网的机器,以防出现问题,我不能推荐这两个选项中的任何一个

答案2

包括适用于 Intel 和 AMD 的程序,就好像有人使用过其中任何一个一样。grep为了完整起见,还包括一些您知道的信息svm

检查支持

检查可视化是否可用

  • Intel 检查是否vmx找到 ( VT-x)

    grep -o "^flags\s*:.*\svmx\(\s\|$\)" /proc/cpuinfo
    
  • AMD 检查是否svm找到 ( AMD-V)

    grep -o "^flags\s*:.*\ssvm\(\s\|$\)" /proc/cpuinfo
    

如果没有找到,人们很可能会倒霉。

还可以通过以下方式检查 BIOS 中的标志:dmidecode

dmidecode --type 4 | grep -i virt
VME (Virtual mode extension)        # On a specific i386

检查状态 - 需要 root 权限

读取机器/型号特定寄存器 (MSR) (MSR man msr) ,msr-tools 如果未启用(读取失败),则使用以下方式加载 msr:

modprobe msr

然后使用rdmsr, (快速入门) 读取处理器 MSR。


英特尔

对于 Intel 处理器,可以通过从处理器读取IA32_FEATURE_CONTROL(1)来检查当前状态。

IA32_FEATURE_CONTROL MSR(位于地址03AH)提供配置 VMX 和 SMX 操作的功能控制位。

执行命令:

rdmsr -f 0:0 0x3a # Read bit-field 0 (Lock-bit)
rdmsr -f 2:2 0x3a # Read bit-field 2 (Enable VMX outside SMX operation)

这些命令应该给出:

0:0 2:2
  0      ENABLED  (Not 100% sure about this one, `kvm-ok` reports VMX
                   as enabled when 0 – perhaps meant as modifiable.)
  1   1  ENABLED
  1   0  DISABLED 

位 2 启用 SMX 操作之外的 VMX。如果该位清零,则在 SMX 操作之外执行 VMXON 的尝试将导致一般保护异常。尝试在不支持 VMX 操作的逻辑处理器上设置该位会导致一般保护异常。

(1) 英特尔® 64 和 IA-32 架构软件开发人员手册卷。 2C 5-1 第 1072 页。


AMD

阅读 PDF 格式的扩展功能启用寄存器 (EFER) (2) 第 55、103 页 其中位 12 是“启用安全虚拟机”(SVME),指示是否启用硬件虚拟化。

执行命令:

rdmsr -f 12:12 0xc0000080 # If set (1), SVME is enabled.

安全虚拟机启用 (SVME) 位。位 12,读/写。启用 SVM 扩展。当该位为零时,SVM 指令会导致#UD 异常。 EFER.SVME 默认重置值为零。在来宾运行时关闭 EFER.SVME 的效果未定义;因此,VMM 应始终阻止来宾写入 EFER。可以通过设置 VM_CR.SVME_DISABLE 来禁用 SVM 扩展。

检查是否禁用会话检查VM_CR.SVME_DISABLE(2) 第 57、504 页(PDF 中为 105、552)

执行命令:

rdmsr -f 4:4 0xc0010114 # If set (1), it is disabled.

如:您必须在 BIOS 中启用。

SVMDIS — 位 4。当设置该位时,写入 EFER 会将 SVME 位视为 MBZ。当该位清零时,EFER.SVME 可以正常写入。该位不会阻止 CPUID 报告 SVM 可用。当 EFER.SVME 为 1 时设置 SVMDIS 会生成 #GP 故障,无论 VM_CR.LOCK 的当前状态如何。该位不受 SKINIT 影响。当LOCK清0时由INIT清零;否则不受影响。

(2) AMD64 架构程序员手册,第 2 卷:系统编程


键盘虚拟机

如果加载了 KVM 模块,您需要通过以下方式删除它们:

sudo modprobe -r kvm_intel
sudo modprobe -r kvm_amd 

分别针对英特尔和 AMD,因为它们与 Virtual Box 发生冲突。参考号


启用

我想对于你的具体型号@安东已经说了很多了。

正如他提到的,通过使用UEFI你很可能必须重新安装您的主机系统。升级 BIOS 还存在很多其他风险,其中包括:

  • 新的 BIOS 可能会触发硬件中的潜在错误。
  • BIOS 闪存可能会因软件损坏等原因崩溃。
  • 人们可能下载了错误的 BIOS(针对不同型号)。
  • 计算机可能会崩溃,在闪存中断电。 (又名怪异事故)。
  • N^x 个未知因素可能发挥作用。
  • ETC。

如果闪存崩溃,可能会导致您的电脑完全无法启动,并且修复起来可能会很困难。 (您无法启动并修复 BIOS。)

您应该有当前 BIOS 的备份和 USB 救援棒。

网上搜索一下,例如看这个。检查您的型号是否有“内置 BIOS 恢复例程”正如该页面上一篇文章中提到的。 (正如您所看到的,即使这样也会带来麻烦)。

是的,正如安东所提到的。如果您没有任何其他 PC 可以方便地进行网络搜索以防万一出现故障,则不推荐使用它。


如果您愿意进行黑客攻击,冒着未知后果等风险,您可以尝试使用“非官方 BIOS 版本”。该线程位于BOIS-Mods有软件和一般性讨论。会彻底阅读整个线程并询问是否有任何问题。

根据您的兴趣、时间和知识水平,您也可以尝试自己破解它;)

支持向量机启用

相关内容