无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: 2011yaya2007777
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
31#
发表于 2020-11-24 19:10:55 | 显示全部楼层
wintoflash 发表于 2020-11-24 19:00
2880*1024/2048 = 1440 = 0x5a0
所以 CD(1,12b,5a0) 是正确的,Insyde UEFI 确实有毛病。
但是,一个im ...

可能还是Insyde UEFI的问题居多。
GCC编译我用的不多,不太了解。

点评

在这个帖子下讨论grub2好像不太合适。我到grub2的帖子里面给你发个测试版本。  详情 回复 发表于 2020-11-24 19:31
回复

使用道具 举报

32#
发表于 2020-11-24 19:35:04 | 显示全部楼层
wintoflash 发表于 2020-11-24 19:31
在这个帖子下讨论grub2好像不太合适。我到grub2的帖子里面给你发个测试版本。

好的,谢谢您的关注。

我现在在办公室,Insyde UEFI机在宿舍,我这就赶回去。

请等一会。
回复

使用道具 举报

33#
发表于 2020-11-28 22:22:33 | 显示全部楼层
2011yaya2007777 发表于 2020-11-22 09:05
在命令行先输入
debug 3
之后再测试一下

一、继上次测试map ISO问题,又测试了map img,出现同样的情形。
AMI UEFI下可以成功map img并启动,Insyde UEFI则失败。







二、img是同一个文件ventoydsk.ima,用winimage制作,是对ventoy盘
的整盘克隆。


ventoy盘的情况:正常二分区结构,UEFI隐藏可引导分区+可见数据区,
可见数据区存放有Win10PE ISO。由于ventoy可以在Insyde UEFI下运用内置map成功
map ISO并启动,所以,制作ventoy IMG的设想很明显:在Insyde UEFI下曲线救国。
先用G4E map IMG--启动ventoy--再启动PE ISO。


(之所以绕圈,是因为ventoy被设计成在磁盘上工作,不做ISO引导器,而Grub*可以做
ISO引导器。最终目的是要把整个步骤打包成新的大ISO)。





点评

此问题已解决。 忽略MAP时的错误信息,找到map出来的虚拟盘hdx,y 直接chainloader上面的bootx64.efi即可启动成功。  详情 回复 发表于 2020-11-29 23:57
回复

使用道具 举报

34#
发表于 2020-11-29 23:57:35 | 显示全部楼层
wuwuzz 发表于 2020-11-28 22:22
一、继上次测试map ISO问题,又测试了map img,出现同样的情形。
AMI UEFI下可以成功map img并启动,Ins ...

此问题已解决。

忽略MAP时的错误信息,找到map出来的虚拟盘hdx,y
直接chainloader上面的bootx64.efi即可启动成功。


回复

使用道具 举报

35#
发表于 2020-11-30 13:20:35 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-30 19:35 编辑
2011yaya2007777 发表于 2020-11-30 05:40
太好了。可否向以前那样,截一张图,看看。那是解决了 img 的问题,iso 还没有解决?

IMG确定有效,ISO不一定。方法是一样的:忽略出错提示,手动录入bootx64.efi路径。








ISO需指定fd上的bootx64.efi才能成功。指定光盘上的bootx64.efi进PE会出错。
(仅对测试用wepe有效,其他PE可能选定fd设备也无效  )



回复

使用道具 举报

36#
发表于 2020-11-30 13:28:08 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-30 17:10 编辑

接617#内容,后备方案:如果直接MAP ISO方法行不通,只要ventoy ima能成功,

借助ventoy也可以间接启动ISO。即:g4e---ventoy---ISO.

因为ventoy在Insyde UEFI下,没有类似g4e/grub2这样的load image问题,

可以成功启动ISO。

点评

我刚才试了下,G4E 可以 map --mem /usbosv3.iso (0xff) 并 chainloader (0xff) 成功启动进入 Win10PE 桌面,但是不加 --mem 参数,则会在选择 BCD 菜单后转圈很长时间都进不了 Win10PE 桌面。 我这样的情况,不  详情 回复 发表于 2020-11-30 16:44
回复

使用道具 举报

