无忧启动论坛

标题: 谁在和ntfs_x64.efi较劲? [打印本页]

作者: 481416322    时间: 2023-10-4 19:17
标题: 谁在和ntfs_x64.efi较劲?
从XP时代就喜欢用内存系统,实际上用的是F驱Server 2003,现在的电脑在UEFI下用Server 2022的P驱内存系统,日常用grub4efi引导。本来用的好好的,忽然在新本子ThinkPad X1 Titanium掉链子了,问题出在调用ntfs_x64.efi失败。此前没出过这种事呀,可能是主板不支持吧,好在改用grub2启动内存系统还是没问题的,就先用着吧。忽然从本坛精华帖子在http://grub4dos.chenall.net/下载到2023-09-22版的GRUB4DOS for UEFI,这次惊人发现可以调用ntfs_x64.efi,因此也启动了内存系统,高兴之余对本坛高手充满敬佩之情。这不禁有个联想,是谁在和ntfs_x64.efi较劲?是主板么?哪天再遇到什么主板,还要高手出马更新GRUB4DOS for UEFI?

问题摆在这了,观察中发现如果不加载ntfs_x64.efi,总会提示和系统配置文件相关的错误信息。我开始怀疑引导器bootmgfw.efi无法调用BCD。按理说不会呀,BIOS模式下bootmgr都能调用BCD,到了UEFI怎么会不能呢,这一定是我的胡思乱想。难道是巨硬和我们开个大玩笑?唉,试试不就知道了么。实践表明,只要把引导器bootmgfw.efi和BCD一块放在FAT分区,就不用调用ntfs_x64.efi了,这表明玩笑是真的?下面附上实践过程:

1、启动原来做好的ramos,其中不必包含引导器bootmgfw.efi和BCD,我测试的系统版本是20348.169

2、引导方法一:建一个不大的vhd文件,见附件2022_169.vhd,4M,里面有改名后的引导器和BCD。用bootice修改BCD,指向当前的ramos,然后grub4efi启动项形如
find --set-root /test.vdf
map /test.vdf (hd)
find --set-root /2022_169.vhd
map /2022_169.vhd (hd)
chainloader (hd-1)

3、引导方法二:构建vdf时直接用diskgenius将内存盘修改成GPT格式,分出一个小的ESP,里面的内容和2022_169.vhd中的内容一致,启动菜单就不要上面的第3,4行了

4、引导方法三:通过本机原有的引导器和相应的BCD来启动,这时也只须将本机BCD增加一个菜单项,再将上面的第3,4行修改一下

5、引导方法四:不好意思,我还没有继续想。估计本坛包括朱玛大佬在内的高手有技术含量深的方法,比如修改了主板BIOS等等,期待中.............

本贴仅为个人实践,有多大的可行性尚未可知,希望坛友批评指正。

2022_169.rar

723.34 KB, 下载次数: 31, 下载积分: 无忧币 -2


作者: lgr99    时间: 2023-10-4 19:56
感谢分享
作者: zhanglei1371    时间: 2023-10-4 20:04
请教下lz,uefi下能启动XP的vhd么?大致操作该怎么做?
作者: dayeye    时间: 2023-10-4 21:02
有点费神。顶一下

作者: yyz2191958    时间: 2023-10-4 21:13
感谢分享
作者: dos时代菜鸟    时间: 2023-10-4 21:38
uefi 启动分区 是 esp ,原生设计的就是 fat32 类型的分区,
uefi 启动模式下,硬盘分区体系里没有 gpt+esp ,也不要紧,只要有个 fat32的分区里面有 efi 启动文件,就可以。
这是 前些年 做 同时支持 uefi 和 legacy 两种启动模式的 u盘时,大家早弄明白过的。

后来,有的主板 支持 从 ntfs 分区找 uefi 启动文件,再后来,一些引导器也内建了 支持从 ntfrs 分区启动 uefi ,这个事情就慢慢淡化了而已。

估计 微软的 bootmgfw.efi  最初也是只设计在 fat32格式的分区上启动。因为还要调用 ntfs 分区上的 winload.efi ,所以 bootmgfw.efi 必须能够识别并支持 ntfs分区。
esp 的本质就是个 gpt分区体系里的 fat32格式的分区。




作者: dos时代菜鸟    时间: 2023-10-4 21:43
zhanglei1371 发表于 2023-10-4 20:04
请教下lz,uefi下能启动XP的vhd么?大致操作该怎么做?

