Win10系统从sata转移到nvme无法启动问题处理

更多内容请点击 我的博客 查看,欢迎来访。

系统硬件信息及场景

 Operating System: Windows 10 专业版 64-bit (10.0, Build 18363) (18362.19h1_release.190318-1202)
                 Language: Chinese (Simplified) (Regional Setting: Chinese (Simplified))
      System Manufacturer: System manufacturer
             System Model: System Product Name
                     BIOS: 0809 (type: UEFI)
                Processor: Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz (4 CPUs), ~3.4GHz

完成m.2 sata固态上的系统转移到m.2 nvme固态。

系统从sata迁移到nvme步骤

需要支持nvme固态的PE,推荐使用 WePE2.0

系统转移

Win10系统从sata转移到nvme无法启动问题处理_第1张图片
BLOG_20200118_185117_75

使用CGI工具进行硬盘对拷,选择源硬盘和目标硬盘,点击执行即可,这时会启用Ghost工具进行硬盘文件转移。

挂载EFI分区修复

使用UEFI引导修复工具,加载EFI分区

Win10系统从sata转移到nvme无法启动问题处理_第2张图片
BLOG_20200118_185111_22

点击挂载,然后点击开始修复

Win10系统从sata转移到nvme无法启动问题处理_第3张图片
BLOG_20200118_185105_27

这时候会在电脑中显示出该分区,里面的内容如下

Win10系统从sata转移到nvme无法启动问题处理_第4张图片
BLOG_20200118_185059_46

确认引导修复

打开扇区小工具BOOTICE

Win10系统从sata转移到nvme无法启动问题处理_第5张图片
BLOG_20200118_185053_86

切换到BCD编辑,选择其他BCD文件:即找到目前硬盘ESP分区下的EFI\Microsoft\Boot\BCD

Win10系统从sata转移到nvme无法启动问题处理_第6张图片
BLOG_20200118_185048_46

点击BCD,然后点击智能编辑模式,可以看到如下显示,如果修改有问题,可以通过这儿修改

Win10系统从sata转移到nvme无法启动问题处理_第7张图片
BLOG_20200118_185040_64

切换到UEFI

Win10系统从sata转移到nvme无法启动问题处理_第8张图片
BLOG_20200118_185032_89

查看UEFI启动序列信息

Win10系统从sata转移到nvme无法启动问题处理_第9张图片
BLOG_20200118_185025_32

一般情况下,完成以上步骤,关机,拔掉源硬盘,再开机,目标硬盘上的系统应该就可以正常启动了。

但是在Win10转圈页面转很久,且过一会就蓝屏,还会提示一些错误。

解决迁移到nvme无法启动问题

原因分析

使用不同类型的硬盘的系统,stornvme驱动请况

>sc qc stornvme
[SC] QueryServiceConfig 成功

SERVICE_NAME: stornvme
        TYPE               : 1  KERNEL_DRIVER
        START_TYPE         : 0   BOOT_START
        ERROR_CONTROL      : 3   CRITICAL
        BINARY_PATH_NAME   : \SystemRoot\System32\drivers\stornvme.sys
        LOAD_ORDER_GROUP   : SCSI Miniport
        TAG                : 32
        DISPLAY_NAME       : Microsoft Standard NVM Express Driver
        DEPENDENCIES       :
        SERVICE_START_NAME :

使用nvme硬盘启动的电脑,在START_TYPE的值为BOOT_START,即storenvme驱动是启动即加载的,而sata硬盘的系统,值为DEMAND_START,即需要时启动。

>sc qc stornvme
[SC] QueryServiceConfig 成功

SERVICE_NAME: stornvme
        TYPE               : 1  KERNEL_DRIVER
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 3   CRITICAL
        BINARY_PATH_NAME   : \SystemRoot\System32\drivers\stornvme.sys
        LOAD_ORDER_GROUP   : SCSI Miniport
        TAG                : 32
        DISPLAY_NAME       : Microsoft Standard NVM Express Driver
        DEPENDENCIES       :
        SERVICE_START_NAME :

也就是说,使用nvme硬盘的机器,一定要在系统启动时就加载stornvme驱动才行,否则会因为驱动没加载而造成系统没法正常读写磁盘数据而蓝屏。