37#
发表于 2020-11-30 19:43:23 | 显示全部楼层
2011yaya2007777 发表于 2020-11-30 05:40
太好了。可否向以前那样,截一张图,看看。那是解决了 img 的问题,iso 还没有解决?

修正我在617#发言
IMG有效,ISO不一定(有的能成,有的不能)。

ISO在这个insyde UEFI下,暂时只能采用618#的方法,
先map ventoy img成功---然后借助ventoy再启动ISO,
这样ISO就可以不出错


回复

使用道具 举报

38#
发表于 2020-12-4 18:16:36 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-12-4 18:20 编辑
2011yaya2007777 发表于 2020-11-30 05:40
太好了。可否向以前那样,截一张图,看看。那是解决了 img 的问题,iso 还没有解决?

报告G4E光盘故障

在619#,为了对付Insyde UEFI(HP G4本)下,直接MAP PE ISO失败的问题,
发展出以ventoy为中介,以“map ventoy img--->启动ventoy-->启动PE”
为流程的间接解决方法。此方法要求G4E、img等都存放在磁盘(U盘DISK方式)
上。
==============================================
现在我们用mkisofs制作出G4E引导光盘ISO。此G4E光盘存放了ventoy IMG、
嵌套存放了PE ISO,结构如下图。期望能够以G4E光盘方式启动成功后,
按上面类似流程map ventoy img并启动PE。


==============================================
G4E光盘启动成功---map ventoy img成功,但是访问ventoy EFI区出错。
提示Disk read error,导致无法启动ventoy。该故障在AMI UEFI也出现。

=================================================================
由于g4e/grub2 map同源,运用同样的方法、同样的img文件,制作grub2引导光盘,
进行对比测试,没有出现该故障。grub2环境下能够访问map出的ventoy efi分区,
进而启动ventoy.




点评

图说,一目了然。  发表于 2020-12-5 12:40
回复

使用道具 举报

39#
发表于 2020-12-5 12:37:51 | 显示全部楼层

此版本可以读取ventoy EFI分区了,但是chainloader ventoy的bootx64.efi后,
不能像以前那样正常进入ventoy主画面,而是进入其grub2命令行状态了...





回复

使用道具 举报

40#
发表于 2020-12-5 13:13:26 | 显示全部楼层
2011yaya2007777 发表于 2020-12-5 12:46
试一试   chainloader (hd2,1)

结果相同,进入ventoy grub2命令行状态
回复

使用道具 举报

41#
发表于 2020-12-10 18:28:08 | 显示全部楼层
对G4E,grub2 同步测试svbus。
结果迷乱(遇到兼容性问题,可能涉及到UEFI版本、U盘固件、SVBUS、grub*多种因素)。
==========================
环境:均实机测试
AMI UEFI V2016年 (清华同方笔记本,不支持NTFS)
AMI UEIF V2017年 (海尔S4笔记本,支持NTFS)
===========================
VHD:
名为fixwtg.vhd。原始VHD是测试win to go时,全新安装win10到U盘,形成的固定vhd。
大小25G,单NTFS分区。该VHD在grub2下,可以使用run.efi、NTBOOT等成功启动进入
桌面正常使用。

安装了656#朱玛SVBUS后,形成新的测试版VHD,该测试版VHD在grub2下,用run.efi、NTBOOT,
随机出现进入失败,表现为长时间转圈、然后重启。
============================
grub*命令:

因VHD很大,超过内存,均不使用--mem选项。
g4e
map /fixwtg.vhd (hd)
chainloader (hd-1)

grub2
map --type=HD --rt /fixwtg.vhd
必要时增加efiload  ntfs_x64.efi
==============================
U盘:

准备了慧荣3267\3268\3281主控等多种U盘。
均为FAT32(存放grub2)+NTFS(存放VHD)+FAT32(存放g4e)
分区布局,不同U盘grub*相关内容相同
==============================

问题1:
同一U盘,G4E在AMI UEFI V2016下会出现boot_image_handle not found,
不能进行到下一步。在AMI UEFI V2017下不会出现,能进行到下一步。



问题2:
G4E在AMI UEFI V2016下,手动chainloader失败。
根据map VHD后的(hdx,y),chainloader (hdx,y)/efi/boot/bootx64.efi,再boot,
未能启动VHD,结果见图。





