朱玛 发表于 2019-5-9 20:18:48

【技术实战】在exFAT分区中安装并启动Windows系统

本帖最后由 朱玛 于 2021-7-23 11:03 编辑

你知道吗?早在遥远的2010年,微软就已经引入exFAT启动了。
早期的时候微软只将exFAT文件系统应用于数据存储卷,后来随着Windows 8操作系统在启动技术的革新上为其带来了可启动exFAT卷特性使引导系统成为了可能。
作为全网研究exFAT启动各版本Windows的第一人,我曾经为研究这个专门写过一个测试帖:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=388226&mobile=no
这是Windows系统中的一个不为人知的隐藏功能,就连微软官方也从未提及过任何相关信息。在此之前大家普遍认为exFAT不能用作系统盘运行系统,但现在这都将成为历史。
早在多年前我就发现了并专门针对这个做了大量的研究与测试,其中解决了不少小问题但也遇到了一个始终无法解决的大问题,而就在前段时间我彻底攻克了exFAT启动Windows系统的最大难题,从而宣告正式将其应用于日常使用环境。
而这次我决定首次对外公开发布完整的超详细图文安装教程,从而揭开这一神秘而又惊奇的新功能。

个人日用主力机磁盘分区预览截图


exFAT带来的新特性
优化卷位图管理及页块分配,提高闪存类存储介质读写速度
无卷日志纪录,减少闪存读写操作次数以延长其使用寿命
无权限管理机制默认即为最高权限,管理系统文件不再报权限不足错误
Windows To Go配合Mac和Linux等平台拥有更强的交互能力以及更为广泛的兼容性
允许分配更大的簇以提升IO性能
支持TFAT保护机制(仅Win8)
支持ECC校验和(仅元数据)

WTG使用exFAT的特色优化
显著提高4K写入速度普遍低于1MB/S的普通U盘WTG系统流畅性

注意事项
exFAT启动仅支持Windows 8及以上版本的系统,Windows 7及以下版本的系统不支持exFAT启动不用再去试了。
exFAT安装并启动Windows系统建议配合固态硬盘或U盘等闪存盘使用,传统的机械硬盘除非特别有需要否则并不推荐。
为保证启动效率建议2016年及以前生产的电脑优先使用Legacy引导,2017年及以后生产的电脑优先使用UEFI引导,旧电脑UEFI引导启动时间普遍会比BIOS略长(新电脑则会正好相反,对于处在临界点的电脑需要自行测试才能确定结果),如果要使用UEFI引导建议关闭安全启动(虽然不关也能完成启动,但会显著降低启动效率)。
为保证启动效率以及系统版本兼容性,建议以传统模式安装系统,如果一定要使用VHD(X)模式安装系统(较慢)请参考:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414354&mobile=no
对于无ESP单分区exFAT UEFI启动方案可参考此帖:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=409768&mobile=no
对于FAT12/16/32文件系统启动各版本Windows系统可参考此帖:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414470&mobile=no
高版本的64位系统还需要手动替换一次已签名的exFAT驱动(适用于Win8 RTM到Win10 v1909,对于Win10 v2004及更高版本的系统则不再需要替换驱动),否则启动时间就会非常长(实测Win10不替换驱动开机两个小时,替换驱动开机20秒),对于32位系统则都没有这种问题,该问题的具体原因可参阅:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414353&mobile=no
高版本的系统启动时间总会比低版本的系统略长,对于特别在意开机速度,对这个有强迫症的同学请使用低版本系统启动(最低7850)。
虽然exFAT在启动时间上可能会稍长一点,但在进入系统后的运行速度并不慢。
实际上这是Windows启动管理器对exFAT启动的优化不到位导致的,不过倒是可以用一种特殊方法来加速启动。
本帖以x64架构的平台为基准,提供的已签名exFAT驱动仅适用于x64系统,对于特殊的Win10 ARM64系统请使用专用驱动:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=415255&mobile=no
对于基于ARM32平台的Windows RT系统请使用专用驱动:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420563&mobile=no
对于Windows PE系统盘X盘使用exFAT文件系统,请参考此教程:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=421466&mobile=no
对于使用ReFS文件系统启动各版本Windows系统可参考此帖:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=426202&mobile=no