需要 64 位 xp ,同时向其他系统借来 winload.efi 之类的才行。
没做过,理论上倒是可以试试。
作者: awan8850    时间: 2023-10-4 22:19
了解一下
作者: yc2428    时间: 2023-10-4 23:15
谢谢分享
作者: nathan6498    时间: 2023-10-4 23:43
谢谢分享
作者: zxqsn    时间: 2023-10-4 23:59
谢谢分享
作者: sulong    时间: 2023-10-5 00:30
了解一下,谢谢楼主分享
作者: szwp    时间: 2023-10-5 07:19
有fat还和ntfs较什么劲
作者: 481416322    时间: 2023-10-5 07:29
szwp 发表于 2023-10-5 07:19
有fat还和ntfs较什么劲

就是么,有了fat,现在就不较劲了。呵呵
作者: zlq_hysy    时间: 2023-10-5 08:06
感谢分享
作者: wsdyleon    时间: 2023-10-5 08:22
最早知道ntfs的efi是在rufus生成的
作者: sunsea    时间: 2023-10-5 10:15
bootmgfw.efi原生设计就是找bcd的时候只认识fat,因为这步走的是【固件】的文件访问,固件认识什么它就认识什么。大部分固件只有FAT的驱动,因为ESP分区是且只能是FAT。部分固件比较牛逼,嵌入了NTFS的驱动,所以让bootmgfw.efi也认识了NTFS上的【bcd】。如果你手动在G4E中load ntfs_x64.efi,它会让【固件】也认识ntfs,这个时候bootmgfw.efi就能找到ntfs上的【bcd】了。
bootmgfw.efi找winload.efi的时候用的是【bootmgfw.efi自己的驱动】,所以可以顺利找到ntfs上的winload.efi。
作者: cuicongyuan    时间: 2023-10-5 10:36
感谢分享!
作者: 481416322    时间: 2023-10-5 11:11
sunsea 发表于 2023-10-5 10:15
bootmgfw.efi原生设计就是找bcd的时候只认识fat,因为这步走的是【固件】的文件访问,固件认识什么它就认识 ...

嗯,长见识了,谢谢!这巨硬多少也有点故意吧,对BIOS,bootmgr就能找到ntfs下的BCD,到了UEFI就不去找了。
作者: 无犹启动    时间: 2023-10-29 17:47
谢谢分享
作者: 无犹启动    时间: 2024-2-25 21:48
谢谢分享
作者: hehuiying    时间: 2024-4-12 15:13
谢谢分享
作者: 无犹启动    时间: 2024-4-25 18:30
谢谢分享
作者: z_yp    时间: 2025-5-17 07:12
dos时代菜鸟 发表于 2023-10-4 21:38
uefi 启动分区 是 esp ,原生设计的就是 fat32 类型的分区,
uefi 启动模式下,硬盘分区体系里没有 gpt+es ...

学习了。刚好刚才另外学习了一点内容,顺便复制过来,作为这个回复的脚注,可能对和我一样的菜鸟会有些帮助。以下内容来自:”github.com/pbatard/uefi-ntfs“
UEFI:NTFS 是一个通用的引导加载程序,旨在允许从 NTFS 或 exFAT 分区,处于纯 UEFI 模式,即使您的系统本身没有 支持它。 这主要用于 Rufus,但也可以 独立使用。

换句话说,UEFI:NTFS 旨在消除限制,而 UEFI 系统仅提供来自 FAT32 分区的引导支持,并且 启用从 NTFS 分区引导的功能。

例如,这可用于 UEFI 启动 Windows NTFS 安装介质。 包含大于 4 GB 的 (FAT32 无法 支持)或允许“Windows To Go”驱动器的双 BIOS + UEFI 启动。install.wim

顺便说一句,因为似乎存在很多不准确的信息 关于互联网上的这个,需要强调的是,绝对有 UEFI 规范中没有任何内容实际上强制使用 FAT32 UEFI 启动。相反,UEFI 将很高兴地从任何文件系统引导。 只要您的固件有它的驱动程序。因此,这只是 系统制造商往往只包含 FAT32 的驱动程序,这限制了 UEFI 的默认启动功能,这导致许多人错误地 认为只有 FAT32 可以用于 UEFI 启动。

然而,正如本项目所展示的那样,它非常有可能工作 绕过此限制,并允许任何 UEFI 固件从非 FAT32 引导 文件系统。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3