无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 44302|回复: 42

[讨论] 浅谈WTG辅助工具(wtga)的制作原理

    [复制链接]
发表于 2020-3-23 23:11:30 | 显示全部楼层 |阅读模式
本帖不研究VHD(X)启动。
本帖以默认配置,MBR为例。
制作过程所需要的所有文件,在打开wtga后前往C:\Users\用户名\AppData\Local\Temp\WTGA获得。


一、分区
wtga使用Diskpart来对存储设备进行分区。默认将磁盘前350MB分出一个FAT32活动分区,剩下空间作为NTFS分给Windows。此处不再作多余叙述。

二、部署映像
wtga使用DISM来部署映像。此处再不作多余叙述。
  1. Dism.exe /Apply-Image /ImageFile:"\install.wim" /ApplyDir:X: /Index:1
复制代码


*以上两步操作可使用分区工具、Dism++辅助程序完成。其中X:为WTG所在分区。

三、注入驱动
驱动程序放在Drivers目录下。默认无驱动但会执行此步骤。
  1. Dism.exe /image:X:\ /add-driver /driver:"D:\WTGA\Drivers" /recurse /ForceUnsigned
复制代码

(可选)安装.NET Framework 3.5
该操作需要Windows原版镜像文件才能正常工作。
  1. Dism.exe /image:X: /enable-feature /featurename:NetFX3 /source:D:\boot\Wisxs
复制代码


(可选)屏蔽本机硬盘 及 禁用WinRE
在微软官方指导页面有所提及。 https://docs.microsoft.com/zh-cn/windows/deployment/deploy-windows-to-go
  1. Dism.exe /image:X: /Apply-Unattend:"C:\Users\Username\AppData\Local\Temp\WTGA\san_policy.xml"
复制代码


(可选)为分区使用Bitlocker加密
需要Windows版本支持Bitlocker。提供一张加密后启动Windows时的截图。此处不再作多余叙述。

    ZwvdW.jpg

(可选)禁用UASP
关于UASP的相关内容,请访问 https://bbs.luobotou.org/forum.php?mod=viewthread&tid=12449&fromuid=1 https://bbs.luobotou.org/forum.php?mod=viewthread&tid=12453
官方提供了一键开启/关闭UASP功能的工具。
一般情况下,可通过任务管理器判断是否启用了UASP。这种方法并不准确。参考以上两个帖子。

QQ截图20200323222942.png

wtga提供的方法是在桌面上创建DisableUASPHost.exe,并引导用户双击运行。

(Windows 7限定?)修改注册表
微软默认系统启动后才加载USB设备的驱动,这里修改的目的是记电脑最开始就加载USB驱动,从而才能在U盘上成功运行Windows 7系统。
参考 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413322&extra=page%3D1

(Windows 10 1809+限定)避免启用UASP的设备蓝屏
将1803的WppRecorder.sys覆盖。
参考 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=410994&extra=page%3D1

四、配置启动文件
wtga使用Bcdboot来配置启动文件。
  1. bcdboot.exe X:\windows /s Y: /f all  /l zh-CN  /v
复制代码
该步骤自动完成EFI及传统BIOS下的启动文件配置。其中Y为FAT32分区,用于存放EFI启动文件。
值得一提的是,使用Dism++修复MBR磁盘上的Windows引导时不会自动添加EFI启动文件。

五、配置启动文件后续
wtga通过Diskpart自动完成EFI分区的挂载、写入与卸载工作。此处再不作多余叙述。

为了使EFI分区在WTG上可直接使用资源管理器读写,wtga还需使用Diskpart,SETID命令修改分区ID。
探讨SETID的中文网页少之又少,我只找到该文章有详细叙述。 https://www.iruanmi.com/mbr-and-gpt-partition-type-and-attributes/
  1. 对于MBR分区表  SET ID=07 OVERRIDE
  2. 对于GPT分区表  SET ID=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
复制代码
这项更改便于替换Bootmgr为Grub2或其它启动管理器。

以上为本人看日志看出来的,不完全代表wtga的行为。
制作过程所需要的所有文件,在打开wtga后前往C:\Users\用户名\AppData\Local\Temp\WTGA获得。
以上。

点评

很给力!  发表于 2024-7-17 13:37
用心了  发表于 2024-5-25 21:46
辛苦了  发表于 2024-5-14 09:25

评分

参与人数 4无忧币 +22 收起 理由
yyz2191958 + 2 赞一个!
luotuo001231 + 5 很给力!
zhczf + 5 赞一个!
t5481194 + 10 很给力!

查看全部评分

发表于 2020-3-23 23:20:38 | 显示全部楼层
学习了
回复

使用道具 举报

