Windows 7支持NVME的艰难历程,对找Windows 7通用NVME驱动的朋友有帮助
本帖最后由 ganyuansi 于 2018-1-27 22:03 编辑Windows7操作系统作为一代经典(上一代还是Windows XP),是目前最顺手的操作系统,可惜对一些新的硬件技术支持不太好,比如USB3.0和NVME。USB3.0相对比较的容易,集成Intel/AMD的驱动即可,难的是NVME,以下是为了让Windows 7支持NVME(Windows 7+NVME Boot)所经历的磨难。
作为一个软件洁癖,首先考虑是修改Windows 7自身安装文件实现完全的NVME支持,需要修改Boot.WIM文件和Install.WIM文件。
一、第一个方法考虑的是使用微软自己推出的驱动支持。搜索发现没有单独的驱动提供,不过有热修复补丁KB2990941,然后磨难开始了,Boot.WIM集成了这个补丁过后,进入安装分区界面,仍然弹框要求加载驱动,而实际通过Diskpart发现NVME SSD已经识别了。怀疑是集成补丁的工具DISM++造成,按照KB2990941说明采用dism命令集成仍然会出现这个弹框,后面发现使用技嘉的Windows USB Installation Tool集成上面的KB并集成Intel和三星的NVME驱动,安装分区界面却不会弹框,于是又测试,用DISM++工具集成技嘉工具目录下的KB和驱动,仍然会出现弹框,实在找不到原因,放弃此方法。
二、第一个方法行不通,想到了第二个办法,那就采用曲线救国的方式,提取KB2990941里面的inf和sys驱动文件,在集成过程中提示证书不对,后发发现驱动都有对应cat签名文件,KB里面提取出来的驱动不包含cat文件,无法使用。后面想到没有cat文件就自己生成一个cat文件,找到WinDDK里面的工具签名inf和sys文件,发现就算生成了cat文件也无法使用,因为没有对应电子证书,cat文件会提示安全目录无效,使用DISM++集成也会提供驱动证书无效无法集成,只能放弃此法。
三、后面想到第三种方法,既然官方的通用驱动无法使用,那就找第三方驱动,结果还真有,pceva提供的第三方通用驱动,最新3.0版本没有搜索到下载,官方网站也需要160多RMB才能注册,鉴于投入的成本,放弃使用pceva的nvme驱动。
四、既然pceva通用驱动找不到,那就想到了第四种方法,就是集成主流的NVME SSD主控的驱动,诸如intel和三星,慧荣SMI,群联Phison,美满Marvell…,在找驱动过程中还真有了发现,宇瞻SSD(群联主控)和阿斯加特SSD(Realtek主控)提供了inf完全相同的一个驱动,驱动签名不一致(WDKTestCert/Realtek),描述为Community NVMe 1.0e Storport Miniport,版本为1.4.0.0,怀疑为一个社区通用驱动,于是提取inf文件与微软KB2990941里面的inf文件进行对比,发现内容除了排版和变量名不一样外,主要的参数都是完全一样的,安装分区界面加载确认,Intel 600P(慧荣主控)可以驱动,VMware虚拟机(UEFI+NVME)可以驱动,就更加确信这是一个社区通用驱动,但用DISM++集成后发现在安装界面无法识别到SSD硬盘了,于是采用安装分区界面加载这个驱动的方法,识别SSD成功,但在安装进程重启过后就会蓝屏或者报NVME.SYS文件有问题,于是暂时只能放弃此驱动,希望后续有其他正常签名正常加载正常使用的版本出现。 继续采用集成主流主控驱动的方法。收集驱动时发现,慧荣也有签名的驱动,最新版本1.4.24.0,支持intel 600p,内容与上面的社区通用驱动一致,添加了少许参数以支持新功能,查看其changlog.txt,发现两个重要信息,一是1.4.0.0版本都由NVM Express organization社区提供代码,二是此驱动有支持列表。经过VMware虚拟机(UEFI+NVME)加载测试发现然只能用于慧荣主控的SSD。
五、鉴于集成主流SSD主控驱动不能覆盖所有的SSD主控,且加载SSD主控驱动不能重复驱动文件名,既然windows 7 boot.wim加载驱动有问题,考虑采用Windows 8.1/10的安装文件+集成了KB2990941的Windows 7的Install.wim,实际安装分区界面完美识别SSD,安装好的Windows 7完美驱动SSD
于是总结如下:
方法一:用Windows 7的boot.wim和install.wim集成主流SSD主控驱动,优势是原厂驱动性能功能更好,但不能全部覆盖,其他不支持的另外加载驱动。
方法二:用Windows 8.1/10安装文件+集成了KB2990941的Windows 7的Install.wim,支持所有SSD,但需要另外加载原厂驱动。
本人环境:技嘉GA-Z87-HD3主板F8版本BIOS,添加NVME模块;Intel 600p 256G SSD;Windows 7 SP1集成汇总更新。
Update:
1.找到集成KB290941集成的问题了,boot.wim中的Index 2的sources目录要和安装ISO里面的sources文件版本一致。所有微软通用驱动也可以使用了。
2.有第三方开源驱动,地址https://svn.openfabrics.org/svnrepo/nvmewin/,上面提到的通用驱动原来也是这个,不过不适合生产环境使用。
看来是写给在这里问那哥们的…………也是不错了,朋友。 不赞同LZ的思路:
1.通用驱动性能估计比不上原厂驱动。
2.Win7原版的boot.wim自带的安装工具不支持高压缩esd格式安装文件,如果集成最新补丁、驱动后,整盘文件大于5GB,一张DVD-5装不下,如果把install.wim压缩成install.esd,一张DVD-5可以装下。
3.高版本boot.wim和相关启动文件支持最新设备驱动,支持EFI BIOS安装。 谢谢分享,很详细经历和教程。{:5_280:} 隔着屏幕都能感受到楼主的艰难历程。。。
nvme支持不是需要2个补丁么,这里只提到一个
我验证过,可以支持600p,t10之类未提供官方驱动的nvme盘的,安装介质方式引导安装。 mmxx2013 发表于 2018-1-20 10:17 https://www.pcbeta.com/static/image/common/back.gif
不赞同LZ的思路:
1.通用驱动性能估计比不上原厂驱动。
2.Win7原版的boot.wim自带的安装工具不支持高压缩 ...
文章有提到微软的inf和我提到的inf内容一样,这些通用驱动只适用于没有提供官方驱动的情况。 zerozerone 发表于 2018-1-20 13:53 https://www.pcbeta.com/static/image/common/back.gif
nvme支持不是需要2个补丁么,这里只提到一个
我验证过,可以支持600p,t10之类未提供官方驱动的nvme盘的, ...
是两个补丁,前面一个才是有内容的补丁,后面一个是补丁的修复。
我不知道为什么微软的这两个补丁集成进入boot.wim,安装界面仍然会提示需要驱动,而实际diskpart查看已经识别到SSD了 我用过三个版本Win7,板凳楼层的,Z&L合作版,版主第二版,第三版还没有用过。联想710S i7-6560U,自带PM951 512G,换过东芝XG3,这几个版都能装上。
页:
[1]