无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 307516|回复: 973

[原创] 全球首发!【技术实战】在exFAT分区中安装并启动Windows系统

    [复制链接]
发表于 2017-6-12 19:42:01 | 显示全部楼层 |阅读模式
本帖最后由 朱玛12345678 于 2022-12-31 16:41 编辑
你知道吗?早在遥远的2010年,微软就已经引入exFAT启动了。
早期的时候微软只将exFAT文件系统应用于数据存储卷,后来随着Windows 8操作系统在启动技术的革新上为其带来了可启动exFAT卷特性使引导系统成为了可能。

这是Windows系统中的一个不为人知的隐藏功能,就连微软官方也从未提及过任何相关信息。在此之前大家普遍认为exFAT不能用作系统盘运行系统,但现在这都将成为历史。
早在多年前我就发现了并专门针对这个做了大量的研究与测试,其中解决了不少小问题但也遇到了一个始终无法解决的大问题,而就在前段时间我彻底攻克了exFAT启动Windows系统的最大难题,从而宣告正式将其应用于日常使用环境。
而这次我决定首次对外公开发布完整的超详细图文安装教程,从而揭开这一神秘而又惊奇的新功能。

个人日用主力机磁盘分区预览截图
在exFAT分区中安装并启动Windows系统.jpg

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

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

点评

很给力  发表于 2024-3-11 20:53

评分

参与人数 46无忧币 +166 收起 理由
yyz2191958 + 2 赞一个!
kmzlong + 1 很给力!
gdzgw + 1 赞一个!
gues1688 + 5
syzcz + 5 很给力!
2012a2012 + 5 很给力!
bspub + 3 生命不息折腾不止
xuziyi + 1 很给力!
AV女优 + 5 很给力!
静水=流深 + 1 很给力!
FV4371 + 1 很给力!
948895964 + 5 支持
施王争霸 + 5 很给力!
qcqyt + 5
qfr + 1 很给力!
hlccfu + 5 很给力!
射射剩剩剩剩 + 1 很给力!
13007178874 + 1 赞一个!
wsasecy + 1 很给力!
lemonle79 + 5 很给力!
东方松海 + 1 赞一个!
lgl007 + 5 很给力!
枫林青 + 1 很给力!
johnyou + 4 赞一个!
caiiaccai + 5 很给力!
yang77 + 1 赞一个!
whyme22 + 5
qwe + 5 很给力!
lookerJ + 5 犀利了,前来支持一下
chiachia + 5 很给你,系统盘下面pagefile.sys这个文件可.

查看全部评分

 楼主| 发表于 2017-6-12 19:43:45 | 显示全部楼层
本帖最后由 朱玛12345678 于 2019-6-22 21:03 编辑

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

如果一定要直接安装到exFAT分区中的话,则必须要通过修改注册表键值的方式来跳过OOBE阶段。但无特殊情况强烈不建议这么做,这样会影响系统的完整性。
NT6+系统跳过OOBE的操作方法:
如图当弹出“Windows无法完成系统配置”对话框时,按下“Shift+F10”键可快速打开CMD命令提示符,输入“regedit”不含引号后按下“Enter回车键”打开注册表编辑器,对于有些版本的系统在OOBE界面不显示鼠标指针那就只能盲点了。
截图20190622194427.jpg
如图依次展开定位到“HKEY_LOCAL_MACHINE\SYSTEM\Setup”项,将下图所有的“REG_DWORD”类型键值逐个“双击”打开编辑框全部输入“0”并点击“确定”按钮完成修改。
截图20190622195202.jpg
如图回到“命令提示符”窗口中注意空格输入“net user Administrator /active:yes”不含引号并“回车”提示命令成功完成,此时可在“安装Windows”报错对话框中点击“确定”按钮重启系统即可成功跳过OOBE。
截图20190622200047.jpg
如果后面启动时卡住了可尝试多重启几次可能会解决

点评

这篇文章写得不错,真是受教了  详情 回复 发表于 2019-11-4 13:16
回复

使用道具 举报

 楼主| 发表于 2018-12-27 02:43:54 | 显示全部楼层
补充:顺便测试了通过触发exFAT写保护卷处于只读状态时系统还能启动到桌面也没报错,系统中的一些程序也能正常打开,说明Windows是可以在只读介质或分区中运行的,只不过在重启后和RAMOS一样所有的设置都不会保存。
截图20181227021603.jpg

点评

大神  详情 回复 发表于 2023-12-26 08:40

评分

