无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
661#
 楼主| 发表于 2023-4-30 20:24:21 来自手机 | 显示全部楼层
2773#的两张截图似乎重复,然而下一屏幕后续内容又没有抓取,遗漏了重要信息。

点评

了解了,是要按到最后面就跳出GRUB的画面是吧!附上  详情 回复 发表于 2023-4-30 20:56
回复

使用道具 举报

662#
 楼主| 发表于 2023-4-30 21:06:55 | 显示全部楼层
很好!谢谢!明天研究一下。
回复

使用道具 举报

663#
 楼主| 发表于 2023-5-1 14:16:24 来自手机 | 显示全部楼层
截图是2020年的

点评

截图是今天的,是 grubfm 用 map 方式加载 ISO 时,出现的提示。应该是 grubfm 内嵌的 grldr 版本号。刚才我用 grub4dos-0.4.6a-2022-08-23 启动 grubfm.iso,加载某些 PE.ISO 出错的提示是一样的。用 2021.0516版本  详情 回复 发表于 2023-5-1 14:44
回复

使用道具 举报

664#
 楼主| 发表于 2023-5-1 18:59:02 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2023-5-1 21:04 编辑
了解了,是要按到最后面就跳出GRUB的画面是吧!附上

试一试这个。如果仍然有问题,截图反馈。

BOOTX64.rar

145.26 KB, 下载次数: 6, 下载积分: 无忧币 -2

点评

还是无法显示菜单,使用Qemu测试是OK的,实机测试不行。  详情 回复 发表于 2023-5-2 23:52
回复

使用道具 举报

665#
 楼主| 发表于 2023-5-2 09:42:54 来自手机 | 显示全部楼层
上传grubfm.iso及PE.ISO(2003PE),以便复现问题。
回复

使用道具 举报

666#
 楼主| 发表于 2023-5-3 18:16:01 | 显示全部楼层
还是无法显示菜单,使用Qemu测试是OK的,实机测试不行。

试一试这个。Qemu及实机测试截图。谢谢!
2794#截图很好。

BOOTX64.rar

145.35 KB, 下载次数: 9, 下载积分: 无忧币 -2

回复

使用道具 举报

667#
 楼主| 发表于 2023-5-4 08:07:13 | 显示全部楼层
还是无法显示菜单,使用Qemu测试是OK的,实机测试不行。

再试一试这个。由于没有重现的条件,只能盲猜。

BOOTX64.rar

145.37 KB, 下载次数: 6, 下载积分: 无忧币 -2

回复

使用道具 举报

668#
 楼主| 发表于 2023-5-4 10:40:27 | 显示全部楼层
哈哈哈!终于蒙到了,SD卡启动G4E成功,攻克G4E启动SD卡堡畾,恭喜!

这两张图各表示什么?
第一张包含usb,是5月3日的?
第二张怎么没有usb?
5月4日的包含usb再测试一下,谢谢。
回复

使用道具 举报

669#
 楼主| 发表于 2023-5-4 10:46:10 | 显示全部楼层
老毛桃的 XP.PE,用  grubfm.iso 能完全启动加载工具,用 SISO 或 ventoy 加载,能启动到 XP.PE,但加载不上工具。2003PE 3种方式都可以。

问题找到了。是由于当年为了配合SVBus,调整了存储碎片数据的位置。grubfm没有跟进,替换新的grub.exe。
替换grubfm源码中的grub.exe,重新编译即可。
回复

使用道具 举报

670#
 楼主| 发表于 2023-5-4 12:30:15 来自手机 | 显示全部楼层
明白了。QEMU识别U盘为Ata设备。谢谢测试。
回复

使用道具 举报

671#
 楼主| 发表于 2023-5-5 08:56:55 | 显示全部楼层
grubfm 现在已经停止开发了

今天编译了一个新的。

grubfm.part3.rar

498.99 KB, 下载次数: 23, 下载积分: 无忧币 -2

grubfm.part2.rar

3 MB, 下载次数: 28, 下载积分: 无忧币 -2

grubfm.part1.rar

3 MB, 下载次数: 26, 下载积分: 无忧币 -2

回复

使用道具 举报

672#
 楼主| 发表于 2023-5-5 11:29:27 来自手机 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2023-5-5 11:53 编辑

我是从官网下载的,自然没有那个补丁了。你请他打吧,我没有补丁。
回复

使用道具 举报

673#
 楼主| 发表于 2023-5-5 12:54:34 来自手机 | 显示全部楼层
看见了,人家昨天就重现编译了,我不知道。
回复

使用道具 举报

674#
 楼主| 发表于 2023-5-7 10:54:23 | 显示全部楼层
Handover协议目前还是很多linux发行版支持的,Loadfile2协议可能是未来发行版即将支持的。

当前g4e需要做的似乎就是用某个可靠的办法判断linux kernel是否支持Handover协议,如果支持的话g4e就尝试用Handover协议启动,如果不支持的话就尝试用Loadfile2协议启动。看起来你对两个协议颇有研究啊,Loadfile2协议是你引入g4e的吧,希望未来还是由你加个判断,解决新老内核兼容性匹配问题(太老的≤4.xx内核kernel panic那种就不用考虑了)。
不行。
正常情况下,用
kernel (hdx,y)/xxx/vmlinuz xxx initrd=/xxx/initrd.img
initrd (hdx,y)/xxx/initrd.img
复制代码

就可以保证能启动。
* 正常情况指的是正规安装的 Linux,kernel 和 initrd 都位于 FAT 分区里面。

