无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 299581|回复: 968
打印 上一主题 下一主题

[原创] 全球首发!【技术实战】在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 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, 下载次数: 1726)
http://bbs.wuyou.net/forum.php?mod=attachment&aid=Mzk1NDIzfDgzNTNmNzYyNWU4ZGE1OTM4YzhhNTRjYTQ4NzUwYTM2fDE3MTUwODU5MjI%3D&request=yes&_f=.zip

腾讯微云下载: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盘外”的其他盘可在任意目录输入自定义文件名并点击“保存”按钮。在选项[1]区域中的“压缩类型”下拉菜单选择为“最大压缩”。在选项[2]区域中的四个“文本框”内可以自由设置备注信息或者直接留空即可。选择好后如果检查了没有问题就点击“新建映像”按钮继续下一步操作。
注意对于压缩类型选项请根据实际情况量力而行,该操作对处理器的性能要求较高,如果电脑配置较低此项耗时会比较长,为保证最佳效率我个人推荐:酷睿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启动初版Win10 v1507 x86


exFAT+Legacy启动Win8 8400 x86


exFAT UEFI+Secure Boot启动Win8 8400 x64


exFAT+Legacy启动Win7 7850 x86


exFAT UEFI启动Win7 7850 x86


exFAT启动Win8 7955 x86


exFAT启动Win8 8888 x86


exFAT启动Win8 RTM


exFAT启动Win8.1 RTM


exFAT启动Server 2016


exFAT启动WES8


exFAT启动WinRT8.1


exFAT+WIM启动WinPE


exFAT启动Win10Team


exFAT启动Win11


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

点评

很给力  发表于 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这个文件可.

查看全部评分

来自 892#
 楼主| 发表于 2017-6-12 19:43:45 | 只看该作者
本帖最后由 朱玛12345678 于 2019-6-22 21:03 编辑

注意不要将原版系统直接安装到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。

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

点评

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

使用道具 举报

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

点评

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

评分

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

查看全部评分

回复

使用道具 举报

889#
发表于 11 小时前 | 只看该作者
谢谢分享
回复

使用道具 举报

888#
发表于 12 小时前 | 只看该作者
感谢分享,学习了!
回复

使用道具 举报

887#
发表于 13 小时前 来自手机 | 只看该作者
牛啊牛啊
回复

使用道具 举报

886#
发表于 昨天 22:36 | 只看该作者

谢谢分享
回复

使用道具 举报

885#
发表于 7 天前 | 只看该作者
居然实现了,奇迹啊
回复

使用道具 举报

884#
发表于 2024-4-29 23:07:33 | 只看该作者
学习长姿势了
回复

使用道具 举报

883#
发表于 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 (37.61 KB, 下载次数: 1)

IMG_20240428_221348.jpg
回复

使用道具 举报

882#
发表于 2024-4-29 00:04:28 | 只看该作者
现在就是不知道这个出错的原因是什么,然后这个信息(129)又是代表什么
回复

使用道具 举报

881#
发表于 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扇区,怎么计算引导区的那一行的各种参数。
我当时第一时间想到的问题这里都有答案的。


回复

使用道具 举报

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

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

点评

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

使用道具 举报

879#
发表于 2024-4-28 00:40:02 | 只看该作者
本帖最后由 ko20010214 于 2024-4-28 00:46 编辑


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

点评

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

使用道具 举报

878#
发表于 2024-4-28 00:14:12 | 只看该作者
本帖最后由 ko20010214 于 2024-4-28 00:36 编辑

成功从Legacy启动EXFAT分区里的VHD(EXFAT格式)。
不从UEFI启动,这个选项就没用,提示“此功能仅在UEFI环境下可用”

C盘为虚拟盘,VHD, EXFAT格式。
D盘为GPT格式的 EXFAT分区。
H盘本来是GPT格式的EFI分区(FAT32格式),因为用分区助手改小了一点容量,变成普通的FAT32盘了。


windows10.vhd , 位于EXFAT分区的D盘。


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

回复

使用道具 举报

877#
发表于 2024-4-27 03:59:42 来自手机 | 只看该作者
学习到了
回复

使用道具 举报

876#
发表于 2024-4-26 21:24:14 | 只看该作者
如果可以支持Xp的启动就无敌了
回复

使用道具 举报

875#
发表于 2024-4-26 12:39:09 | 只看该作者
本帖最后由 ko20010214 于 2024-4-26 15:47 编辑

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


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

使用道具 举报

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

使用道具 举报

873#
发表于 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语言两个版本.
回复

使用道具 举报

872#
发表于 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 是沿着 扇区->磁道->柱面 的顺序记数的. 这一顺
序是由磁盘控制器虚拟的, 磁盘表面数据块的实际排列顺序可能与此不同
(如为了提高磁盘速度而设置的间隔因子将会打乱扇区的排列顺序).
回复

使用道具 举报

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

http://chenall.net/post/grub4dos_umbr

点评

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

使用道具 举报

870#
发表于 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
回复

使用道具 举报

869#
 楼主| 发表于 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
回复

使用道具 举报

868#
发表于 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
回复

使用道具 举报

867#
 楼主| 发表于 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
回复

使用道具 举报

866#
发表于 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!




我只是进入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
回复

使用道具 举报

865#
发表于 2024-4-23 06:57:36 | 只看该作者
纸上得来终觉浅
回复

使用道具 举报

864#
发表于 2024-4-18 11:37:46 | 只看该作者
谢谢分享。
回复

使用道具 举报

863#
发表于 2024-4-13 09:39:44 | 只看该作者
支持原创
回复

使用道具 举报

862#
发表于 2024-4-12 14:26:36 来自手机 | 只看该作者
牛人
回复

使用道具 举报

861#
发表于 2024-4-10 14:35:36 | 只看该作者
学习并支持!
回复

使用道具 举报

860#
发表于 2024-4-8 13:48:12 | 只看该作者
谢谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-7 20:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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