发表于 2020-3-25 01:33:35 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2020-3-25 01:33:57 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2020-3-25 02:12:48 | 显示全部楼层
首先感谢作者的探索精神!我个人也曾经开贴研究微软WTG的各种效果的根源。不过看现在微软准备彻底放弃WTG了。还有就是好的U盘也挺贵的,就不研究下去了。USB系统个人觉得还是细细哥的好用。等将来出UEFI的RAMOS 应该就可以一统天下了。
回复

使用道具 举报

发表于 2020-4-11 03:35:28 | 显示全部楼层
本帖最后由 sasalemma 于 2020-4-11 03:46 编辑

1.既然用 diskpart 手动分区,那就分区完,格式化完,顺便打上这个

attributes volume set nodefaultdriveletter

这个是选中分区是设置分区默认不获取盘符用。就是WTG当u盘时不显示盘符。

2.如果继续想“手动”屏蔽本机内置磁盘(也就是diskpart中SAN策略,all脱机。)

在dism应用完系统之后,cmd中regedit启动下注册表。文件--加载配置

选择WTG的 \windows\system32\config里的SYSTEM加载,随便起个名字。

然后找到这个路径

起的名字\ControlSet001\Services\partmgr\Parameters

把那个 “SanPolicy” 值改为4

就是所谓的。。。WTG启动后脱机内置的磁盘策略4
注1:大家都说需要在oobe修改,那就顺便再dism应用image后修改下,但实际上启动完系统后还是可以用diskpart或者注册表修改

注册表位置:计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\partmgr\Parameters

diskpart 的话 应该是 san policy=offlineall

注2:WTG第一次启动,如果没有在oobe前,确实不会屏蔽内置的磁盘。

但按注1修改后,再去磁盘管理器,脱机掉本机的磁盘就over了,插别的电脑,会用新的策略。

实际原理是插入新的电脑,windows10等于所谓重新oobe了一次(假装)。

像winpe硬件抽象层问题,重新读取了注册表的san策略导致(个人观点)

3.如果还想继续手动,进系统后,reagentc /disable就禁用RE了

4.如果启动bitlocker,winre会在加密第一次重启是自动disable禁用,u盘启动bitlocker可能需要改组策略,windows组件-bitlocker里面启用没有tpm时xxxxx一类。


回复

使用道具 举报

发表于 2020-4-11 11:59:26 | 显示全部楼层
看来主要都是依靠 dism来实现
回复

使用道具 举报

发表于 2020-4-11 12:09:24 | 显示全部楼层
学习了
回复

使用道具 举报

发表于 2020-4-11 12:10:55 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2020-4-28 09:58:56 | 显示全部楼层
谢谢分享!!!
回复

使用道具 举报

发表于 2020-5-4 14:36:07 | 显示全部楼层
谢谢了,mark
回复

使用道具 举报

发表于 2021-12-30 08:44:19 | 显示全部楼层
谢谢楼主的分享。
回复

使用道具 举报

发表于 2022-1-11 20:25:21 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2022-2-7 21:45:01 来自手机 | 显示全部楼层
学习了,谢谢分享
回复

使用道具 举报

发表于 2022-2-9 21:10:52 | 显示全部楼层
学习了,感谢楼主分享
回复

使用道具 举报

发表于 2022-2-9 21:22:21 | 显示全部楼层
很好,关于引导处理用bcdboot确实方便
回复

使用道具 举报

发表于 2022-3-17 09:53:52 | 显示全部楼层

谢谢楼主分享
回复

使用道具 举报

发表于 2022-5-13 20:46:06 来自手机 | 显示全部楼层
WTG虽然被微软放弃了,但对我来说用处很大,带去电脑课简直不要太爽
回复

使用道具 举报

发表于 2022-5-22 13:41:49 | 显示全部楼层
很详细的教程,学习了~
回复

使用道具 举报

发表于 2022-10-21 10:20:27 | 显示全部楼层
有点迷惘,但还是要支持一下。
回复

使用道具 举报

发表于 2022-11-26 08:34:13 | 显示全部楼层
感谢分享!!!!
回复

使用道具 举报

发表于 2022-11-27 06:06:41 | 显示全部楼层
多谢分享,学习一下。
回复

使用道具 举报

发表于 2022-11-28 10:35:27 | 显示全部楼层
谢谢楼主分享,辛苦了!!!
回复

使用道具 举报

发表于 2023-2-24 20:32:37 | 显示全部楼层
先学习学习
回复

使用道具 举报

发表于 2023-3-5 20:33:37 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2023-4-27 13:31:23 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2023-5-12 13:31:58 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 2023-5-15 16:04:30 | 显示全部楼层
电脑出厂默认启动?
回复

使用道具 举报

发表于 2023-5-23 14:56:13 | 显示全部楼层
学习了,谢谢分享
回复

使用道具 举报

发表于 2023-5-23 15:08:57 | 显示全部楼层
学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-22 13:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表