我觉得现阶段仍然需要同时支持Handover协议和Loadfile2协议(不支持Handover协议内核版本<20b)。
我做了一个补丁,kernel 函数增加 --handover 和 --loadfile2 参数,以便强制使用Handover或LoadFile2协议。没有参数,则内核版本<20f,使用Handover协议,内核版本>20e,使用LoadFile2协议。可能不严谨。不知到其他方法。

BOOTX64.rar

145.43 KB, 下载次数: 3, 下载积分: 无忧币 -2

回复

使用道具 举报

675#
 楼主| 发表于 2023-5-7 12:19:53 来自手机 | 显示全部楼层
我想知道,这样是判断uefi固件支持不支持,还是判断所加载的那个linux镜像的内核支持不支持?
回复

使用道具 举报

676#
 楼主| 发表于 2023-5-7 14:23:41 | 显示全部楼层
因此放弃使用 EFI Handover Protocol 启动 Linux,改用 LoadFile2 提供 initrd 加载功能。
此更新会带来不兼容,请注意:
  不再支持 x64 UEFI 下启动 32 位内核 (或者反过来)。
  不再支持 ntloader v1 版本,请使用 ntloader v2 版本。(下载)

请教一个问题:
是不是说使用 EFI Handover Protocol 启动 Linux,
  支持 x64 UEFI 下启动 32 位内核 (或者反过来)?
回复

使用道具 举报

677#
 楼主| 发表于 2023-5-7 15:45:15 | 显示全部楼层
只要linux内核开了对应的选项(EFI Mixed Mode),就可以。

IS_UEFI_xx  这是当前 EFI 环境。
lh.xloadflags 这是允许启动的内核位?比如 h.xloadflags=4,允许启动 32 位内核?那当前启动的 Linux 是多少位?从那里获知?
回复

使用道具 举报

678#
 楼主| 发表于 2023-5-7 17:03:53 | 显示全部楼层
按 wintoflash 提供的逻辑,重新编译的。请测试。

BOOTX64.rar

145.46 KB, 下载次数: 11, 下载积分: 无忧币 -2

回复

使用道具 举报

679#
 楼主| 发表于 2023-5-7 19:12:56 来自手机 | 显示全部楼层
菜单第一行增加  debug 3,initrd 前增加暂停。
回复

使用道具 举报

680#
 楼主| 发表于 2023-5-7 19:21:42 来自手机 | 显示全部楼层
2818#不用测试了。其实主要内容都一样,只是判断使用哪个协议的逻辑不同。我测试ubuntu-18.04.6-desktop-amd64.iso,以ubuntu-22.04.2-desktop-amd64.iso都可以正常启动。在QEMU虚拟机及实机测试的。
回复

使用道具 举报

681#
 楼主| 发表于 2023-5-7 19:45:02 来自手机 | 显示全部楼层
谢谢测试,明天我查一下。
回复

使用道具 举报

682#
 楼主| 发表于 2023-5-8 09:37:47 | 显示全部楼层
好像是map导致的死机,pause map这一句执行结果看到了,pause  hook这一句没看到。


我今天从清华大学网站下载了 ubuntu-14.04.6-desktop-amd64.iso ,使用你提供的菜单,在 QEMU、VMware® Workstation 16 Pro、实机测试,都正常。
奇怪了,你的虚拟机是什么版本?我怎样才能重现问题?
回复

使用道具 举报

683#
 楼主| 发表于 2023-5-8 14:46:50 | 显示全部楼层
我用的是这个版本。12.5.7

我下载了这个版本的虚拟机。第一次测试似乎卡在map。后来又测试了两次,都正常。怀疑第一次出现map时,回车不起作用,焦点不在虚拟机。后两次都是用鼠标点一下虚拟机中心,再按回车键。
回复

使用道具 举报

684#
 楼主| 发表于 2023-5-8 20:07:30 来自手机 | 显示全部楼层
把这个MX-19.3_KDE_x64.iso发给我吧
回复

使用道具 举报

685#
 楼主| 发表于 2023-5-8 20:37:02 来自手机 | 显示全部楼层
确实奇怪。你明天发给我吧。测试要在同一环境。
回复

使用道具 举报

686#
 楼主| 发表于 2023-5-9 07:43:10 | 显示全部楼层
正在上传,需要23分钟大概。

今天测试 MX-19.3_KDE_x64.iso ,使用你提供的菜单,在 QEMU、VMware® Workstation 、实机测试,都是菜单执行完 boot,进入 linux ,然后提示按 r 重启,按 p 关机。
回复

使用道具 举报

687#
 楼主| 发表于 2023-5-11 06:49:57 | 显示全部楼层
GRUB2 官方也准备统一 UEFI 下 Linux 的启动方式了,统一用 LoadFile2 的那个方法

昨天推送了一个补丁,到今天 build-push 仍然没有反应。是 ubuntu-18.04 落伍了吗?
回复

使用道具 举报

688#
 楼主| 发表于 2023-5-12 20:10:36 来自手机 | 显示全部楼层
我一开始猜想就是18.04落伍了。今天换成20.04.6,又说gcc4.8找不到还是什么的,奇怪了,你不是打了支持gcc高版本的补丁了吗?
回复

使用道具 举报

689#
 楼主| 发表于 2023-5-12 20:30:43 来自手机 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2023-5-12 20:33 编辑

2865#那个网址我现在打不开。
那是不是把18.04改为20.04就行了?
回复

使用道具 举报

690#
 楼主| 发表于 2023-5-12 20:35:30 | 显示全部楼层
那只能跟进了,出现问题再说。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-16 07:05

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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