参与人数 1无忧币 +5 收起 理由
AV女优 + 5 很给力!

查看全部评分

回复

使用道具 举报

发表于 6 天前 来自手机 | 显示全部楼层
学习一下
回复

使用道具 举报

发表于 2024-5-17 13:56:58 | 显示全部楼层
能力的体现范围,即是创新和多种解决方案。
回复

使用道具 举报

发表于 2024-5-16 15:52:39 | 显示全部楼层

作为技术探讨,很不错!
回复

使用道具 举报

发表于 2024-5-15 10:48:19 | 显示全部楼层
感谢!辛苦了!
回复

使用道具 举报

发表于 2024-5-15 08:11:38 来自手机 | 显示全部楼层
感谢分享!
回复

使用道具 举报

发表于 2024-5-7 09:33:27 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2024-5-7 08:12:40 | 显示全部楼层
感谢分享,学习了!
回复

使用道具 举报

发表于 2024-5-7 07:20:32 来自手机 | 显示全部楼层
牛啊牛啊
回复

使用道具 举报

发表于 2024-5-6 22:36:19 | 显示全部楼层

谢谢分享
回复

使用道具 举报

发表于 2024-4-30 13:33:11 | 显示全部楼层
居然实现了,奇迹啊
回复

使用道具 举报

发表于 2024-4-29 23:07:33 | 显示全部楼层
学习长姿势了
回复

使用道具 举报

发表于 2024-4-29 00:06:49 来自手机 | 显示全部楼层
本帖最后由 ko20010214 于 2024-4-29 00:15 编辑

为啥出错了? 解释一下,
第一个引导文件,我是选择的原版的bootx64.efi, (因为我装的G4E把原版的bootx64的名字占用了)我才特意改名为boot64.efi,不是我少写了X。
就这个出错了! 而且重启后无法引导也无法试着加载第二个引导文件。

是不是这个文件不是连续存放的?我去哪保证它一定是连续存放的啊。
还是因为无法直接启动原版的bootx64.efi? 好像我想启动bootmgfw2.efi 也是同样的错误。

然后这个129又是啥啊。 129>=1590656 是啥意思, 第三行的129又是啥?

IMG_20240428_221348.jpg
回复

使用道具 举报

发表于 2024-4-29 00:04:28 | 显示全部楼层
现在就是不知道这个出错的原因是什么,然后这个信息(129)又是代表什么
回复

使用道具 举报

发表于 2024-4-28 15:39:31 | 显示全部楼层
本帖最后由 ko20010214 于 2024-4-29 00:03 编辑

UMBR(Universal Master Boot Record),是一个简单的通用型的MBR引导程序,只支持LBA模式(BIOS不支持LBA的无法使用,目前除了很老的机子大部份都有支持).

使用创新的方案,和磁盘分区格式无关所以可以安装到MBR或GPT分区格式下,目前GPT磁盘一般都是配合EFI来启动,有了它就可以在BIOS模式下直接启动GPT磁盘上的系统(需要系统有支持)了.

[使用方法]
目前该程序只能在GRUB4DOS环境下运行,请在最新版本GRUB4DOS环境下使用.

参数介绍:

umbr [-d=D] [-p=P] [--test] [file1] [file2] [file3]
    -d=D            指定要安装的磁盘默认是当前ROOT的磁盘
    -p=D            启动失败后要启动的分区默认是第一个分区.
    --test            测试模式,不写入磁盘,加这个参数会进入安装效果测试.
    file1-3            可以指定三个启动文件位置以防止启动失败.

注: 这个filex    可以是任意GRUB4DOS可以识别的文件格式(必须连续存放).比如(hdx,y)/path/file或(hdx)xxxx+yyyy/(hdx,y)xxx+yyy之类的.
    file1-file3 必须在同一磁盘上并且和-d指定的磁盘一致.
    file1-2    也可以是一是一个PBR比如(hd0,3)+1
file1是主启动文件,如果检验失败了会再尝试file2...
说明:

由于是直接使用绝对扇区位置来启动的,所以和文件系统无关.
使用指定文件也会被转换为绝对扇区位置,正常情况下改名不影响启动,删除了如果文件内容没有被覆盖之前也是可以启动的.
启动失败时会暂停并等待按键,这时按任意键可以尝试下一个.
一个实用的例子:

磁盘使用的是GPT格式,GRLDR有两个备份分别是ESP分区(hd0,0)/grldr和普通分区(hd0,3)/boot/grub/grldr,并且在分区间隙(hd0)6554433+63处有一个WEE63

