|
我密集探索wimboot_vhd系统制作和安装的时期是在去年2月份(春节后疫情封控期间),离现在时间比较长了,当时记录了一些日志,你可以看一下,我当时的结论可能有些到现在已经过时了,但当时我大量的试验得出了wimlib有些兼容性问题,你可以看一下我的详细日志,如下:
【2021年2月5日 09:01:48】新技术,值得记录。几乎完整的记录及相关技术文件、软件都在附件中。除了没有PE。
1、这几天在xx的SONY本子加上Intel SSD X25 160G上疯狂试验了wimboot_VHD系统,也就是使用wimboot技术的vhd系统。取得了重大进步。
2、同时系统的试验了WinntSetup、wimlib、dism++、chenall的NTBOOT直接启动VHD系统、wintoflash的ntloader + initrd.lz1启动VHD系统等新技术和新功能。
3、关于wimboot_vhd系统制作,直接结论:
安装基于wimboot的VHD系统,经过以上试验,目前得出的结论是:首先要在PE下操作(成功案例都是在D0z的10PE下,其他PE需要进一步测试,经测试,我的CCF WIN7PE也没有问题),其次必须使用chenall提供的WinntSetup 3.7.9版本(试了两个新版的都不行),第三,恢复时,必须使用wimlib,不能使用wimGAPI。第四:让winntsetup更新分区引导代码及BCD文件,并使用Windows自己的引导扇区引导bootmgr进入系统安装,在安装成功前不能使用grub4dos加载bootmgr,否则系统安装过程中会失败。安装成功后,可以使用grub4dos加载bootmgr。也可以使用NTBOOT直接加载对应的VHD文件(但这样貌似不能加载软激活的w7twmc文件)。
编辑BCD,推荐使用bootice 1.3.4版本。
4、关于支持wimboot的wim文件的制作,推荐使用dism++,兼容性好,体积小(不需要再尝试其他的手段,已经都试过了)。而wimboot_vhd系统的部署,就只推荐使用chenall提供的winntsetup_v3.7.9+wimlib方式。当然,用dism++也可以正常部署,但部署出来的vhd文件比实际内容占用空间大2个G左右。
5、关于ntboot直接启动vhd系统,有时候会遇到error 27,原因莫名其妙。
在使用NTBOOT直接启动vhd文件时,会出现error 27:Unrecognized command(不认识的命令?),我手工输入命令行试过了,就是这一行“command %NTBOOT% NT6=/wimboot/W7TWMC/W7TWMCwib10.vhd”出错误,在前面使用ntboot启动W7TCHx64的vhd时也出现过类似错误,问题是大部分时候使用NTBOOT启动vhd系统都是成功的,我觉得这应该属于NTBOOT的bug。
title 01bad.Windows 7 Ultimate x86 TWMC wimboot@VHD by NTBOOT
find --set-root /boot/ntboot/NTBOOT && set NTBOOT=/boot/ntboot/NTBOOT
find --set-root /wimboot/W7TWMC/W7TWMCwib10.vhd
command %NTBOOT% NT6=/wimboot/W7TWMC/W7TWMCwib10.vhd
savedefault
# 不知什么原因,下面这一条启动总是报错,莫名其妙啊。
title (???bad)Windows 7 Ultimate x64 TWM+Chenall wimboot@VHD by NTBOOT
find --set-root /boot/ntboot/NTBOOT && set NTBOOT=/boot/ntboot/NTBOOT
find --set-root /wimboot/W7x64/W7TCHx64wib10.vhd
%NTBOOT% NT6=/wimboot/W7x64/W7TCHx64wib10.vhd
然后试着使用grub4dos + bootmgr + BCD方式启动该vhd却一切正常。
再然后使用grub4dos + wintoflash_ntloader+initrd.lz1 + VHD方式也启动正常,菜单如下:
title 0.Windows 7 Ultimate x86 TWMC wimboot10@VHD by wintoflash ntloader
find --set-root /wimboot/W7TWMC/W7TWMCwib10.vhd && set vhdroot=%@root%
uuid %vhdroot%
kernel /boot/ntloader uuid=%?_UUID% file=/wimboot/W7TWMC/W7TWMCwib10.vhd
initrd /boot/initrd.lz1
savedefault
==========================================================
以下是整个试验的完整记录文件:D:\wimboot\W7TCH_wimboot+VHD_Action_log_by_xyf.txt
==========================================================
Windows 7 Ultimate x64 (WimBoot) (VHD)
\wimboot\W7TCHx64wib.vhd
D:\wimboot\wibW7TCH.wim
D:\wimboot\W7TCHx64wib.vhd
D:\Boot\BCD
【试验】尝试用chenall的方法安装基于wimboot的w7x64系统到vhd。这已经是N次试验失败后的某次尝试,这次尝试记录失败过程。
1、【2021年2月3日 17:56:18】
安装环境: w7twmc(wimboot+vhd)
winntsetup: chenall的。
操作前先删除原来的vhd文件,使用Winntsetup新建一个25G的vhd文件。在删除bcd文件中的启动项时,发现当前系统正在使用BCD。
注册表优化。
使用bootsect更新引导代码+bios
结果:wimlib_Extract_image 0x4B错误,所以没能恢复成功。
2、【2021年2月3日 18:06:14】
安装环境: w7twmc(wimboot+vhd)
winntsetup:使用WinNTSetup_v4.2.3_Final_x86-x64(标题栏右键菜单选择wimlib,不是默认的wimGAPI)。
使用前一次的vhd文件,用windows快速格式化一下。这次不用动BCD(里面对应的启动项目已经删除)。
注册表优化。
使用bootsect更新引导代码+bios
结果:wimlib_Extract_image 0x4B错误,所以没能恢复成功。现在怀疑是不是因为安装环境的问题,因为以前同样的操作在10PE是可以成功的。
3、【2021年2月3日 18:13:23】安装w7x64系统,vhd文件25G。
基本同上,只不过wintsetup使用默认的wimGAPI。
结果:应用映像失败,0x57错误。参数错误。看来可能确实跟操作环境有关系。
4、【2021年2月3日 19:27:25】安装w7x64系统,vhd文件25G。
安装环境: 10PE@D0z
winntsetup: chenall的3.7.9(标题栏右键菜单选择wimlib)。
使用前一次的vhd文件,用windows快速格式化一下。这次不用动BCD(里面对应的启动项目已经删除)。
注册表优化。
使用bootsect更新引导代码+bios
结果:成功恢复没有报错。重启后通过bootmgr引导成功进入系统。
分析:与第一次操作比较,主要换了PE这个环境。另外,初次安装时不要使用grub4dos引导boogmgr,而是使用windows自己的引导扇区引导bootmgr比较好。
5、【2021年2月3日 19:32:06】尝试与4同样的环境下安装w7x86系统。其他条件不变化,将vhd文件缩小到3G。
wimboot base wim: c:\wimboot\wibW7TCH.wim
vhd file(3G):c:\wimboot\W7TCHx86wib.vhd (512M)
结果:恢复成功,启动效果待验证。这个最后安装成功。
6、【2021年2月3日 19:44】尝试与5同样的环境下安装w7x86系统。其他条件不变化,change winntsetup to 4.2.3 version and use default wimGAPI。
wimboot base wim: c:\wimboot\wibW7TCH.wim
vhd file(3G):c:\wimboot\W7TCHx86wib1.vhd (1.2G)
结果:恢复成功,启动效果待验证。这个出现00C2蓝屏错误,就是前面频繁出现的错误。看来关键还是winntsetup或者是wim lib版本问题。
7、【2021年2月3日 19:59】尝试与6同样的环境下安装w7x86系统。其他条件不变化,winntsetup 4.2.3 and use wimlib。
wimboot base wim: c:\wimboot\wibW7TCH.wim
vhd file(3G):c:\wimboot\W7TCHx86wib2.vhd (635M)
结果:恢复成功,启动效果待验证。这个出现00C2蓝屏错误,就是前面频繁出现的错误。看来关键还是winntsetup version.
8、【2021年2月3日 20:12】尝试与5同样的环境下安装w7x86系统。其他条件不变化, Only vhd file name changed。
wimboot base wim: c:\wimboot\wibW7TCH.wim
vhd file(3G):c:\wimboot\W7TCHx86wib3.vhd (230M)
结果:恢复成功,启动效果待验证。这个成功启动并安装完成。这说明跟文件名变化无关。
9、【2021年2月3日 20:12】尝试与5同样的环境下安装w7x86系统。其他条件不变化,winntsetup 3.7.9 and use wimGAPI(default)。
wimboot base wim: c:\wimboot\wibW7TCH.wim
vhd file(3G):c:\wimboot\W7TCHx86wib4.vhd (1G)
结果:恢复成功,启动效果待验证。从文件大小观察,凡是使用wimGAPI恢复的vhd文件都要比wimlib的大上很多,而启动失败的wimlib恢复的vhd文件则比成功的要大。
不出预料,这个启动失败,而且是提示Winload.exe错误,无法验证数字签名。
10、【2021年2月3日 20:26】尝试与6同样的环境下安装w7x86系统。其他条件不变化,winntsetup 4.0.1(10PE自带) and use wimlib。
wimboot base wim: c:\wimboot\wibW7TCH.wim
vhd file(3G):c:\wimboot\W7TCHx86wib5.vhd (645M)
结果:恢复成功,启动效果待验证。这个出现00C2蓝屏错误。
安装基于wimboot的VHD系统,经过以上试验,目前得出的结论是:首先要在PE下操作(成功案例都是在D0z的10PE下,其他PE需要进一步测试),其次必须使用chenall提供的WinntSetup 3.7.9版本(试了两个新版的都不行),第三,恢复时,必须使用wimlib,不能使用wimGAPI。第四:让winntsetup更新分区引导代码及BCD文件,并使用Windows自己的引导扇区引导bootmgr进入系统安装,在安装成功前不能使用grub4dos加载bootmgr,否则系统安装过程中会失败。安装成功后,可以使用grub4dos加载bootmgr。也可以使用NTBOOT直接加载对应的VHD文件(但这样貌似不能加载软激活的w7twmc文件)。
11、[2021年2月3日22时12分13秒]在使用wimlib-imagex append f:\ d:\wibW7TCH.wim W7TCHx64wibx0 W7TCH_x64_Wimboot_Xyfv0 --wimboot将第一个安装好的W7TCHx64追加到wim文件之后,下面的试验要基于这个追加的映像制作wimboot_vhd系统(进一步减小vhd文件的体积),这次拟将vhd文件设置为9个G。
操作环境:10PE@D0z,WinntSetup 3.7.9 from chenall and wimlib.
wimboot base wim: c:\wimboot\wibW7TCHx1.wim
vhd file(9G):c:\wimboot\W7TCHx64wib10.vhd
12、【2021年2月4日 12:43:46】试验将在小新13机器上安装在Vmware 15中的W10LTSCTWMLite版本的VHD转换成wimboot+vhd格式,以减少空间占用。首次涉及到了Win10系统的wimboot + vhd系统制作,首先是一个wim文件的生成问题,再一个就是wimboot系统部署的工具问题。
***各wimboot base wim文件简要文明
1)、wibk0W10LTSCTWM.wim
W10 LTSC x64 TWMLite by WimKit(WIMGAPI)
这个使用WimKit + wimGAPI制作的wim文件(还是最高压缩)是4.4G,没有保留的价值。
2)、dism++制作的wib0W10LTSCTWM.wim是3.6G,已经证明与wimboot兼容。
3)、wib1W10LTSCTWM.wim是3.5G,使用chenall的wimboot 2.5制作,采用LZX 32K压缩。但仅仅比Dism++的小0.1G。可能还面临wimboot不能成功的危险,印象中第一次试验使用的就是wimboot 2.5制作的,没有成功。果然在使用winntsetup 3.7.9部署系统时说“Windows源无效”。
***关于win10系统wimboot+vhd部署的阶段性结论:
1) chenall的wimboot 2.5只适合用于制作win7(可能也包括win8)的wim文件,至少目前证明与win10是不兼容的。
2) win10系统的wim(wimboot兼容)制作,推荐使用dism++的“系统备份”功能,默认它应该是使用wimGAPI方式,采用最大压缩选项,速度很慢,但wim文件体积比较小(大于solid固实模式),也与wimboot兼容,但使用wimlib的info查看wim文件,并不显示与wimboot兼容。另外,也可以考虑使用wimlib的wimcapture --wimboot方式制作wim文件,大小与GAPI方式差别不大。
3)关于wimboot + vhd系统的部署,推荐还是使用chenall的winntsetup 3.7.9,这个制作出来的vhd文件最小。用dism++也可以成功部署,就是部署出来的vhd文件要大10倍左右。当然,这个还需要进一步测试。
13、[2021年2月4日18时11分52秒]尝试将Windows 2008 R2的VHD转成wimboot+vhd模式,然后就发现Windows 2008 R2不支持wimboot。
14、[2021年2月4日18时12分39秒]继续尝试将W10Px64_20H2_SLLite(由山里来极限精简的W10Px64 20H2系统,同样先安装在Vmware workStation 15中,然后由DiskGenius将vmdk转成vhd,支持bootmgr+bcd 和grub4dos + NTBOOT两种启动模式,最终精简后的VHD文件为7.2G)制作成wimboot_vhd系统。
一、wim文件的制作:
将D:\OS.VHD\W10Px64H2SLLi.vhd使用bootice挂载(在win10系统下双击vhd可以直接挂载,然后使用dism++ 或者 wimlib-imagex制作 wimboot兼容的wim文件。
1)D:\wimboot\W10Px64H2SLLi\wibd0W10Px64H2SLLi.wim,使用dism++制作的wim文件,2.6G。
2)D:\wimboot\W10Px64H2SLLi\wibL0W10Px64H2SLLi.wim,使用wimlib-imagex制作的wim文件(命令行如下),3.3G,大于2.6G,已知dism++制作的wim兼容于wimboot,所以这个就没有意义了,删除。
D:\wimboot\WibTools\wimlib-1.13.3-windows-x86_64-bin\wimcapture.cmd e:\ C:\wimboot\W10Px64H2SLLi\wibL0W10Px64H2SLLi.wim wibL0W10Px64H2SLLi W10Pro_x64_20H2_SLLite_wimboot_wimlib0 --wimboot
3)D:\wimboot\W10Px64H2SLLi\wibL1W10Px64H2SLLi.wim,使用wimlib-imagex制作的wim文件(命令行如下),2.3G,这大概是wimlib常规压缩的最大状态了(压缩时间特别长,内存占用特别大),再进一步压缩就是LZMS(recovery)模式,即wimlib的solid(固实)模式。但不知道这种格式是否与wimboot兼容,需要进行实际测试。[22:00]最终结论,wimlib这种最高压缩形式的wim无法兼容于wimboot启动,甚至用dism++都无法正常打开,放弃这种wim制作方式。
D:\wimboot\WibTools\wimlib-1.13.3-windows-x86_64-bin\wimcapture.cmd e:\ C:\wimboot\W10Px64H2SLLi\wibL1W10Px64H2SLLi.wim wibL1W10Px64H2SLLi W10Pro_x64_20H2_SLLite_wimboot_wimlib1 --wimboot --compress=LZX:100 --chunk-size=2M
其中--compress参数,LZX:100是wimlib专用参数格式(跟WimGAPI及dism不兼容),通用格式应该是--compress=maxmium。
二、wimboot_vhd系统的部署:主要使用两个工具:WinntSetup_v3.7.9_chenall(简称NTSetup379),另一个是dism++ 10.1.1001.10.1(目前最新版,2020.01.18版本)。
1) 基于D:\wimboot\W10Px64H2SLLi\wibd0W10Px64H2SLLi.wim(2.6G)部署
|
|