专栏首页CVM技术交流利用 WimBuilder2 最新稳定版 DIY Win10PE
原创

利用 WimBuilder2 最新稳定版 DIY Win10PE

WimBuilder2后来者居上,支持制作Win10 RS5(1809)、19H1(1904)、19H2(1909)、20H1最新版的x86、x64 PE,我个人觉得很赞。

Project地址:https://github.com/slorelee/wimbuilder2

它的发布有个特别有意思的地方

v2019.10.10

v2019.11.11

v2019.12.12

v2020.01.01

2月新冠疫情没有发版

v2020.03.03

v2020.04.04

v2020.05.05

v2020.06.06

v2020.07.07

首先,下载好win10镜像

我用的msdn.itellyou.cn找的19H2(v1909)win10 x86 2020年1月update版

然后下载WimBuilder2最新稳定版

https://github.com/slorelee/wimbuilder2/releases

http://hello.wimbuilder.world/hello/download

运行WimBuilder.cmd,找到装载镜像后的sources路径,里面有install.wim,会自动识别,你只要把sources路径指定正确就行,后面的的install.wim和winre.wim都是自动识别,只需要你选下install.wim的版本,我选的4,4 是专业版

选好后点next

到这个界面先给复选框打勾,然后点next

接下来这一步根据自己的需要操作,预设是“默认”,我选了“全功能”

配置这里不要选,选了全功能后这里默认就是留空的,意味着会自动加载注册表、.bat中会修改文件和注册表、自动卸载wim文件,这正是我们需要的傻瓜式方案,所以不能勾选

自定义软件这里不知道WimBuilder2是如何处理,暂时略过

自定义驱动这里不知道WimBuilder2是如何处理,暂时略过

最后看一下首、尾的选择:

【首】

私人定制这里可以选一下

上图勾选的2个东西就是这个功能

【尾】

zz-ISO这里勾选下加载进度条,不要勾选Press any key

阶段性总结一下:选“全功能”很省事,只需要自己选下首尾就可以了,其他保持默认不要动。

以上提到的各点选好后点击next如下图先勾选“构建后立即创建ISO”,然后点“1-构建(日志)”,也可以先不勾选“构建后立即创建ISO”分第1步、第2步操作,分别点下图中的“1-构建(日志)”和“2-创建镜像”按钮,点了“1-构建(日志)”等完全结束后再点“2-创建镜像”。

耐心等待完全结束

过程中出现了一个报错,暂时忽略

正在自动commit提交更改,耐心等待完全结束

好事多磨,临最后出现了个意外如下

点确定后啥也没干就生成了BOOTPE.iso并显示了路径,目测大小700多M。能不能用暂时还不知道,一会儿看我测试的结果吧(刚才的弹窗都告诉了“无法创建可启动的ISO镜像”,也就是说最后创建成功的ISO镜像是不可启动的)。

测试的话是用EasyBCD添加ISO文件到启动菜单(我选的从内存加载)

添加好后选左侧的“编辑引导菜单”设定开机菜单的选择方式,可以等一定秒数自动进入默认菜单项,也可以不自动进入就一直等待用户手动选择进哪个菜单项

开机时选择刚添加的启动菜单进入查看效果

耐心等待加载完成,最后的结果呵呵了,就是不能启动

此时不要灰心,ISO不可启动不假,但没说之前生成的boot.wim不能启动呀,boot.wim在_Factory_\target\WIN10XPE\build\ 目录下

依然用EasyBCD,这次是添加WIM文件boot.wim到启动菜单

虽然能启动了,但是报了个莫名其妙的错,看起来跟IE有关。实测WinPE集成IE的效果很差,下次生成的时候不勾选IE试试,不选IE的话找个替代品--QTWeb,在后面挂载boot.wim添加驱动的时候顺便把QTWeb放到“挂载目录\Users\Public\Desktop\ ”即可

进入WinPE系统后,驱动并没有被集成,看不到硬盘、也没有网,看来还是需要手动执行加载驱动。

注意需要是Win10版的dism命令才行,win7的dism不行。

我把boot.wim挂载到了c:\pbtemp目录:

dism /mount-image /imagefile:"这里填boot.wim的绝对路径" /index:1 /mountdir:"c:\pbtemp"

注意创建空目录c:\pbtemp后给该目录设置Administrator和Everyone的所有权限,然后在Administrator用户登录状态下执行如下命令加载好所有驱动(驱动是在kvm官网下载的)

1、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\balloon.inf" /forceunsigned

2、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\netkvm.inf" /forceunsigned

3、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\pvpanic.inf" /forceunsigned

4、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\qemufwcfg.inf" /forceunsigned

5、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\qemupciserial.inf" /forceunsigned

6、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\qxldod.inf" /forceunsigned

7、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\vioinput.inf" /forceunsigned

8、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\viorng.inf" /forceunsigned

9、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\vioscsi.inf" /forceunsigned

