前言

今天帮同学用VirtualBox安装虚拟机,出现了一个问题,在新建虚拟机,选择系统类别的时候,只能选择32位的系统。经过多番查阅资料,找到了解决之道,写这篇博文也是为了给后来者一些参考。This kernel requires an X86-64 CPU,but only detected an i686 CPU.
使用平台:Windows

分析

首先声明一下,32位|64位的系统都可以安装64位的虚拟机。
VirtualBox安装64位的系统需要满足以下条件:
1. 64位的cpu
2. cpu允许硬件虚拟化

先来看第一个条件,64位的CPU,这个嘛,现在的笔记本一般都是64位的了,所以不用担心,除非是好几年之间的电脑。如果你不清楚,可以打开命令行,输入systeminfo,在输出的信息中找到CPU这一行,如果是X86_64的,就是64位CPU;或者,也可以下载个CPU-Z软件查看(PS:这个软件很好用)。第一条分析完毕。

然后是第二条,是否开启CPU硬件虚拟化1,这个嘛,各大厂商的情况不大相同,有的电脑默认开启了(比如,我的HP),有的没有,所以需要自行开启,开启方法:开机时按某个键进入BIOS设置界面2。
然后,setup==>security==>cpu virtualization,将cpu virtualization这一项由Disable设置为Enable。保存,然后重启电脑,硬件虚拟化就开启成功了。

然后,按理说,经过这两步处理,VirtualBox中应该会出现64bit的选项了,然而,还是只有32位的选项,看来问题还真不是出在这里。

后面,又去查资料,终于发现了问题之所在,原来是因为Windows8.1自带的Hyper-V!我这个同学使用的是Win8.1系统,系统自带Hyper-V,这是微软自家的虚拟机软件。这么来说吧,VirtualBox和workstation与Hyper-v是可以共存的,但是,不是完美共存,Hyper-v是独占硬件虚拟化的,Windows 8.1下安装了Hyper-v后VirtualBox和VMware workstation是不能安装64位的操作系统的。这个问只会在Windows8.1/8上出现,Win7是不会出现这个问题的,因为Win7不自带Hyper-V!→_→

那么,我们就只要禁用Hyper-V就行了。禁用的步骤:

1. Ctrl+Shift+Esc,打开任务管理器:

这里写图片描述


  1. 找到Hyper-V开头的8个服务,将Hyper-V虚拟机管理设置为手动开启,同时关闭该服务:

  2. 这里写图片描述


  3. 这里写图片描述


  4. 这里写图片描述

  5. 关闭Hyper-V之后,大功告成!

在将Hyper-V禁用之后,再次打开VirtualBox新建虚拟机,果然找到了64位的选项!大功告成!::>_<::

补充说明

1. 什么是硬件虚拟化?
硬件虚拟化其实就是CPU的虚拟化技术。intel的叫VT-x,amd的叫AMD-V。支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM(Virtual Machine Monitor,虚拟机监视器)会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚 拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行 二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。

2. 如何判断是否支持硬件虚拟化呢?
Windows:
利用一个小工具 securable.exe 来帮助我们测试硬件对虚拟化技术的支持程度。我们程序运行结果中可以看到物理机支持 64 位运算,支持硬件 DEP,支持虚拟化技术。这样的结果表明我们可以放心测试 XP MODE,如果“ Hardware Virtualization ”显示的结果是“ Locked OFF ”,则表明 CPU 支持虚拟化技术,但主板的 BIOS 却禁止了对虚拟化的支持,这种情况我们就需要更改 BIOS 设定或升级 BIOS。如果三项检测结果中有一项显示了“NO”,那就表明您的硬件不能满足 XP MODE 的部署条件,就不用继续测试了。
Linux:
在Linux下,使用命令:grep -E ‘(vmx|svm)’ /proc/cpuinfo。如果有vmx或svm内容输出,则说明CPU支持虚拟化技术。

3. 安装还是出错,为什么呢?
新建虚拟电脑时,要安装64位的Ubuntu可是没有对应选择64位,更改设置即可。这里还要注意一点:要打开VirtualBox的vt-x/amd-v设置,这个其实会自动打开。重新安装,大功告成了!
还有一点,在上面所有操作都昨做完之后,最好重启一次,以免再次出错!

 



  1. 重启进BIOS,找到virtualization的一项,我的BIOS中在Advanced-cpu setup-virtualization,现为Disabled状态,改为Enable,重启进入系统。重新检测,发现已经支持硬件虚拟化。 ↩

  2. 关于如何进入BIOS,不同型号的电脑方式不尽相同,但一般都是在按开机键之后,狂按某个键(我的hp pavilion notebook好像是F5),然后就进入了BIOS,具体的请自行Google自己对应型号的进入BIOS方法。 ↩