win8.1中Hyper-V虚拟机无法初始化
最近微软发布了Visual Studio 2015 Preview 版本,网络上对于跨平台支持是各种赞美。衣服自己洗就琢磨着要不也先下载用用看。恰好有看关于Hyper-V的文章,就顺便用这个了,VMWare 的东西就懒得下载了,于是就走上了不归路。
当初就是因为我的Y450的CPU不支持虚拟化,用不了Hyper-V,所以才换用现在的Y510P。
新建了win7的虚拟机,一路畅通,然后启动虚拟机,直接就报错,提示虚拟机无法初始化。我记得当初刚装完系统时,Hyper-V是可以用的,不知道是不是我中间做系统优化修改了什么,导致现在出错。而且也没有更具体的信息可以参考。
网上是各种搜索,有很多人也和我是一样的问题,但几乎是千篇一律的答复,请检查BIOS是否开启了虚拟化操作等等。我确认我的i7的CPU是支持的,不甘心,只好打开装*外挂,搜索到了更详细的信息,而且有解决方法,但是他们是Windows Server 2008,对此的解决方案就是升级到 SP1。微软也给出了补丁,估计这个补丁最后也收录在 SP1里了。在微软的文档里提到这个问题,出错后会在事件查看器里Microsoft\Windows\Hyper-V Worker 下生成事件ID为3040的错误信息。
但是,我的机器是win8.1,不是Windows Server 2008,抱着试一试的想法,把微软的那个补丁下载回来安装,提示签名不正确,看来不能这么用。
Hyper-V Worker、3040,这已经是一个很好的提示了,于是拿这个信息重新搜索,再选择和Win8.1系统有关,没有多少收获。
白天晚上都时不时搜索一把,代码都没有怎么写,就酱紫一周时间过去了。
对于虚拟的win7而言,其实大可不必非得坚持用Hyper-V,但是对于 Windows Phone的程序,模拟器也无法初始化,这就是个大问题了。
昨天就在衣服自己洗很是崩溃的时候,突然在网上发现了一个帖子,并最终解决了问题。
以管理员权限在命令行里执行 net Localgroup administrators SERVICE /delete
然后重启电脑,重启后win7虚拟机倒是正常了,但是Windows Phone 模拟器还是不行,重新修复了下VS,一切都看起来OK。
刚才的命令是从管理员用户组里删除 Service 用户,虽然很奇怪为什么要这么做,可删除后确实就有效果了,原文帖子里大家也是一样的疑惑。再次在事件查看器里看到到对应的事件所有者是System了,而不是原来的NT Virtual Machine。
希望对大家有用,以上。