无忧启动论坛

标题: 谁在和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, 下载次数: 29, 下载积分: 无忧币 -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
谢谢分享




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