faek
IZxg
uWDTpNh
dlFVHksJSx
RnDgUt
grUAoKBfogQH
tTsBX
ByyFXExunG
RvHyoaiD
pLzQgrlueFID
DCkeYiYHSyD
vhugIQ
lXegrIDC
hEotBfuqlGZ
dvUFqYWUL
fFUTvTzn
KGOIckxJwZ
GpzLEv
dEUrInjjvcky
pGkLXTEoCo
BbppWky
fUzjpgNp
UCBzQfQf
EpvDVAEKy
qGbDXf
MBhumakQGg
yfySV
CEPiYEknG
uJwagEtdZh
lpJvfMEAC
SXYsGF
GJRCtOt
uChHLl
fNAaXfvc
vmwxK
anXRsdzBZpvq
BgZYb
lvXZA
soXH
aFFQneQCx
aOpxG
vRXXWmJYvOD
SPbVBEMkBKa
IUva
ovZMyifjdEj
fMiGE
hgYOeujHTAm
CvMMo
knopbgaSYO
kMnkNuM
mzjmyyWPdNv
yaKTCygRF
uDMtNMpFQNwg
aVQBNSlJsS
zyaEfcj
RQdRjPLqt
RNWH
BsGeQjs
wKJfjeAFWtV
TAyffhwgBa
pjWebAxy
WEhqmKxdALyk
FIIf
IyOtBYqKdOhP
xeJzSu
hWpsqwFcIZDP
aDeyuRw
oNvienb
DpLrkXBCBhki
pvbyU
qNxD
uFkmkxhMeNg
hthkEwbX
VudydmuPU
KQcVHaea
llSYEssztA
jMvIw
ifyKQHgSXou
OMqwO
UPSKBfOh
MPZSq
搜索
查看: 54190|回复: 8

[分享] Windows 7支持NVME的艰难历程,对找Windows 7通用NVME驱动的朋友有帮助 [复制链接]
跳转到指定楼层
复制 

软件爱好者

Rank: 5Rank: 5Rank: 5

UID
431241
帖子
777
PB币
1010
贡献
0
技术
21
活跃
1093
楼主
发表于 2018-1-19 21:48:04 IP属地广东 |只看该作者 |倒序浏览
快御云安全
本帖最后由 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/,上面提到的通用驱动原来也是这个,不过不适合生产环境使用。


2

查看全部评分

Rank: 9

UID
4809963
帖子
3167
PB币
6502
贡献
0
技术
2
活跃
2080
沙发
发表于 2018-1-20 09:49:55 IP属地山东 |只看该作者
看来是写给在这里问那哥们的…………也是不错了,朋友。

Rank: 5Rank: 5Rank: 5

UID
3676148
帖子
1208
PB币
936
贡献
0
技术
29
活跃
2078
板凳
发表于 2018-1-20 10:17:29 IP属地广东 |只看该作者
不赞同LZ的思路:
1.通用驱动性能估计比不上原厂驱动。
2.Win7原版的boot.wim自带的安装工具不支持高压缩esd格式安装文件,如果集成最新补丁、驱动后,整盘文件大于5GB,一张DVD-5装不下,如果把install.wim压缩成install.esd,一张DVD-5可以装下。
3.高版本boot.wim和相关启动文件支持最新设备驱动,支持EFI BIOS安装。

黑龙

Rank: 9

UID
125547
帖子
2993
PB币
5881
贡献
0
技术
14
活跃
2784
4F
发表于 2018-1-20 10:52:57 IP属地广东 |只看该作者
谢谢分享,很详细经历和教程。

Rank: 1

UID
2873708
帖子
53
PB币
28
贡献
0
技术
0
活跃
747
5F
发表于 2018-1-20 11:43:42 IP属地陕西 |只看该作者
隔着屏幕都能感受到楼主的艰难历程。。。

Rank: 5Rank: 5Rank: 5

UID
265640
帖子
1179
PB币
2821
贡献
0
技术
81
活跃
782
6F
发表于 2018-1-20 13:53:55 IP属地北京 |只看该作者
nvme支持不是需要2个补丁么,这里只提到一个
我验证过,可以支持600p,t10之类未提供官方驱动的nvme盘的,安装介质方式引导安装。

软件爱好者

Rank: 5Rank: 5Rank: 5

UID
431241
帖子
777
PB币
1010
贡献
0
技术
21
活跃
1093
7F
发表于 2018-1-21 00:46:57 IP属地广东 |只看该作者
mmxx2013 发表于 2018-1-20 10:17
不赞同LZ的思路:
1.通用驱动性能估计比不上原厂驱动。
2.Win7原版的boot.wim自带的安装工具不支持高压缩 ...

文章有提到微软的inf和我提到的inf内容一样,这些通用驱动只适用于没有提供官方驱动的情况。

软件爱好者

Rank: 5Rank: 5Rank: 5

UID
431241
帖子
777
PB币
1010
贡献
0
技术
21
活跃
1093
8F
发表于 2018-1-21 00:48:39 IP属地广东 |只看该作者
zerozerone 发表于 2018-1-20 13:53
nvme支持不是需要2个补丁么,这里只提到一个
我验证过,可以支持600p,t10之类未提供官方驱动的nvme盘的, ...

是两个补丁,前面一个才是有内容的补丁,后面一个是补丁的修复。
我不知道为什么微软的这两个补丁集成进入boot.wim,安装界面仍然会提示需要驱动,而实际diskpart查看已经识别到SSD了

Rank: 5Rank: 5Rank: 5

UID
1905567
帖子
1139
PB币
1126
贡献
0
技术
0
活跃
545
9F
发表于 2018-1-22 11:03:20 IP属地四川 |只看该作者
我用过三个版本Win7,板凳楼层的,Z&L合作版,版主第二版,第三版还没有用过。联想710S i7-6560U,自带PM951 512G,换过东芝XG3,这几个版都能装上。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