装有系统的分区是(hd0,1)

这时就可以通过UMBR默认加载ESP分区的GRLDR或普通分区上的GRLDR,失败了再尝试WEE63,还是失败就直接启动(hd0,1)分区.

进入GRUB4DOS执行以下命令就可以了

umbr -d=0 -p=1 (hd0,3)/boot/grub/grldr (hd0,0)/grldr (hd0)6554433+63
也可以默认wee63,通过wee63来控制启动过程,因为本例wee63是写到分区间隙的,出问题的几率比较小

umbr -d=0 -p=1 (hd0)6554433+63 (hd0,3)/boot/grub/grldr (hd0,0)/grldr
当然了也可以直接启动指定分区而不通过其它引导程序,如下默认直接启动(hd0,1)上的系统,如果该分区被分区软件调整过启动失败了,会尝试启动wee,最后尝试启动grldr

umbr -d=0 -p=1 (hd0,1)+1 (hd0)6554433+63 (hd0,0)/grldr
[其它参考]
UMBR 相关说明

0x8            4个字节        UMBR标志
0xC            1个字节        UMBR版本号
0x10-0X3F    48个字节    用户定义的启动区
0x40-0X4F    16个字节    保留的启动区(当用户定义的启动都失败时启动的分区)
0x40-0x1B7                启动代码.
启动区说明,目前0x10-0x4F,每一个启动项占用16个字节,为了编程方便使用的是和DiskAddressPacket一样的格式.

    WORD CRC;            //启动项校验
  WORD BlockCount;  // 启动代码块数(以扇区为单位)
  DWORD BufferAddr;  // 传输缓冲地址(segment:offset),也就是启动地址
  QWORD BlockNum;   // 启动代码在磁盘上的位置(LBA)
BufferAddr 的值为0x07c00000(07c0:0000)时固定为PBR引导,启动时会自动修改0x7c1c处的值.其它值直接从该位置启动.

校验方法: 使用的是简单的XOR校验,最多校验127个扇区,按4个字节依次XOR得到的最后结果,再把低16位和高16位进行一次XOR得到最后的结果作为检验值.

具体的校验代码可以参考源码有ASM/C语言两个版本.
WIN下安装UMBR
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=427013
umbr 测试(适用于BIOS+GPT磁盘的MBR程序)
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=374547&extra=&page=1
[求助] umbr的安装使用
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=423508


其中:在第三篇里找到一个回复贴,里面跳到另一个帖子里
http://bbs.wuyou.net/forum.php?m ... &fromuid=586362

再定睛一看,那个帖子是我发的。 2020-9-1 就在问这个事了,怎么在GTP硬盘装G4D,当时应该是只是想装G4D就完事了,没想说从Legacy方式启动GTP硬盘里的系统吧。

兜兜转转又回来了!


在Umbr 测试这个帖子里, 有一个附件可下载。
http://bbs.wuyou.net/forum.php?mod=attachment&aid=NTAwOTM4fGIxOTM1YTdjfDE3MTQzMTk5MzJ8MTgxMHwzNzQ1NDc%3D
这个有详细的说明。
包括怎么在window下手工添加UMBR到0扇区,怎么计算引导区的那一行的各种参数。
我当时第一时间想到的问题这里都有答案的。


回复

使用道具 举报

 楼主| 发表于 2024-4-28 08:08:08 | 显示全部楼层
ko20010214 发表于 2024-4-28 00:40
就是这样实现的。
话说grub 的命令行真难用……不熟悉的人找命令都找不到。
我都不知道试了多少次,想 ...

UMBR相关问题建议问开发者@chenall
GRUB的话还可以找@2011yaya2007777

点评

不敢去问。完全是门外汉,搭不上话。自己摸索就是了。只不过吐嘈一下摸黑时的感觉罢了。  发表于 2024-4-28 15:37
回复

使用道具 举报

发表于 2024-4-28 00:40:02 | 显示全部楼层
本帖最后由 ko20010214 于 2024-4-28 00:46 编辑

IMG_20240427_232833.jpg
就是这样实现的。
话说grub 的命令行真难用……不熟悉的人找命令都找不到。
我都不知道试了多少次,想知道你加载了几块硬盘吗?用find命令。而不是ls命令。
想知道怎么进目录吗? 好像没这个功能。
想知道怎么获取find这个命令的帮助信息吗?  find --help?  find /?  find --?  help --find  都不是。
就是find help.

点评

UMBR相关问题建议问开发者@chenall GRUB的话还可以找@2011yaya2007777  详情 回复 发表于 2024-4-28 08:08
回复

