本帖不研究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 (462.53 KB, 下载次数: 103)

2020-3-23 22:15 上传



(可选)禁用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 (34.23 KB, 下载次数: 106)

2020-3-23 22:32 上传



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获得。
以上。