秒杀Win原生esd算法,WIM转ESD,比DISM++快一万倍。
本帖最后由 求道者 于 2022-1-28 16:31 编辑直接上数据。
time wimlib-imagex export install.wim all install.esd --solid
Using LZMS compression with 24 threads
Archiving file data: 7655 MiB of 7655 MiB (100%) done
wimlib-imagex export install.wim all install.esd --solid4908.95s user 12.25s system 2055% cpu 3:59.39 total
wimlib-imagex info install.esd
WIM Information:
----------------
Path: install.esd
GUID: 0x45b8ca099098e8da95a39873c617dcf8
Version: 3584
Image Count: 1
Compression: LZMS
Chunk Size: 131072 bytes
Part Number: 1/1
Boot Index: 0
Size: 3294961694 bytes
Attributes: Relative path junction
Available Images:
-----------------
Index: 1
Name: Windows 10 企业版 LTSC
Description: Windows 10 企业版 LTSC
Display Name: Windows 10 企业版 LTSC
Display Description: Windows 10 企业版 LTSC
Directory Count: 27944
File Count: 95478
Total Bytes: 14712361472
Hard Link Bytes: 6315019536
Creation Time: Thu Jan 27 04:37:08 2022 UTC
Last Modification Time: Thu Jan 27 04:37:10 2022 UTC
Architecture: x86_64
Product Name: Microsoft Windows Operating System
Edition ID: EnterpriseS
Installation Type: Client
Product Type: WinNT
Product Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
wimlib-imagex info install.wim
WIM Information:
----------------
Path: install.wim
GUID: 0x6888efa624775e429b5e30472f67b4c4
Version: 68864
Image Count: 1
Compression: LZX
Chunk Size: 32768 bytes
Part Number: 1/1
Boot Index: 0
Size: 4170210044 bytes
Attributes: Relative path junction
Available Images:
-----------------
Index: 1
Name: Windows 10 企业版 LTSC
Description: Windows 10 企业版 LTSC
Display Name: Windows 10 企业版 LTSC
Display Description: Windows 10 企业版 LTSC
Directory Count: 27944
File Count: 95478
Total Bytes: 14712361472
Hard Link Bytes: 6315019536
Creation Time: Thu Jan 27 04:37:08 2022 UTC
Last Modification Time: Thu Jan 27 04:37:10 2022 UTC
Architecture: x86_64
Product Name: Microsoft Windows Operating System
Edition ID: EnterpriseS
Installation Type: Client
Product Type: WinNT
Product Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
感想就是微软的程序员是什么牛马?
我3900X用DISM++ WIM转ESD,要几个小时。
wimlib只要几分钟……
扩展一下就是WIN本身得有多烂?
5800X的速度,似乎稍微慢点。
time wimlib-imagex export install.wim all install.esd --solid
Using LZMS compression with 16 threads
Archiving file data: 7655 MiB of 7655 MiB (100%) done
wimlib-imagex export install.wim all install.esd --solid3493.17s user 5.70s system 1401% cpu 4:09.65 total
3900X给虚拟机分配12个线程,吃了虚拟机的I/O大打折扣与CPU线程数只有一半的debug,但还是在9分钟里完成了任务。
比DISM++还是快了太多,关键是wimlib转esd不至于把系统完全卡死。dism++转esd 电脑就完全不能动了。
time wimlib-imagex export install_1.wim all install_1.esd --solid
Using LZMS compression with 12 threads
Archiving file data: 7656 MiB of 7656 MiB (100%) done
wimlib-imagex export install_1.wim all install_1.esd --solid5840.16s user 17.37s system 1067% cpu 9:08.93 total
是因为内存不足,内存不足导致系统宕机,然后任务时间无限延长,一般卡死的状态就是由于内存不足,dism不报告这个问题,然后就会导致用户无限受苦,wimlib告诉了我要加内存,我才想起这回事。
内存充足的情况下,两者效率差距60%。 楼主厉害 围观一下,Dism++用的不是Winlib-imagex??? 本帖最后由 求道者 于 2022-1-27 20:29 编辑
邪恶海盗 发表于 2022-1-27 20:14
围观一下,Dism++用的不是Winlib-imagex???
我和DISM++作者对过线,让他优化一下压个ESD就要几个小时的问题。
答复就是“微软的原生实现,暂时没打算改,我让他用Winlib,他说他不打算开源,所以打算重写一遍ESD压缩算法的实现,然而……”
依我看还不如开源DISM++,用WIMlib压缩换掉部分实现,独立实现一个压缩算法,实现难度在所有任务中也是中上游的,不是说说就能做到。
就事实而论,这算法效率的差距,不说是差100倍,至少也差了50倍。
用DISM++压缩ESD的痛苦程度,不能说是地狱,只能说是阿鼻叫唤{:1_187:}‘
但凡没差这么多,我都不会发帖。
厉害 very good 谢谢分享。 据我印象,wimlib貌似跟微软原生的wimGAPI有兼容性问题。我是在搞wimboot时发现过类似兼容性问题。
速度快了,但不通用,这个问题更严重。https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif wimlib-imagex export install.wim all install.esd --solid
你这命令行是导出install.wim所有卷为install.esd 本帖最后由 求道者 于 2022-1-27 20:44 编辑
2012jiashanni 发表于 2022-1-27 20:41
wimlib-imagex export install.wim all install.esd --solid
你这命令行是导出install.wim所有卷为instal ...
对,就是WIM TO ESD。
不管过程怎么样,结果是WIM转ESD就行。
我就是嫌微软原生实现太慢了。
Climbing 发表于 2022-1-27 20:37
据我印象,wimlib貌似跟微软原生的wimGAPI有兼容性问题。我是在搞wimboot时发现过类似兼容性问题。
速度 ...
DISM++作为实用工具而言很好用,
但WIM转ESD就是…… 生成的镜像能部署。{:1_191:}
以后还是用这个转ESD吧,DISM那速度受不了。 本帖最后由 求道者 于 2022-1-27 21:08 编辑
Climbing 发表于 2022-1-27 20:37
据我印象,wimlib貌似跟微软原生的wimGAPI有兼容性问题。我是在搞wimboot时发现过类似兼容性问题。
速度 ...
说出来你可能不信,我是在Linux下转的ESD。{:1_196:}
日常维护还是不用这个。 emmm,我单映像的wim,用dism++转esd到是没那么慢
一会我也测试下wimlib看看 谢谢分享 本帖最后由 尽善尽美 于 2022-1-28 08:26 编辑
DISM++转化确实慢得很,这么快速,压缩转化后的大小是不是比DISM++转化的要大很多
wimlib-imagex export D:\xxx.wim all D:\xxx.esd --solid --solid-compress=lzms:100
谢谢分享 尽善尽美 发表于 2022-1-28 07:39
DISM++转化确实慢得很,这么快速,压缩转化后的大小是不是比DISM++转化的要大很多
wimlib-imagex export D ...
这里建议亲进一步测试呢
我是不想用dism++再压了 还有这样的事,回头测试一下兼容性如何,看看用WinNTSetup安装系统会不会有问题 nttwqz 发表于 2022-1-28 10:11
还有这样的事,回头测试一下兼容性如何,看看用WinNTSetup安装系统会不会有问题
已经用WinNTSetup安装过了,可以正常部署。 谢谢分享 Climbing 发表于 2022-1-27 20:37
据我印象,wimlib貌似跟微软原生的wimGAPI有兼容性问题。我是在搞wimboot时发现过类似兼容性问题。
速度 ...
单纯是dism++既不想GNU协议开源,又没有可替换的ESD压缩解压实现罢了,毕竟没人不让用win的api去实现dism的其他功能,只是这压缩算法不能说是狗屎,只能说是逆天。 DISM有自己的转ESD的命令行 体积减少压缩比未压缩的少1G多的用时20几分钟
wimlib转ESD 用DSIM命令行不能用 兼容性是个问题 尽善尽美 发表于 2022-1-28 07:39
DISM++转化确实慢得很,这么快速,压缩转化后的大小是不是比DISM++转化的要大很多
wimlib-imagex export D ...
time wimlib-imagex export install_original.esd all install_100.wim --compress=LZX--compress=lzx:100
Using LZX compression with 12 threads
Archiving file data: 7707 MiB of 7707 MiB (100%) done
wimlib-imagex export install_original.esd all install_100.wim --compress=LZX 1868.11s user 17.61s system 846% cpu 3:42.67 total
time wimlib-imagex export install_original.esd all install.wim --compress=LZX
Using LZX compression with 12 threads
Archiving file data: 7707 MiB of 7707 MiB (100%) done
wimlib-imagex export install_original.esd all install.wim --compress=LZX1089.40s user 16.71s system 687% cpu 2:40.97 total
time wimlib-imagex export install.wim all install_100.esd --solid --solid-compress=lzms:100
Using LZMS compression with 12 threads
Archiving file data: 7707 MiB of 7707 MiB (100%) done
wimlib-imagex export install.wim all install_100.esd --solid 6896.91s user 15.13s system 1092% cpu 10:32.61 total
time wimlib-imagex export install.wim all install.esd --solid
Using LZMS compression with 12 threads
Archiving file data: 7707 MiB of 7707 MiB (100%) done
wimlib-imagex export install.wim all install.esd --solid6861.34s user 17.24s system 1089% cpu 10:31.29 total
ls -al
总用量 17782600
drwxrwxrwx 1 manjaro manjaro 4961月 28 14:00 .
drwxrwxrwx 1 manjaro manjaro 40961月 28 14:00 ..
-rwxrwxrwx 1 manjaro manjaro 33038804041月 28 13:58 install.esd
-rwxrwxrwx 1 manjaro manjaro 41452390601月 28 13:26 install.wim
-rwxrwxrwx 1 manjaro manjaro 33027739441月 28 13:48 install_100.esd
-rwxrwxrwx 1 manjaro manjaro 41371106141月 28 13:23 install_100.wim
-rwxrwxrwx 1 manjaro manjaro 3320362162 12月 15 00:00 install_original.esd
ls -alh
总用量 17G
drwxrwxrwx 1 manjaro manjaro4961月 28 14:00 .
drwxrwxrwx 1 manjaro manjaro 4.0K1月 28 14:01 ..
-rwxrwxrwx 1 manjaro manjaro 3.1G1月 28 13:58 install.esd
-rwxrwxrwx 1 manjaro manjaro 3.9G1月 28 13:26 install.wim
-rwxrwxrwx 1 manjaro manjaro 3.1G1月 28 13:48 install_100.esd
-rwxrwxrwx 1 manjaro manjaro 3.9G1月 28 13:23 install_100.wim
-rwxrwxrwx 1 manjaro manjaro 3.1G 12月 15 00:00 install_original.esd
WIM Information:
----------------
Path: install_original.esd
GUID: 0x6db08e4b2023864e96aea82bb950731c
Version: 3584
Image Count: 1
Compression: LZMS
Chunk Size: 131072 bytes
Part Number: 1/1
Boot Index: 0
Size: 3320362162 bytes
Attributes: Relative path junction
Available Images:
-----------------
Index: 1
Name: Windows 10 Enterprise LTSC 2021
Description: Windows 10 Enterprise LTSC 2021
Display Name: Windows 10 企业版 LTSC
Display Description: Windows 10 企业版 LTSC
Directory Count: 27954
File Count: 95471
Total Bytes: 14765223749
Hard Link Bytes: 6315019536
Creation Time: Wed Oct 06 13:40:23 2021 UTC
Last Modification Time: Wed Dec 15 02:29:37 2021 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: EnterpriseS
Installation Type: Client
Product Type: WinNT
Product Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
WIM Information:
----------------
Path: install_100.esd
GUID: 0xbb700ce778912fd8a55b7f743be96403
Version: 3584
Image Count: 1
Compression: LZMS
Chunk Size: 131072 bytes
Part Number: 1/1
Boot Index: 0
Size: 3302771162 bytes
Attributes: Relative path junction
Available Images:
-----------------
Index: 1
Name: Windows 10 Enterprise LTSC 2021
Description: Windows 10 Enterprise LTSC 2021
Display Name: Windows 10 企业版 LTSC
Display Description: Windows 10 企业版 LTSC
Directory Count: 27954
File Count: 95471
Total Bytes: 14765223749
Hard Link Bytes: 6315019536
Creation Time: Wed Oct 06 13:40:23 2021 UTC
Last Modification Time: Wed Dec 15 02:29:37 2021 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: EnterpriseS
Installation Type: Client
Product Type: WinNT
Product Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
WIM Information:
----------------
Path: install.esd
GUID: 0x2c3af98493bf5d7c53f538f0002cf68a
Version: 3584
Image Count: 1
Compression: LZMS
Chunk Size: 131072 bytes
Part Number: 1/1
Boot Index: 0
Size: 3303877622 bytes
Attributes: Relative path junction
Available Images:
-----------------
Index: 1
Name: Windows 10 Enterprise LTSC 2021
Description: Windows 10 Enterprise LTSC 2021
Display Name: Windows 10 企业版 LTSC
Display Description: Windows 10 企业版 LTSC
Directory Count: 27954
File Count: 95471
Total Bytes: 14765223749
Hard Link Bytes: 6315019536
Creation Time: Wed Oct 06 13:40:23 2021 UTC
Last Modification Time: Wed Dec 15 02:29:37 2021 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: EnterpriseS
Installation Type: Client
Product Type: WinNT
Product Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
WIM Information:
----------------
Path: install_100.wim
GUID: 0xe02be137d6d28830d63017b7111936e0
Version: 68864
Image Count: 1
Compression: LZX
Chunk Size: 32768 bytes
Part Number: 1/1
Boot Index: 0duct Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
Size: 4137107832 bytes
Attributes: Relative path junction
Available Images:
-----------------
Index: 1
Name: Windows 10 Enterprise LTSC 2021
Description: Windows 10 Enterprise LTSC 2021
Display Name: Windows 10 企业版 LTSC
Display Description: Windows 10 企业版 LTSC
Directory Count: 27954
File Count: 95471
Total Bytes: 14765223749
Hard Link Bytes: 6315019536
Creation Time: Wed Oct 06 13:40:23 2021 UTC
Last Modification Time: Wed Dec 15 02:29:37 2021 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: EnterpriseS
Installation Type: Client
Product Type: WinNT
Product Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
WIM Information:
----------------
Path: install.wim
GUID: 0xbb061919acf632acc05441dba5081977
Version: 68864
Image Count: 1
Compression: LZX
Chunk Size: 32768 bytes
Part Number: 1/1
Boot Index: 0
Size: 4145236278 bytes
Attributes: Relative path junction
Available Images:
-----------------
Index: 1
Name: Windows 10 Enterprise LTSC 2021
Description: Windows 10 Enterprise LTSC 2021
Display Name: Windows 10 企业版 LTSC
Display Description: Windows 10 企业版 LTSC
Directory Count: 27954
File Count: 95471
Total Bytes: 14765223749
Hard Link Bytes: 6315019536
Creation Time: Wed Oct 06 13:40:23 2021 UTC
Last Modification Time: Wed Dec 15 02:29:37 2021 UTC
Architecture: x86_64
Product Name: Microsoft® Windows® Operating System
Edition ID: EnterpriseS
Installation Type: Client
Product Type: WinNT
Product Suite: Terminal Server
Languages: zh-CN
Default Language: zh-CN
System Root: WINDOWS
Major Version: 10
Minor Version: 0
Build: 19044
Service Pack Build: 1415
Service Pack Level: 0
Flags: EnterpriseS
WIMBoot compatible: no
install_original.esd是从19044.1415.211215-0800.vb_refresh_enterprise_ltsc_2021_x64frev_zh-cn_40e724ac.iso提取的esd,估计是用DISM++压缩的
体积差不多
非说的话,wimlib lzms:100压缩比更高一点。
10500的机子,七彩虹的垃圾SSD,配置比较平民,速度就慢点。
基本你用wimlib,换配置能带来很大的提升。
dism++嘛,懂得都懂。 andyrave 发表于 2022-1-28 13:26
DISM有自己的转ESD的命令行 体积减少压缩比未压缩的少1G多的用时20几分钟
DISM++估计用了很高的压缩比,但收益非常低,时间成本却加大了不止一点。
DISM自己的默认压缩比似乎比较普通,费时不会那么长。 andyrave 发表于 2022-1-28 13:26
DISM有自己的转ESD的命令行 体积减少压缩比未压缩的少1G多的用时20几分钟
结合你的用例,和我自己的情况,我忽然意识到了卡到不能自理一般是内存用完了的原因,在将内存加到16g之后,dism++在本用例中耗时16分钟,落后wimlib60%,这个差距就比较合理了,在测试中我发现,可能dism的内存占用要高点,所以非常容易用完内存,然后卡到不能自理,这种情况下就算能完成转换也需要几个小时。 求道者 发表于 2022-1-28 16:26
结合你的用例,和我自己的情况,我忽然意识到了卡到不能自理一般是内存用完了的原因,在将内存加到16g之 ...
都是在ADK导出只有命令行的PE下压缩的I7的U电源最高性能 内存全部占满 4.7G 压成ESD 差不多3.2G 二十几分钟 WIMLIB也压过 压出来小点DISM命令行解压出错 这年月内存16刚够及格线,32G其实也不好意思的,64G起才是干正活的…… 厉害 从来没有想过这样压缩
