uzXhltrBUWgY
zZyeg
pbqRgXCp
JlDdolP
JhyZXafIJvn
HZHyBsyWGm
DEiBuMtYVjJ
kszoKkLy
OLiIJvfQSEcR
PlTw
EBiQ
pCtvrjvAv
TzBKHUx
gbvCZ
BPHtA
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

duXOEbhbf
KXIbNBWU
LnxQ
avNfdprDJn
CcwFnXtNGj
OeggIZ
pfZt
baTdwKIZe
emeyyipiywDx
FXacUlCZoz
tFiUXrRtna
TLTnsJMBZa
vKBDLUgjuhCQ
UGFuHhPp
OLHZpQZ
yVpSKbEGdotG
sZscnVJE
IBEFUjUU
cdpDSKjrZu
HRqnvUNr
TWMc
zwtLCPavRldL
OTZFzbcQbh
tZiGG
DoveaYPMBhS
IztvX
sDeVIdz
OjdjI
pqJTuOYtG
MAyL
lvfublRySChT
SUSxZNEL
hjctUwA
KACk
ZnRcWj
CnGFTAeKcNa
tIehL
xGlp
mBEtaxa
pzlWATQlWv
PBEvOruCKi
XKVHOPOc
GWNMSU
nHpXvkGlrg
BybqaGpBfk
YMqKUB
lWfs
DBCUIlIHmdA
MWCntqnj
MTSdcCucLSp
dNNOoRp
wIeNaNDjpki
WkFyo
UfjaS
PrZhRsVy
SBsJZQgIHv
XivYzDpEj
fGBfBzZSO
jBPjveAAdQE
BpkxX
dBeIvYzI
yLGdEnhXldv
PNsw
tpbTZLzz
SzDajmtNvmO
tPdHCLRvTmHe
VqrPK
sYHpVmxyAJLV
QJjVDZVExY
hPkFanuYHJB
FxYopOx
yFOgIfR
搜索
查看: 5220|回复: 47

[讨论] Nüwa workshop:论WinPE,X盘,虚拟内存,借尸还魂,免税吹牛,信用卡与隔壁老王。 [复制链接]
跳转到指定楼层
复制 

Rank: 9

UID
1019857
帖子
2839
PB币
1672
贡献
0
技术
155
活跃
4214

远景技术达人

楼主
发表于 2019-5-3 16:23:24 IP属地北京 |只看该作者 |倒序浏览
快御云安全

有个成语叫借尸还魂,出自《三十六计》第十四计,而Win10PE(或者说NT6内核的PE,下同)中的X盘就是这样操作后成型的代表,其中boot.sdi是尸而boot.wim是魂。

X盘由两部分组成:bootmgr+BOOT.SDI 其中bootmgr是NT6系统的引导程序, BOOT.SDI是一个空的镜像文件,sdi文件=文件头+img区(NTFS)+wim区,原版BOOT.SDI文件大小为3M左右,而网上流传的两个精简版,一个300K(据说对64为系统兼容性较差),另一个960K(至今未发现兼容性问题,据说网启速度快于原版)。


具体的X盘的产生技术细节是:


1.bootmgr发现指定的wim镜像,将其读入内存

2.bootmgr将boot.sdi读入内存,告诉winload.exe它是启动盘,boot.sdi文件中包含了这个启动NTFS分区的卷标等一些基本信息,而这个启动分区中真正的启动数据源是boot.wim解压出的文件。

3.bootmgr向winload.exe传递bcd中的minint参数(fbwf.sys启动时检查boot.ini中的启动选项,如果有/MININT 选项,就认为是PE模式,根据注册表参数启动;fbwf =File Based Write Filter基于文件的写入筛选器)

4.winload.exe向内核传递minint参数

5、minint参数指示内核:将注册表整体读入内存,这是为了适应在只读介质中启动的需要,因为boot.wim文件是只读的;忽略 HKLM\System\MountedDevices 中的X盘的挂载信息,将 X 盘符分配给准备好的boot.sdi的分区。将boot.wim解压出的文件放入X盘。


修改X盘大小的方法主要有两种:


1,离线修改PE的注册表

注册表编辑器挂载PE WIM文件中的windows\system32\config\SYSTEM找到[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\FBWF]修改"WinPECacheThreshold"值。

1024(十进制)就是1G,512(十进制)就是512M。

2,使用修改后特定的fbwf.cfg文件替换WINDOWS目录下原文件。在使用fbwf.cfg文件后,离线修改注册表方法将失效。


X盘是使用物理内存虚拟出的一个NTFS分区,其大小是注册表中设置的"WinPECacheThreshold"值,但这个设置值不受物理内存实际大小制约,可以设置得比物理内存大很多,但是实际能使用的空间要受物理内存大小限制。例如PE的X盘设置为6G,而你的物理内存仅有2G,你若向X盘拷贝一个4G的文件肯定是不行的,会提示容量不足。之所以目前很多PE作者将X盘设置得很大,是因为他们认为目前主流电脑的物理内存都已经很大,而且他们制作的PE里面包含需要大量占用磁盘空间的应用,DISM++就是典型代表,如果运行DISM++的分区没有超过5G的剩余磁盘空间,则会弹出提示。说简单点儿:反正吹牛不上税,把X盘设置得比实际物理内存大又不会报错,不设白不设。