安装思路
由于微软的Sysprep一直都存在一个Bug,因此原版系统直接安装到exFAT分区在启动时会卡在系统OOBE界面报错无法完成初始化。
而正确的安装方法是先在NTFS分区中安装好系统并手动完成OOBE初始化阶段进入桌面,之后在WinPE下将整个系统打包备份为WIM或ESD文件后(不能使用GHOST)再解压释放到exFAT分区中启动即可。
对于已经安装好且现有能用的系统,可以直接在WinPE下备份WIM/ESD后将原NTFS卷格式化为exFAT再释放系统文件即可测试启动,如果遇到了问题也可以手动完全还原回测试之前的状态。

准备工具
MSDN原版系统下载:http://msdn.itellyou.cn
微PE工具箱下载:http://www.wepe.com.cn/download.html
64位系统专用exFAT驱动:
论坛直接下载:

腾讯微云下载:http://share.weiyun.com/5Cw73QR

百度网盘下载:http://pan.baidu.com/s/11DIj4vTvE6lA-Ah7NhZKdQ

操作步骤
1、下载要安装的Windows系统镜像,这里以使用最新的Windows 10 v1903 64位版本为例,如果已经下载可跳过此步。
建议选择最新版的Windows系统,它能够原生支持exFAT+VHD(X)启动。

2、下载Windows PE维护系统,这里以使用最新的微PE工具箱 v2.0 64位版本为例,如果已经下载可跳过此步。
建议选择最新版的微PE工具箱,它能够原生支持NVMe磁盘。

3、全部下载完成后会得到如图三个文件,注意不要把这些文件放在系统盘(以下均简写为C盘)内。

4、打开你下载的WePE.exe安装包文件,如果手头有可用的U盘建议右下角点击安装到U盘,没有的直接安装到硬盘即可,如果已经安装到硬盘或制作过U盘启动盘的可跳过此步。
制作启动盘时可根据自己的需要调整方案和设置,如果没有异议或看不懂的直接以默认方式一键安装即可。

5、在电脑开机时快速连按主板的快捷启动键显示选择带有U盘名的启动项并回车启动,或者通过硬盘开机启动菜单↑↓选择带有Windows PE的启动项并回车进入,如图现在将进入PE桌面。
对于U盘启动问题各主板厂商预设的快捷键不同,具体请自行百度或者自己挨个试。

6、找到你下载的.iso系统镜像文件,右键装载或者直接双击该文件即可快速挂载为虚拟光驱。
对于已经安装好且现有能用的系统可跳过6-13步,直接从第14步开始操作。

7、备份转移好C盘内重要文件,然后运行PE桌面上的“Windows安装器”,在“安装磁盘的位置”处确定选择为“C盘”,点击右侧的"F"按钮打开格式化窗口,确定“文件系统(F)”选择为“NTFS”,“分配单元大小(A)”选择为“4096字节”,点击“开始(S)”格式化等待完成后确定“关闭(C)”。

8、定位到“选择包含Windows安装文件的文件夹”项点击“选择”按钮,在弹出窗口中找到刚才挂载的“虚拟光驱盘符:\sources\install.wim”文件并点击“打开”按钮完成选择。定位到“选择引导驱动器”项点击“选择”按钮将弹出打开窗口,对于Legacy+MBR组合需找到“活动分区”(一般为C盘)并点击“选择文件夹”按钮完成选择;对于UEFI+GPT组合需找到“ESP分区”(运行WinNTSetup后自动挂载出来的盘)并点击“选择文件夹”按钮完成选择。定位到“安装磁盘的位置”项点击“选择”按钮,在弹出窗口中找到“C盘”并点击“选择文件夹”按钮完成选择。在选项区域中点击“版本:”下拉菜单根据需要自行选择,这里将以“Windows 10 专业版”为例,选择好后如果检查了没有问题就点击“开始安装”按钮继续下一步操作。
对于“优化调整》》》”等其他选项懂的可以自行设置,不懂的则不要设置。