问题3:
3267主控64G盘、3268主控32G盘在AMI UEFI V2017下,G4E\grub2均可以成功进入VHD win10桌面。
在AMI UEFI V2016下不能成功进入,表现为win长时间转圈,然后重启。(G4E雷同,不再单调截图)



问题4:
3267主控64G盘在AMI UEFI V2017下,G4E\grub2均可以成功进入VHD win10桌面。
3267主控32G盘在AMI UEFI V2017下,G4E\grub2均不能成功进入VHD win10桌面,
表现为win转圈一段时间后,U盘灯指示已不读盘,而win一直持续长时间转圈。


问题5:
曾经成功的U盘、UEFI环境,g4e/grub2随机出现不能进入桌面(win一直转圈,重启)。
而一旦g4e引导能够成功进入桌面,则再次使用grub2引导也一定能成功进入。

点评

问题1: G4E在AMI UEFI V2016下会出现boot_image_handle not found已解决。 先load ntfs_x64.efi,再map存放在NTFS分区的fixwtg.vhd,就可以找到并loadimg了。 这台笔记本所配AMI UEFI V2016未带NTFS驱动。我原  详情 回复 发表于 2020-12-16 19:45
问题1: G4E在AMI UEFI V2016下会出现boot_image_handle not found已解决。 先load ntfs_x64.efi,再map存放在NTFS分区的fixwtg.vhd,就可以找到并loadimg了。 这台笔记本所配AMI UEFI V2016未带NTFS驱动。我原  详情 回复 发表于 2020-12-16 19:41
回复

使用道具 举报