使用道具 举报

发表于 2024-4-28 00:14:12 | 显示全部楼层
本帖最后由 ko20010214 于 2024-4-28 00:36 编辑

成功从Legacy启动EXFAT分区里的VHD(EXFAT格式)。 2024-04-28_002029.png
不从UEFI启动,这个选项就没用,提示“此功能仅在UEFI环境下可用”
2024-04-28_001706.png
C盘为虚拟盘,VHD, EXFAT格式。
D盘为GPT格式的 EXFAT分区。
H盘本来是GPT格式的EFI分区(FAT32格式),因为用分区助手改小了一点容量,变成普通的FAT32盘了。

2024-04-28_001849.png
windows10.vhd , 位于EXFAT分区的D盘。
2024-04-28_002114.png

这就是神奇的UMBR。
是它,创造了这个奇迹。
在一块GPT硬盘上从Legacy方式启动了一个位于EXFAT分区的VHD(Exfat格式)的64位windows10.
这就是朱玛说的双EXFAT。
VHD(X)模式与传统模式的安装过程大致相同,但要注意选择的系统必须使用Win10 v1809以上版本。
VHD(X)启动目前仅支持双NTFS或双exFAT组合,不支持外NTFS+里exFAT或外exFAT+里NTFS组合

回复

使用道具 举报

发表于 2024-4-27 03:59:42 来自手机 | 显示全部楼层
学习到了
回复

使用道具 举报

发表于 2024-4-26 21:24:14 | 显示全部楼层
如果可以支持Xp的启动就无敌了
回复

使用道具 举报

发表于 2024-4-26 12:39:09 | 显示全部楼层
本帖最后由 ko20010214 于 2024-4-26 15:47 编辑

LBA(相对扇区号)方式:以磁盘第一个扇区(0柱面、0磁头、1扇区)作为LBA的0扇区,后面的扇区依次编号
137a91aa79224c8e806e4f8333a34e6b.png

其实这个LBA, 就是傻傻地向后数...
可以在diskgenius里查看.
回复

使用道具 举报

发表于 2024-4-26 08:19:32 | 显示全部楼层
用户定义的启动区 , 这个要手动去定义的话有什么方法吗?
照作者的意思是,在grub4dos环境下,运行umbr,会自动将UMBR启动扇区写入原MBR的位置,然后这四个启动文件的DAP会自动计算出来并写入启动区。
可我没这个环境,要手动计算出我要启动的文件所在的DAP,有公式吗? 源码我看不懂,本来看源码应该能知道怎么算这个DAP的。
回复

使用道具 举报

发表于 2024-4-26 01:36:51 | 显示全部楼层
UMBR 相关说明

0x8            4个字节        UMBR标志
0xC            1个字节        UMBR版本号
0x10-0X3F    48个字节    用户定义的启动区
0x40-0X4F    16个字节    保留的启动区(当用户定义的启动都失败时启动的分区)
0x40-0x1B7                启动代码.
启动区说明,目前0x10-0x4F,每一个启动项占用16个字节,为了编程方便使用的是和DiskAddressPacket一样的格式.

    WORD CRC;            //启动项校验
  WORD BlockCount;  // 启动代码块数(以扇区为单位)
  DWORD BufferAddr;  // 传输缓冲地址(segment:offset),也就是启动地址
  QWORD BlockNum;   // 启动代码在磁盘上的位置(LBA)
BufferAddr 的值为0x07c00000(07c0:0000)时固定为PBR引导,启动时会自动修改0x7c1c处的值.其它值直接从该位置启动.

校验方法: 使用的是简单的XOR校验,最多校验127个扇区,按4个字节依次XOR得到的最后结果,再把低16位和高16位进行一次XOR得到最后的结果作为检验值.

具体的校验代码可以参考源码有ASM/C语言两个版本.
回复

使用道具 举报

发表于 2024-4-26 01:34:39 | 显示全部楼层
磁盘地址数据包 Disk Address Packet (DAP)
    DAP 是基于绝对扇区地址的, 因此利用 DAP, Int13H 可以轻松地逾
越 1024 柱面的限制, 因为它根本就不需要 CHS 的概念.
    DAP 的结构如下:

    struct DiskAddressPacket
    {
        BYTE PacketSize;     // 数据包尺寸(16字节)
        BYTE Reserved;       // ==0
        WORD BlockCount;     // 要传输的数据块个数(以扇区为单位)
        DWORD BufferAddr;    // 传输缓冲地址(segment:offset)
        QWORD BlockNum;      // 磁盘起始绝对块地址
    };

    PacketSize 保存了 DAP 结构的尺寸, 以便将来对其进行扩充. 在