9、如图将弹出“都准备好了吗?”提示框,此时无特殊情况一般不修改设置直接点击“确定”按钮即可。

10、请耐心等待“应用Windows映像文件”绿色进度条走满,此步所需时间视电脑配置高低而定。

11、当弹出“已完成!”提示框时直接点击“重启”按钮即可,如果此时系统不能重启请手动打开“开始菜单”并点击“重启”按钮完成重启操作。
记得拔出U盘等不必要的设备~~

12、请耐心等待系统OOBE阶段初始化完成,并自行完成进入桌面之前的配置工作。

13、当成功进入系统桌面后稍等一会即可重启再次进入WinPE系统,但我强烈建议在这期间先自行优化一些系统设置(如WU打齐更新补丁和预先安装好各运行库以及个人常用软件等)再重新进PE。

14、进入PE系统后解压下载的“exFAT驱动.zip”压缩包文件,然后根据你安装的系统版本选择并打开对应的文件夹(这里为19H1 RTM即对应版本18362),再将其中的“exfat.sys”文件复制粘贴到“C:\Windows\System32\Drivers”文件夹内并替换掉原文件。
注意此操作仅适用于安装的是64位系统(该操作为核心步骤必做,否则系统启动时间将会非常长),如果安装的是32位系统请跳过此步。
补充:微软已在Win10 20H1及更高版本的系统中为exfat.sys加入了内置数字签名,对于这些版本的32位和64位系统都不再需要替换驱动请跳过此步。

15、点击并打开 开始菜单→所有程序→备份还原→WIM映像处理工具。
这里以使用WimTool为例,对于处理WIM/ESD文件也可以使用Dism或Dism++等工具完成操作。

16、点击“新制和追加”选项卡,在“选择要制作成WIM映像的源目录”处点击“浏览”按钮,选择“整个C盘”并点击“确定”按钮。在“选择保存WIM映像的文件名”处点击“浏览”按钮,选择点击“除C盘外”的其他盘可在任意目录输入自定义文件名并点击“保存”按钮。在选项区域中的“压缩类型”下拉菜单选择为“最大压缩”。在选项区域中的四个“文本框”内可以自由设置备注信息或者直接留空即可。选择好后如果检查了没有问题就点击“新建映像”按钮继续下一步操作。
注意对于压缩类型选项请根据实际情况量力而行,该操作对处理器的性能要求较高,如果电脑配置较低此项耗时会比较长,为保证最佳效率我个人推荐:酷睿i9/i7选择最大压缩;酷睿i5/i3选择快速压缩;奔腾/赛扬选择没有压缩。

17、请耐心等待WIM映像打包封装完毕,此步所需时间视电脑配置高低而定。

18、当绿色进度条为“100%”并在提示信息框内显示“制作映像文件:完成”时即可进行下一步操作。

19、点击并打开 开始菜单→命令提示符,注意空格输入“Format C: /FS:exFAT /Q /A:4096”不包含引号并按下Enter回车键,当提示是否继续格式化时按下“Y”键并回车,当提示设置卷标时可自行设置或直接回车留空,当提示格式化完成信息后此时C盘已成功格式化为exFAT文件系统。
这里以系统自带的CMD命令行将本地磁盘格式化为exFAT为例,对于此操作也可以直接使用DiskGenius分区工具4.9以上版本实现以exFAT文件系统格式化硬盘,其中分配簇大小建议选择为4096字节。

20、回到WimTool,点击“挂载和解开”选项卡,在“选择要挂载或解开的WIM文件”处点击“浏览”按钮,选择之前保存好的“WIM映像文件”并点击“打开”按钮。在“选择挂载或解开的目标文件夹”处点击“浏览”按钮,选择“整个C盘”并点击“确定”按钮。选择好后如果检查了没有问题就点击“解开映像”按钮继续下一步操作。

21、如图所示如果弹出“选择是否继续解开WIM映像”对话框则点击“是(Y)”按钮以继续操作。

22、请耐心等待WIM映像解包释放完毕,此步所需时间视电脑配置高低而定。

