注意:以下方法仅适用于AHCI模式下,关于原理的说明仅仅只是个人的一些理解,并非专业解释,大概理解即可
基本说明:首先我们需要先了解,Intel的主板更换成AMD的,可以正常进入,只需要重新安装驱动即可,但是为什么AMD的更换成Intel就会无法启动呢,这里其实就涉及到一个很重要的东西,AHCI控制器驱动(也叫磁盘控制器驱动),有时候我们旧的芯片组更换到新的芯片组的主板会无法启动,或者启动出错其实也是因为这个,Win7里叫msahci,Win8或更高版本里叫storahci,当我们刚安装好系统,还未安装ahci驱动的时候,其实就是系统自带的ahci在发挥作用
(以下内容处于争议阶段)
站长认为,Intel的ahci驱动与msahci是处于一种同时运行的状态,当把Intel更换成AMD后,首先由系统检测当前主板的磁盘控制器是否有安装,如果有安装则加载当前主板的磁盘控制器驱动,如果未安装则尝试使用msahci,如果这个服务未运行,或者不支持当前的主板,则自动重启,或者蓝屏。
而AMD的ahci驱动安装后,msahci的驱动状态会被设置为3,也即是手动启动,当更换成Intel以后,由于这个服务被设置成手动启动,那么系统因为检测到当前主板不是amd的,但新的磁盘控制器驱动并未安装,所以只好尝试从msachi进行加载磁盘,但又因为这个服务处于未启动状态,系统无法加载,遂启动失败,系统重启
解决方法:既然知道了原因,其实就很好解决了
1.首先我们需要先准备好一个PE系统,因为注册表的修改需要在PE下进行,站长这里使用的是我们自己定制的PE
2.如果您的PE有便捷的注册表编辑工具,也可以使用,如果没有也可以使用默认的regedit,都可以实现,首先我们先打开软件(这时候看到的注册表是PE的,并不是我们需要更改的,这点需要注意),然后在左侧列表中选择一个项,我这里使用的是HKEY_LOCAL_MACHINE
然后我们点击左上角文件,加载配置单元(这里的作用是把我们真实系统的注册表挂载到现在这里)
在弹出的窗口中,找到c:\windows\system32\config,这里可以看到有许多个文件,不用管,我们只需要找到SYSTEM这个文件挂载即可
选中,点击打开,会弹出一个输入项名称,这里输入的是方便我们之后寻找的一个名称,当设置完成后,展开刚刚你选中的那个项,就可以看到有一个你前面设定的名称的项出现在那里
当你看到这个,说明你真实系统的注册表已经挂载成功了,接下去,我们只需要找到ControlSet001\Services\msahci(或storahci),然后在右侧将Start的键值修改成0,然后重启即可。
3.非必须,不过建议配合SkyIAR组合使用