目前使用的扩展 Int13H 版本中 PacketSize 恒等于 16. 如果它小于
16, 扩展 Int13H 将返回错误码( AH=01, CF=1 ).
    BlockCount 对于输入来说是需要传输的数据块总数, 对于输出来说
是实际传输的数据块个数. BlockCount = 0 表示不传输任何数据块.
    BufferAddr 是传输数据缓冲区的 32 位地址 (段地址:偏移量). 数据
缓冲区必须位于常规内存以内(1M).
    BlockNum 表示的是从磁盘开始算起的绝对块地址(以扇区为单位),
与分区无关. 第一个块地址为 0. 一般来说, BlockNum 与 CHS 地址的关系
是:
    BlockNum = cylinder * NumberOfHeads +
               head * SectorsPerTrack +
               sector - 1;

    其中 cylinder, head, sector 是 CHS 地址, NumberOfHeads 是磁盘
的磁头数, SectorsPerTrack 是磁盘每磁道的扇区数.
    也就是说 BlockNum 是沿着 扇区->磁道->柱面 的顺序记数的. 这一顺
序是由磁盘控制器虚拟的, 磁盘表面数据块的实际排列顺序可能与此不同
(如为了提高磁盘速度而设置的间隔因子将会打乱扇区的排列顺序).
回复

使用道具 举报

 楼主| 发表于 2024-4-25 22:22:03 | 显示全部楼层
ko20010214 发表于 2024-4-25 22:01
文章已拜读。方法很巧妙,不过得要两块硬盘……
有没有可以直接搞定的?通过编辑扇区的方法?

http://chenall.net/post/grub4dos_umbr

点评

chenall真是个天才。  发表于 2024-4-28 00:37
回复

使用道具 举报

发表于 2024-4-25 22:01:14 | 显示全部楼层
朱玛12345678 发表于 2024-4-25 14:14
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=415995&mobile=no

文章已拜读。方法很巧妙,不过得要两块硬盘……
有没有可以直接搞定的?通过编辑扇区的方法?

点评

http://chenall.net/post/grub4dos_umbr  详情 回复 发表于 2024-4-25 22:22
回复

使用道具 举报

 楼主| 发表于 2024-4-25 14:14:33 | 显示全部楼层
ko20010214 发表于 2024-4-25 07:33
GTP格式的硬盘(前面一个EXFAT分区,后面一个EFI分区(FAT32)),EFI分区里有boot 目录及BCD文件,根目 ...

http://bbs.wuyou.net/forum.php?m ... 15995&mobile=no

点评

文章已拜读。方法很巧妙,不过得要两块硬盘…… 有没有可以直接搞定的?通过编辑扇区的方法?  详情 回复 发表于 2024-4-25 22:01
回复

使用道具 举报

发表于 2024-4-25 07:33:47 | 显示全部楼层
本帖最后由 ko20010214 于 2024-4-26 23:35 编辑
朱玛12345678 发表于 2024-4-24 18:43
你理解错了,替换已签名的exFAT驱动是用来解决老版本系统启动时间过长的问题,跟能否支持VHD(X)启动没有 ...

GPT格式的硬盘(前面一个EXFAT分区,后面一个EFI分区(FAT32)),EFI分区里有boot 目录及BCD文件,根目录下有 bootmgr  ,  能用Legacy启动系统吗?
我用winntsetup 查看 EFI分区时,只显示 EFI PART 是绿色的。
用bootice查看硬盘时,主引导分区是空白的,没装任何引导程序…… 两个分区的引导记录都是BOOTMGR。

请问一下如何才能 用Legacy方式启动这块硬盘。 是要重建MBR吗? GPT格式硬盘有这玩意吗?

点评

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=415995&mobile=no  详情 回复 发表于 2024-4-25 14:14
回复

使用道具 举报

 楼主| 发表于 2024-4-24 18:43:42 | 显示全部楼层