23、当绿色进度条为“100%”并在提示信息框内显示“解开映像文件:完成”时即可进行下一步操作。

24、点击并打开 开始菜单→扇区小工具BOOTICE。
这里以使用Bootice为例,对于编辑BCD文件也可以使用BcdEdit或EasyBCD等工具完成操作。

25、点击“BCD编辑”选项卡,在BCD文件区域中点击“其他BCD文件(O)”单选框,然后点击右侧的“...”按钮或者在自动弹出的打开窗口中找到BCD文件位置并点击“打开”按钮完成选择,对于使用Legacy引导其BCD文件位置通常为"C:\Boot\BCD"(需要显示隐藏的系统文件才能看到);对于使用UEFI引导其BCD文件位置通常为“ESP:\EFI\Microsoft\Boot\BCD”(需要运行一次WinNTSetup自动挂载出隐藏的ESP分区才能看到),然后点击“智能编辑模式(C)”按钮将弹出BCD编辑窗口。在【启动设备】区域中确定设备类型为“分区”,在“启动磁盘”下拉菜单中选择“C盘所在的磁盘名”,在“启动分区”下拉菜单中选择“系统所在的分区”(即选择C盘),对于其他设置懂的可以自行修改,不懂的则不要修改,调整完成须点击“保存当前系统设置(S)”按钮后再退出。

26、重启测试等待系统成功启动到桌面后打开这台电脑,右键C盘点击属性,此时看到文件系统为exFAT,至此大功告成!


多版本系统测试启动截图
exFAT+传统模式启动最新版Win10 v1903 x64


exFAT+VHD模式启动最新版Win10 v1903 x64


exFAT+Legacy启动初版Win10 v1507 x64


exFAT+Legacy启动Win 8 8400 x86


exFAT UEFI+Secure Boot启动Win8 8400 x64


exFAT UEFI启动Win7 7850 x86


exFAT启动Win8 7955 x86


exFAT启动Win8 RTM


exFAT启动Win8.1 RTM


exFAT启动Server 2016


exFAT启动WES8


exFAT启动WinRT8.1


exFAT+WIM启动WinPE


exFAT启动Win10Team


exFAT启动Win11


傲腾内存+NVMe硬盘盒+Win7 To Go


补充:
顺便测试了通过触发exFAT写保护卷处于只读状态时系统还能启动到桌面也没报错,系统中的一些程序也能正常打开,说明Windows是可以在只读介质或分区中运行的,只不过在重启后和RAMOS一样所有的设置都不会保存。


更新exFAT系统盘兼容性表格:


笔记:
录制的Windows To Go+exFAT启动简易测试视频:http://www.bilibili.com/video/av55296372

朱玛 发表于 2019-5-9 20:19:23

本帖最后由 朱玛 于 2021-7-23 10:57 编辑

注意不要将原版系统直接安装到exFAT分区中,否则如图系统会卡在OOBE界面报错无法完成初始化。

如果一定要直接安装到exFAT分区中的话,则必须要通过修改注册表键值的方式来跳过OOBE阶段。但无特殊情况强烈不建议这么做,这样会影响系统的完整性。
NT6+系统跳过OOBE的操作方法:
如图当弹出“Windows无法完成系统配置”对话框时,按下“Shift+F10”键可快速打开CMD命令提示符,输入“regedit”不含引号后按下“Enter回车键”打开注册表编辑器,对于有些版本的系统在OOBE界面不显示鼠标指针那就只能盲点了。

如图依次展开定位到“HKEY_LOCAL_MACHINE\SYSTEM\Setup”项,将下图所有的“REG_DWORD”类型键值逐个“双击”打开编辑框全部输入“0”并点击“确定”按钮完成修改。

如图回到“命令提示符”窗口中注意空格输入“net user Administrator /active:yes”不含引号并“回车”提示命令成功完成,此时可在“安装Windows”报错对话框中点击“确定”按钮重启系统即可成功跳过OOBE。

如果后面启动时卡住了可尝试多重启几次可能会解决

Hashimoto 发表于 2019-5-10 11:30:44