42#
发表于 2020-12-16 19:45:04 | 显示全部楼层
wuwuzz 发表于 2020-12-10 18:28
对G4E,grub2 同步测试svbus。
结果迷乱(遇到兼容性问题,可能涉及到UEFI版本、U盘固件、SVBUS、grub*多种 ...

问题1: G4E在AMI UEFI V2016下会出现boot_image_handle not found已解决。

先load ntfs_x64.efi,再map存放在NTFS分区的fixwtg.vhd,就可以找到并loadimg了。
这台笔记本所配AMI UEFI V2016未带NTFS驱动。我原以为ls、map已经成功看到fixwtg.vhd,
就表明G4E本身已内置NTFS支持,现在看来不是那么回事。附带对比图:


点评

GRUB2/GRUB4DOS的各种文件系统驱动都只能在它们内部使用。 这个 NTFS 驱动是给 UEFI 固件用的。map 的时候启动 bootx64.efi 用的是 UEFI 启动服务 LoadImage,固件读文件要用 UEFI 的驱动。  详情 回复 发表于 2020-12-16 20:54
回复

使用道具 举报

43#
发表于 2020-12-17 12:13:38 | 显示全部楼层
2011yaya2007777 发表于 2020-12-16 20:37
wuwuzz: g4d支持ntfs,但是启动fixwtg.vhd后,它内部没有ntfs驱动,而UEFI固件也没有提供。

谢谢老大指点、确认。
回复

使用道具 举报

44#
发表于 2020-12-17 12:15:26 | 显示全部楼层
wintoflash 发表于 2020-12-16 20:54
GRUB2/GRUB4DOS的各种文件系统驱动都只能在它们内部使用。
这个 NTFS 驱动是给 UEFI 固件用的。map 的时 ...

谢谢W大解释,这就清晰多了,不同阶段加载不同的NTFS驱动,以前我有模糊认识。
回复

使用道具 举报

45#
发表于 2021-1-18 12:36:05 | 显示全部楼层
2021年1月各版本似乎引入了新BUG,MAP win10PE ISO工作不正常。
最后一个工作正常的版本是2020-12-15版。参见下面debug图。

测试环境:清华同方笔记本,AMI UEFI V2016;
G4E均从chenall网站下载;
使用同一台机器、同一个U盘测试。





点评

2022.3.28日的版本已经修正这个问题,请测试看看。 @wuwuzz  详情 回复 发表于 2022-3-29 06:40
奇怪了,2021-1-16日的版本,我这边实体机测试,无论是直接map WIN10PE.ISO,还是map --mem WIN10PE.ISO,WIN10PE.ISO是在硬盘上的,都可以启动,没问题。 title /boot/imgs/SXWIN10PEX64_17763_NET20201109.iso f  详情 回复 发表于 2021-1-18 13:36
回复

使用道具 举报

46#
发表于 2021-1-18 14:53:44 | 显示全部楼层

1、均为实体机测试

2、U盘分驱/分区情况:

第1驱 USB-HDD 共3个分区,其中: 本测试用到的G4E、win10 PE ISO放在第3分区
第2驱 USB-CD 老版本G4D为引导的ISO





回复

使用道具 举报

47#
发表于 2021-1-18 16:30:40 | 显示全部楼层
liuzhaoyzz 发表于 2021-1-18 13:36
奇怪了,2021-1-16日的版本,我这边实体机测试,无论是直接map WIN10PE.ISO,还是map --mem WIN10PE.ISO ...

经过测试,基本锁定了2021年版G4E BUG原因:

没有把选中的当前ISO提升为第1光驱位。

这在以前的版本中早就解决了,不知道为什么又在2021年版出现了。

怀疑编译时,选的源代码版本不对。

点评

果然是这样子,wuwuzz定位的这个问题很准确,估计是版本太多了,yaya大神搞混淆了。这个问题可以在虚拟机中稳定重现。参考前面的帖子。比如101楼:http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpo  详情 回复 发表于 2021-1-18 16:41

评分

参与人数 1无忧币 +10 收起 理由
liuzhaoyzz + 10 很准确的定位!

查看全部评分

回复

使用道具 举报

48#
发表于 2021-3-16 20:26:19 | 显示全部楼层
本帖最后由 wuwuzz 于 2021-3-16 20:33 编辑
xbmc 发表于 2021-3-13 19:42
请问这是什么东西?
我在github上搜到了这个 https://github.com/Microsoft-Leaked-shit/windows_10_sha ...

谢谢你们2位的讨论,指明了获取源码的方向。

win10泄露代码除了bootmgr,让人有兴趣的还有USB驱动。可惜不完整,没有关于U盘驱动内容。

不过,这给了提醒,于是顺藤摸瓜,下了XP和2003的源码,这2个虽然陈旧过时,但作为学习材料还是很不错的。

毕竟NT新版本,相对于NT5.2,有继承性。

以前观察到的有些U盘表现,只能根据结果推测内部处理过程,现在有了源码,迅速定位到感兴趣的片段,

猜测得到证明,想法完全正确,也算是了结了长久的心愿。



回复

使用道具 举报

49#
发表于 2022-12-26 07:59:49 | 显示全部楼层
2011yaya2007777 发表于 2022-12-25 17:07
UEFI固件不支持软盘启动。你那个软盘镜像,使用虚拟机测试,能启动吗?

AMI UEFI固件似乎是支持软驱启动的。
下面是USB-FDD 1.44M的例子,启动到Shell。




回复

使用道具 举报

50#
发表于 2022-12-27 04:47:51 | 显示全部楼层
2011yaya2007777 发表于 2022-12-26 08:58
固件是支持软驱。问题是固件支持从软驱的/efi/bootx64.efi启动吗?
我不会在Shell中操作。你可以操作的 ...

/efi/bootx64.efi ?不应该是/efi/boot/bootx64.efi么?

上述shell就是软驱上的/efi/boot/bootx64.efi啊;
换成G4E的bootx64.efi,会进入G4E命令行。



回复

使用道具 举报

51#
发表于 2023-1-5 10:43:04 | 显示全部楼层
本帖最后由 wuwuzz 于 2023-1-5 10:46 编辑
2011whp 发表于 2022-12-30 11:31
大部分不支持 软盘启动
(g4e 能浏览到,不代表efibios也能用)

我不赞同这个结论。

AMI系的UEFI确定支持软驱启动,此系UEFI装机量很大的。

1.这里的软驱既包括常见的1.44MB小软驱,也包括120MB、200MB大软驱
(这类软驱win支持,AMI Aptio V2.17.1254版UEFI确定支持)。

2.启动是指从物理USB-FDD设备上启动,镜像不讨论(这不能保证承载设备是软驱)。
例子2是光驱启动范畴,也不讨论。


回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-8 01:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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