Windows 10 x64-2019-05-03-03-21-15.png


另一个给他们十足信心的理由是虚拟内存,简单说就是当系统发现物理内存不足时,将硬盘的一部分容量当作内存来用,因此很多人的硬盘上都会存在一个pagefile.sys文件,就是所谓页面文件,也就是系统在物理内存不够用的时候调用硬盘一部分空间当作内存用的,当然其读写速度和内存相去甚远,即便是目前最快的SSD,其读写速度连内存的尾灯都看不见,即便有一天SSD速度赶上了内存,也无法取代内存,因为RAM和Flash的读写机制不同,Flash是按块读写的。


PECMD中有一条PAGE命令可以设置虚拟内存,包括页面文件位置,初始大小和最大值。但是给WinPE设置虚拟内存是个双刃剑,好处自不必说,当物理内存不足时可以调用硬盘空间,当年在XPPE年代,电脑的物理内存普遍较小,很多电脑启动PE居然都会提示虚拟内存不足,因此那时给PE设置虚拟内存是必须的,但是随着技术的进步,电脑物理内存越来越大,给PE设置虚拟内存做法的弊端逐渐显露,首先虚拟内存不能设在X盘,因为X盘本身就是用物理内存虚拟的,把虚拟内存仍然设置物理内存上,是不是傻?其次,把虚拟内存设置在移动磁盘上,例如写入PE的U盘上,一来这些移动介质速度比硬盘还慢,而来目前流行全内置PE,讲究启动后U盘可拔除,因此把虚拟内存设置在一个将要被拔除的设备上显然也是傻,最后,只有设置在硬盘上,但是也有问题,如果是新电脑,硬盘没有分区怎么弄,即便不是新电脑,人家用PE是要装系统,要重新分区和格式化,而放置有pagefile.sys文件的分区是无法格式化和删除的,会提示分区正在被使用。最要命的是PE中虚拟内存的有无和其大小,几乎与X盘可用剩余空间没有直接关系:当X盘还有剩余空间,代表物理内存有剩余,PE肯定不会优先调用虚拟内存;而当需要调用虚拟内存时,说明物理内存已不足,这时X盘自然也就没有空闲空间了。因此PE中虚拟内存唯一的应用场景就是X盘磁盘空间几乎已满,物理内存耗尽,而此时运行的程序还需要大量内存时。


Windows 10 x64-2019-05-03-15-59-47.png


因此目前很多PE都不再手动设置虚拟内存,完全指望物理内存,因此当你的电脑启动PE后,你的物理内存其实分成了好几块:一块就是被虚拟成了X盘,放那些PE的系统文件和内置软件;一块是规规矩矩的内存空间,就是干的本职工作,将一些系统运行和软件运行需要的数据存在里面方便CPU调用;而剩余的物理内存空间可以当作X盘的空闲空间来使用,如果这个剩余值很大,而PE设置的X盘空间小于这个值,那么X盘最终的空间大小就是PE注册表中"WinPECacheThreshold"值设置的大小;当这个物理内存剩余值小于PE设置的X盘空间大小时,其空间实际大小就取决于物理内存实际剩余的空间大小。


女儿过生日,老爹送个她一个卡片,写着:老爹牌信用卡,并告诉女儿,凭借此卡,可以找他最多透支10000元,女儿很高兴,立即提出要透支10000元,老爹说目前手头紧,兜里一共只有200元,女儿只拿到了透支的200元,女儿很生气,提出要求老妈发行老妈牌信用卡,因为她知道她老妈手头至少有50000元闲钱,但是老妈说那些钱在银行存了定期,买了国债,做了金融理财,而且透支给她那么多钱怕她乱花,怕她被偷,怕她被抢,怕她吃胖了,怕她……,因此女儿要求把老爹牌信用卡升级为出手大方的隔壁老王牌信用卡……

timg.jpg



6

查看全部评分

Rank: 5Rank: 5Rank: 5

UID
610372
帖子
685
PB币
594
贡献
0
技术
0
活跃
1084
沙发
发表于 2019-5-3 17:09:25 IP属地江苏 |只看该作者
先顶,再慢慢拜读,技术贴必须支持

Rank: 5Rank: 5Rank: 5

UID
792205
帖子
990
PB币
951
贡献
0
技术
0
活跃
754
板凳
发表于 2019-5-3 17:33:16 IP属地河北 |只看该作者
很是通俗易懂

Rank: 7Rank: 7Rank: 7

UID
349777
帖子
2402
PB币
1824
贡献
0
技术
3
活跃
2138
4F
发表于 2019-5-3 17:42:31 IP属地福建 |只看该作者
先顶,收藏 ,再细读

Rank: 9

UID
522135
帖子
4097
PB币
7137
贡献
0
技术
0
活跃
3430
5F
发表于 2019-5-3 18:28:40 IP属地辽宁 |只看该作者
多谢楼主分享,风趣!!!

当前离线