NTFS是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008、Windows Vista和Windows 7的标准文件系统。
NTFS取代了文件分配表(FAT)文件系统,为Microsoft的Windows系列操作系统提供文件系统。NTFS对FAT和HPFS(高性能文件系统)作了若干改进,例如,支持元数据,并且使用了高级数据结构,以便于改善性能、可靠性和磁盘空间利用率,并提供了若干附加扩展功能,如访问控制列表(ACL)和文件系统日志。该文件系统的详细定义属于商业秘密,但 Microsoft 已经将其注册为 知识产权产品。

首先,功能性上来讲,既然你的盘被用作系统磁盘,那大概率也不会是一些不靠谱的寿命堪忧的小U盘,无论是固态U盘还是机械硬盘,本身都是可以作为系统磁盘使用到退役也不会坏的(一般挂掉也不是因为写满闪存全部PE,而是因为掉固件这种原因挂掉)。那既然如此,为什么我们不选择使用起来更方便,功能更多更全的文件系统呢?这个NTFS就好像macOS下的APFS一样,属于各自操作系统的独占文件系统,可以最大化的发挥出其操作系统的优势,那既然如此我们为什么不用一个高级的文件系统反其道而行要去用一个低端的文件系统?

其次,易用性上来讲,如果你想让你的System分区是exFAT文件系统而非NTFS文件系统,官方没有工具支持,这对用户来说会是一个非常麻烦的操作。

参考文献:https://support.microsoft.com/zh-cn/help/100108/overview-of-fat-hpfs-and-ntfs-file-systems

朱玛 发表于 2019-5-10 14:05:03

Hashimoto 发表于 2019-5-10 11:30
首先,功能性上来讲,既然你的盘被用作系统磁盘,那大概率也不会是一些不靠谱的寿命堪忧的小U盘,无论是 ...

看个人需求而定,没有什么绝对的好坏,需要的人可以用,不需要人的可以不用。
U盘使用NTFS不一定会坏,但读写次数一定会比exFAT多。NTFS功能多是好事,但不要忘了这也不是没有代价的,功能多了要么吃性能要么占空间,如果你对这些不敏感又需要功能也可以用ReFS存数据还支持ECC校验。
还有NTFS的磁盘配额、长短文件名、卷快照、数据流等在exFAT中没有的高级功能有多少人会用得到?就算知道有这些功能的人也没多少吧?既然是完全用不到的东西那就可以选择不要,当然也可能像你这样少数人才需要的那另说。
官方工具没有但第三方工具还真有,而且对于会写这种程序的人来说也可以很容易地做出来,至于工具好不好用那就要看优化方面做的到不到位,但在一键式制作普及的今天在实际体验上也不会有什么明显差别。

新空气 发表于 2019-5-10 15:52:06

说了一堆废话全删了。支持楼主!
折腾,使劲折腾,折腾好了分享出来造福需要的人。赞!!!
不折腾不进步。有了点闲工夫,我去折腾着试试~

朱玛 发表于 2019-5-10 16:09:38

新空气 发表于 2019-5-10 15:52
说了一堆废话全删了。支持楼主!
折腾,使劲折腾,折腾好了分享出来造福需要的人。赞!!!
不折腾不进步。有 ...

正解,人生的意义在于折腾,没有研究就不会有进步。
如果人人都只伸手不思进取的话,那我们永远也收获不到最终的成果,想一想难道这不是吗?

Graphics 发表于 2019-5-10 18:00:36

原则来说,这样是可以的,没有什么绝对与不绝对,Windows的system分区原则上讲不止仅仅支持NTFS文件系统的,所以exFAT这个可以实现。对于普通用户来讲,exFAT WTG相对来说较为繁琐,(当然有工具就方便多了)NTFS对Windows system分区有良好的支持,所以,截止目前我还会建议采用NTFS。
这个想法在14年有坛友发表过https://bbs.luobotou.org/thread-9577-1-1.html
现在你实现了,非常好!

朱玛 发表于 2019-5-19 10:46:00

更新汇总表格
页: [1] 2 3 4 5 6 7 8
查看完整版本: 【技术实战】在exFAT分区中安装并启动Windows系统