10、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\vioser.inf" /forceunsigned

11、dism /add-driver /image:"c:\pbtemp" /driver:"C:\Users\Administrator\Desktop\x86\viostor.inf" /forceunsigned

加载驱动后执行commit提交更改

dism /unmount-image /mountdir:"c:\pbtemp" /commit

后记:

我后来把上面遇到的几个问题都解决了,遇到的其他问题也都解决了

问题1、报找不到MLANG.dll的问题(后来还发现在winpe运行diskgenius/partitionguru时报缺少oledlg.dll),这些都是因为我用了sources目录的boot.wim没用自动识别出来的winre.wim的缘故,后来我用了自动识别出来的winre.wim就不报缺少MLANG.dll和oledlg.dll了

问题2、自定义绿色软件放在哪里?放在\vendor\_PEMaterial_\PortableApps里

我在\vendor\_PEMaterial_\PortableApps里面放了很多绿色软件

这些绿色软件的快捷方式,我指定的路径是%systemroot%\PEMaterial\PortableApps\绿色软件目录名\.exe文件名,把快捷方式放到了\Projects\WIN10XPE\X\Users\Public\Desktop目录,这样运行WinPE后在桌面就能看到快捷方式了,效果图如下

上图有网是因为我集成好了虚拟化网卡驱动

问题3、云服务器上使用WinPE的话需要kvm虚拟化驱动如何加载?我是通过dism /mount-image命令挂载后再用dism /add-driver命令集成驱动的,这一点前面已经提到

问题4、生成可启动的ISO出错怎么解决?

删除_ISO_目录里的所有文件,然后把win10光盘根目录里的boot目录、efi目录、bootmgr文件、bootmgr.efi文件拷贝到_ISO_目录,如下图所示,当然sources目录也是要的,只不过需要sources目录为空,这样在生成ISO时就不会出错了。生成一次后,下次还想生成ISO文件的话需要手动复位一下,原因是_ISO_\boot目录里的bootfix.bin被重命名为bootfix.bin.bak了,如果你不把bootfix.bin.bak重命名回bootfix.bin,会报错找不到文件。

问题5、由于我加的绿色软件太多导致最终生成的ISO文件达到900多M,2GB内存的机器,跑起这个WinPE后内存利用率达到了70%,差不多1.5G的内存被用了,也就是说如果我选择加载这个900多M的ISO到内存运行,意味着存储+运行总共需要大约1000MB+1500MB≈2.5G内存,此时1G内存、2G内存的机器通过内存运行的方式跑WinPEt会出现花屏或者黑屏或者其他各种不符合预期的情况。目前看,2G内存的机器,通过硬盘加载的方式是可以运行的,因为存储的1G空间省了,内存2G只用1.5G,所以硬盘加载的方式没有问题。

问题6、进入WinPE后taskbar上有个重启/关机的快捷图标,我真觉得特别别扭,后来我研究了代码,找到了出处,就是在生成好boot.wim后,手动执行dism /mount-image命令挂载出来,找到PEMaterial\Autoruns\Startup\00-InitPinIcons.lua用记事本打开,把里面关于UI_shutdown的那句话删掉即可

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 能显示Windows系统信息的一些命令

    wmic os get caption,version,buildnumber /format:list

    我爱你的一诺
  • 以1个具体接口为例来展示腾讯云.NET SDK的使用

    【.NET Core和ASP.NET Core】是什么,它们跟【.NET Framework和ASP.NET】的区别是什么,为什么要选用前者

    我爱你的一诺
  • Windows 邮箱服务器 WinWebMail Server 配置过程

    配置邮箱服务器之前需要解封25端口,只支持包年包月机器,不支持按量机器https://console.cloud.tencent.com/secctrl/smt...

    我爱你的一诺
  • Docker 日志管理

    用户5760343
  • 碎片化 | 第四阶段-41-struts2字节流生成验证码-视频

    如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/r056700jckx.html 验证码实现 需求: 在登录的页面,增...

    码神联盟
  • idea new project from github

    on update action 选择update classes and resources 可实现热部署,修改代码后点击刷新按钮,即可生效

    week
  • 能显示Windows系统信息的一些命令

    wmic os get caption,version,buildnumber /format:list

    我爱你的一诺
  • 新闻动态|我们把“火锅”搬到了2019ADM现场,优图VisionSeed互动游戏首秀

    五花八门的艺术装置、脑洞大开的设计新作、沉浸式体验空间……10月31日,一场妙趣横生的高颜值展览——ADM亚洲设计管理论坛暨生活创新展在杭州开幕。

    优图实验室
  • Go http服务器

    用户5760343
  • DarkNet(2)--修改Python调用接口,支持输入numpy图片

    DarkNet源码中提供的接口,用Python处理一张图片的时候,只能传入图片路径,见python/darknet.py的demo。

    对角巷法师

扫码关注云+社区

领取腾讯云代金券