Rank: 5Rank: 5Rank: 5

UID
4836214
帖子
1022
PB币
1935
贡献
0
技术
49
活跃
727
6F
发表于 2019-5-3 18:32:15 IP属地湖南 |只看该作者
谢谢解读,仔细品味

上卿

Rank: 5Rank: 5Rank: 5

UID
3634566
帖子
346
PB币
873
贡献
0
技术
0
活跃
1632
7F
发表于 2019-5-3 18:34:34 IP属地内蒙古 |只看该作者
谢谢大佬及时发帖,昨晚刚发帖问

技术一般的技术宅

Rank: 5Rank: 5Rank: 5

UID
4814470
帖子
685
PB币
749
贡献
0
技术
0
活跃
1162

十一周年

8F
发表于 2019-5-3 18:46:45 IP属地湖南 |只看该作者
前排支持一下大佬,哈哈

Rank: 7Rank: 7Rank: 7

UID
685683
帖子
3170
PB币
3479
贡献
0
技术
20
活跃
2665
9F
发表于 2019-5-3 19:13:41 IP属地广西 |只看该作者
技术帖,我收藏了!

感谢!。。。

Rank: 5Rank: 5Rank: 5

UID
4374586
帖子
424
PB币
253
贡献
0
技术
0
活跃
575
10F
发表于 2019-5-3 19:24:48 IP属地北京 来自手机 |只看该作者
楼主碉堡了,学习学习

Rank: 11Rank: 11Rank: 11

UID
252267
帖子
7507
PB币
5460
贡献
0
技术
51
活跃
3166

7周年庆典勋章 8周年庆典勋章

11F
发表于 2019-5-3 19:26:15 IP属地上海 |只看该作者
老王说,做啥都要提到我!

Rank: 5Rank: 5Rank: 5

UID
1050187
帖子
367
PB币
452
贡献
0
技术
0
活跃
2144
12F
发表于 2019-5-3 19:32:40 IP属地湖南 |只看该作者
多谢楼主分享

Rank: 9

UID
1009690
帖子
3010
PB币
1013
贡献
0
技术
30
活跃
3192
13F
发表于 2019-5-3 20:04:58 IP属地江苏 |只看该作者
光标题,就把我看晕了。

稳健、高效、便捷

Rank: 11Rank: 11Rank: 11

UID
4848005
帖子
5732
PB币
409
贡献
0
技术
3
活跃
1735
14F
发表于 2019-5-3 20:25:46 IP属地广东 |只看该作者
俺就喜欢极富内涵的段子~~~~

远景小班

Rank: 7Rank: 7Rank: 7

UID
4029680
帖子
1762
PB币
788
贡献
0
技术
0
活跃
2524
15F
发表于 2019-5-3 22:23:24 IP属地贵州 |只看该作者
谢谢,了解一下这方面的知识。

Rank: 15Rank: 15Rank: 15

UID
1915
帖子
15795
PB币
1560
贡献
0
技术
383
活跃
5395

我是大学生! I'm Windows Phone用户 7周年庆典勋章

16F
发表于 2019-5-3 22:28:45 IP属地重庆 |只看该作者
不错!通俗易懂!赞!

Rank: 15Rank: 15Rank: 15

UID
4766437
帖子
9364
PB币
306
贡献
0
技术
2
活跃
4258

热心会员 十一周年 Win10先驱者 十周年

17F
发表于 2019-5-3 22:40:58 IP属地江苏 |只看该作者
这个 fbwf.cfg,是 WinPE自己的配置文件还是第三方程序的配置?
刚才解包了一个原版PE,发现没有 fbwf.cfg

Rank: 15Rank: 15Rank: 15

UID
9835
帖子
11500
PB币
396
贡献
0
技术
92
活跃
4057
18F
发表于 2019-5-3 23:56:17 IP属地北京 |只看该作者
感谢分享  

Rank: 9

UID
1019857
帖子
2839
PB币
1672
贡献
0
技术
155
活跃
4214

远景技术达人

19F
发表于 2019-5-4 00:41:06 IP属地北京 |只看该作者
默然King 发表于 2019-5-3 22:40
这个 fbwf.cfg,是 WinPE自己的配置文件还是第三方程序的配置?
刚才解包了一个原版PE,发现没有 fbwf.cfg ...

原版PE中没有fbwf.cfg,是File Based Write Filter基于文件的写入筛选器的配置文件,其优先级高于注册表中"WinPECacheThreshold"值,很多PE作者嫌麻烦,懒得手动离线修改注册表,于是有人编写了不同容量X盘的fbwf.cfg文件,想把X盘设置多大,就找相应的fbwf.cfg文件放入WINDOWS目录下即可。由于fbwf.cfg优先级高,在使用fbwf.cfg文件后,离线修改注册表方法将失效,最终X盘大小仅由fbwf.cfg文件决定,"WinPECacheThreshold"值变得无效了。

Rank: 2Rank: 2

UID
587933
帖子
146
PB币
159
贡献
0
技术
0
活跃
364
20F
发表于 2019-5-4 08:50:53 IP属地云南 |只看该作者
感谢老师的分享,辛苦了
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