ko20010214 发表于 2024-4-24 07:04
我的安装环境:
1. Windows版本选择的22H2 V19045,实验版本19041.vb_release.191206-1406 (不忘初心 精简 ...

你理解错了,替换已签名的exFAT驱动是用来解决老版本系统启动时间过长的问题,跟能否支持VHD(X)启动没有任何关系,这是两码事。
另外正常情况下Legacy和UEFI都是可以启动系统的,如果只有其中一个能启动那你就得去检查一下自己的分区和引导设置是否有问题了。

点评

GTP格式的硬盘(前面一个EXFAT分区,后面一个EFI分区(FAT32)),EFI分区里有boot 目录及BCD文件,根目录下有 bootmgr , 能用Legacy启动系统吗? 我用winntsetup 查看 EFI分区时,只显示 EFI PART 是绿色的。  详情 回复 发表于 2024-4-25 07:33
回复

使用道具 举报

发表于 2024-4-24 07:04:10 | 显示全部楼层
本帖最后由 ko20010214 于 2024-4-24 12:27 编辑

我的安装环境:
1. Windows版本选择的22H2 V19045,实验版本19041.vb_release.191206-1406 (不忘初心 精简版)
2. Soyo 1T 硬盘 (EXFAT分区(存放VHD(EXFAT格式))+ESP分区) , sumsung 128G (NTFS 分区(存放VHD(NTFS格式)+ESP分区)
3. WinPE 选择的 Kuer的 win10PE (4.21版)
4. 启动模式 选择的 UEFI。(关闭了 安全启动)(2014年的LENOVO电脑,BIOS升级到2021年的)
安装过程:
1. 进PE,用winntsetup将win10.wim安装到NTFS格式的VHD中。
2. 进系统,完成安装。
3. 进PE,挂载VHD,用wimtool进行WIM打包。
4. 把WIM释放到EXFAT分区的VHD(EXFAT格式)
5. 修改BCD,添加启动项,引导EXFAT分区的VHD。
6. 重启,启动EXFAT分区中的VHD(EXFAT)失败。

考虑到:
1. EXFAT驱动问题,可“高版本的64位系统还需要手动替换一次已签名的exFAT驱动(适用于Win8 RTM到Win10 v1909,对于Win10 v2004及更高版本的系统则不再需要替换驱动)” ,对于22H2(19045)应该是原生支持EXFAT启动“最新的Windows 10 1903版本已经能够原生支持从FAT/exFAT分区中挂载VHD/VHDX虚拟磁盘文件”,而且楼主提供的EXFAT驱动包里也没有高于 v18362的版本。
2. 考虑到 EXFAT驱动加载顺序的问题,可这不是WIN10PE而是windows10, 没有看到过要调整EXFAT驱动顺序……
3. 难道是启动模式的问题? 不要选择UEFI,要选择Legacy引导?

请楼主指点一下。
另外,我也用过坏坏小生提供的三杰版win10, 版本号为V1607(14393),用EXFAT驱动包里的对应的14393的驱动替换后也启动失败。



Oh,shit!
It Works!
2024-04-24_074314.png



我只是进入BIOS 更改了一项 : 由只引导UEFI 改成了 legacy 优先。
因为我本想看看重启时进 Legacy 引导 看看能不能启动。
但是并没有这么简单。我在ESP分区的BOOT目录下编辑了BCD,添加了启动项目,似乎没有效果,我在Legacy启动时还是没办法看到启动菜单,
然后它跳到了UEFI引导下的启动菜单,然后我选择了 启动win10 (exfat vhd uefi), 然后 没有报错,有了启动画面,就是那个lenovo图标,但下面没有转圈圈? (因为慢??),我出去转了一下,大概两三分钟,回来看到已经启动到桌面了,具体用了多少时间也不太清楚。待会重启一遍试试。
OK。已经是EXFAT格式下的Win10了!
40多秒的时候出现LOGO, 3分15秒完成启动到桌面。

坏坏小生提供的三杰版win10, 版本号为V1607(14393)的替换驱动到windows\system32\drivers里,启动后蓝屏。
VHD_BOOT_Inintialization_Failed.
朱版已经说了:
“VHD(X)模式与传统模式的安装过程大致相同,但要注意选择的系统必须使用Win10 v1809以上版本。”
坏坏小生提供的三杰版win10, 版本号为V1607(14393)不符合要求。
但为啥EXFAT驱动包里有对应这个版本的驱动呢

点评

你理解错了,替换已签名的exFAT驱动是用来解决老版本系统启动时间过长的问题,跟能否支持VHD(X)启动没有任何关系,这是两码事。 另外正常情况下Legacy和UEFI都是可以启动系统的,如果只有其中一个能启动那你就得去  详情 回复 发表于 2024-4-24 18:43
回复

使用道具 举报

发表于 2024-4-23 06:57:36 | 显示全部楼层
纸上得来终觉浅
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-1 20:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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