至此,解决方案就很简单了,只要把这个项改成BOOT_START就可以了。但是实际修改过程中发现,修改了没效果,看来还是有点问题,最后查看了注册表才看出了端倪,这台修改了没有效果的机器,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme项下面还有一个StartOverride,而正常使用nvme硬盘的机器,没有这个键。

查阅了一些资料才发现,控制这个驱动启动类型的,是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme根目录下有一个叫StartDWORD值,这个值等于0表示 BOOT_START,即系统启动就加载,3代表按需加载( DEMAND_START ),默认已经是0(BOOT_START)。

但是因为设置了StartOverride这个键值,原设置就会被这个键值下的设置覆盖。而这个值会由系统每次启动根据驱动的使用情况自行进行优化,也就是说,win10其实每次启动,根据驱动是否被使用的情况,会自动优化驱动的选项,把不需要启动就加载的驱动设置了StartOverride值,让其延迟启动,这其实是一种自学习和优化的功能,可以优化开机速度。不过这里对迁移系统造成麻烦。那怎么解决这个问题呢?

  • 方法一:先删除 stornvme键值下面的StartOverride目录,然后重新启动进PE系统去备份整个系统盘,然后再从nvme硬盘启动,当然这样就对操作顺序有一定要求了,就是修改过该键值以后,就不能再次进入原硬盘系统,否则又会被系统改回去。
  • 方法二:先不改,先迁移磁盘,然后在PE里面修改迁移后硬盘上的注册表。

PE下修改nvme系统下的注册表

删除stornvme键下面的 StartOverride目录。这一步需要一点点技巧,因为现在刚迁移了旧系统,没法直接启动新系统去改,所以需要用一下regedit的一个“加载配置单元”功能,详细做法如下:

  1. 在PE里面打开运行,输入regedit,这一步会打开PE里系统的注册表编辑器,当然这里并不是要改PE里的注册表,而是只是使用regedit的编辑功能,用来编辑的是nvme硬盘上系统盘的注册表。

Win10系统从sata转移到nvme无法启动问题处理_第10张图片
BLOG_20200118_185010_68

  1. 注册表的位置一般是在C:\windows\system32\config目录下(这里的C是nvme里刚迁移过来的系统盘在PE中显示的盘符),单击一下HKEY_LOCAL_MACHINE分支将其选中,然后点 文件 -> 加载配置单元。

  2. 找到 C:\windows\system32\config\system文件,加载后会让你输入一个加载项的名称,这里随便写就行,不要和现有的名称相同。

Win10系统从sata转移到nvme无法启动问题处理_第11张图片
BLOG_20200118_185002_30

Win10系统从sata转移到nvme无法启动问题处理_第12张图片
BLOG_20200118_184956_48

  1. 注册表编辑器就会把SYSTEM这个分支加载到HKEY_LOCAL_MACHINE\sys下面,这时候展开这个目录,能看到这个分支和PE里的 HKEY_LOCAL_MACHINE\SYSTEM的结构类似,这个就是nvme硬盘上的注册表内容了

  2. 这里有一点区别,那就是由于并没有启动nvme硬盘上的系统,所以CurrentControlSet这个目录是没有的,其实这个目录原本只是一个链接而已,指向的是当前加载的配置ControlSetxxx目录。这里只有一个ControlSet001,所以直接展开ControlSet001\Services\stornvme即可,然后删除 StartOverride目录

Win10系统从sata转移到nvme无法启动问题处理_第13张图片
BLOG_20200118_184947_21

Win10系统从sata转移到nvme无法启动问题处理_第14张图片
BLOG_20200118_184941_71

  1. 最后选中sys分支,再使用 文件 -> 卸载配置单元 ,卸载分支即可。

Win10系统从sata转移到nvme无法启动问题处理_第15张图片
BLOG_20200118_184935_58

重启检查

以上步骤操作完了,关机,拔掉PE的U盘,这时候已经没有源硬盘,只有一个nvme的目标硬盘,直接开机,一般情况下就可以直接进入系统不会蓝屏了。

参考 https://www.jarviswang.me/?p=1078 解决问题并记录

你可能感兴趣的:(Win10系统从sata转移到nvme无法启动问题处理)