无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
631#
 楼主| 发表于 2022-12-25 14:17:41 | 显示全部楼层
请问如何用g4e启动IFDU3.55-efi.img?

G4E不支持启动软盘镜像。
回复

使用道具 举报

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

点评

前面已说明可实机启动 [attachimg]515947[/attachimg] [attachimg]515948[/attachimg] 事实上map --mem 后立刻boot 就能启动  详情 回复 发表于 2022-12-26 22:40
AMI UEFI固件似乎是支持软驱启动的。 下面是USB-FDD 1.44M的例子,启动到Shell。 [attachimg]515918[/attachimg] [attachimg]515919[/attachimg]  详情 回复 发表于 2022-12-26 07:59
回复

使用道具 举报

633#
 楼主| 发表于 2022-12-26 08:58:40 | 显示全部楼层
AMI UEFI固件似乎是支持软驱

固件是支持软驱。问题是固件支持从软驱的/efi/bootx64.efi启动吗?
我不会在Shell中操作。你可以操作的话,试一试,看看能不能启动。

点评

/efi/bootx64.efi ?不应该是/efi/boot/bootx64.efi么? 上述shell就是软驱上的/efi/boot/bootx64.efi啊; 换成G4E的bootx64.efi,会进入G4E命令行。 [attachimg]515951[/attachimg]  详情 回复 发表于 2022-12-27 04:47
回复

使用道具 举报

634#
 楼主| 发表于 2023-1-4 16:30:56 来自手机 | 显示全部楼层
不支持
回复

使用道具 举报

635#
 楼主| 发表于 2023-1-4 18:18:14 来自手机 | 显示全部楼层
我还看了一下外部命令,没有loadslic。没注意有slic。应当支持吧。没有测试。286958你可以试试啊。

点评

https://github.com/chenall/grubutils/blob/master/g4eext/slic.c  详情 回复 发表于 2023-1-4 19:06
回复

使用道具 举报

636#
 楼主| 发表于 2023-2-24 15:35:17 | 显示全部楼层
似乎不兼容 graphicsmode -1 1024

SISO内部调整分辨率
graphicsmode -1 320:800 100:1000 24:32
所以不会支持1024。你可以修改它。

与2022-12-22有什么不同,我不清楚,请给出示例。

点评

grldr 2022.1212 graphicsmode -1 1024 模式下: 快照1:正常。 grldr 2023.0223 graphicsmode -1 1024 模式下: 快照2:不正常。  详情 回复 发表于 2023-2-24 16:15
回复

使用道具 举报

637#
 楼主| 发表于 2023-2-24 17:25:55 来自手机 | 显示全部楼层
故障没有重现。你菜单只保留一句graphicsmode -1 1024 ,然后进入命令行,执行SISO RUN --automenu,看看状况。

点评

语句: graphicsmode -1 1024 set /a fh=26 set /a vbe=%vbe%+0 if %vbe%==640 graphicsmode -1 640 && set /a fh=16 splashimage /BOOT/GRUB/VBE/BG%fh%.jpg font --font-high=%fh% /BOOT/GRUB/VBE/F  详情 回复 发表于 2023-2-24 17:59
回复

使用道具 举报

638#
 楼主| 发表于 2023-2-24 19:08:55 来自手机 | 显示全部楼层
把你的26字库也发上来吧

点评

F26字库  详情 回复 发表于 2023-2-24 19:29
回复

使用道具 举报

639#
 楼主| 发表于 2023-2-24 20:19:22 来自手机 | 显示全部楼层
问题已经重现,谢谢了。抽时间排查一下。
回复

使用道具 举报

640#
 楼主| 发表于 2023-3-1 11:21:05 | 显示全部楼层
SISO 在 grub4dos-0.4.6a-2023-02-23 下显示不完整,

已经修正。从官网下载。

点评

grub4dos-0.4.6a-2023-02-28 测试了一下,graphicsmode 640 模式下,可以正常显示 SISO 菜单,1024 模式下,如同 grub4dos-0.4.6a-2023-02-23 版,仍无法正常显示。 退回使用去年最后一版 grub4dos-0.4.6a-  详情 回复 发表于 2023-3-1 11:24
回复

使用道具 举报

641#
 楼主| 发表于 2023-3-1 11:42:47 来自手机 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2023-3-1 11:45 编辑
grub4dos-0.4.6a-2023-02-28 测试了一下

2023-02-28我发布后下载测试,怎么又不行了。可能是删除调试代码时给更改了。今天又重新解决了一下。你使用2023-03-01版本测试。官网已经可以下载了。
回复

使用道具 举报

642#
 楼主| 发表于 2023-3-1 15:17:25 | 显示全部楼层
grub4dos-0.4.6a-2023-03-01, SISO  可以显示菜单了。1024 模式下显示英文,640模式下是中文。

RUN、SISO内部使用0x1800820处的内容判断是否加载了全字库。如果为零,显示英文,否则显示中文。
由于现在字库及屏幕背景图不使用固定地址,0x1800820处的内容是随机的,所以出现奇怪的现象。
留待下次一遍处理吧,好在是小问题。否则更新太频繁了。
谢谢你的测试反馈!

点评

好的,谢谢大师! grub4dos-0.4.6a-2023-03-01 版本,只要第一次以 640 分辨率运行一次,然后 1024 分辨率运行,就可以是中文显示了。 另外再反映一个测试情况,当背景以 message 方式运行时(1024x768),从 grub  详情 回复 发表于 2023-3-1 16:31
回复

使用道具 举报

643#
 楼主| 发表于 2023-3-1 19:42:57 来自手机 | 显示全部楼层
给一个message背景图,以及加载方式(既菜单)。没有用过。不过现在已经不支持这种方式了。可能是保留代码还在起作用。

点评

目前论坛上常用的启动移动盘:USBOS,EasyU,USM 和 优捷易。其中 USBOS 采用 VBE 方式,其它三个 message 方式。 附件是 EasyU BIOS 启动文件:MESSAGE(800x600),MENU.LST(主菜单),TOOL.LST(二级菜单)加载  详情 回复 发表于 2023-3-1 21:40
回复

使用道具 举报

644#
 楼主| 发表于 2023-3-2 16:11:07 | 显示全部楼层
目前论坛上常用的启动移动盘:USBOS,EasyU,USM 和 优捷易。

试一试。

grldr.rar

161.5 KB, 下载次数: 20, 下载积分: 无忧币 -2

点评

这个全部正常了,谢谢大师!  详情 回复 发表于 2023-3-2 17:01
回复

使用道具 举报

645#
 楼主| 发表于 2023-3-14 11:15:57 来自手机 | 显示全部楼层
一并改了吧
回复

使用道具 举报

646#
 楼主| 发表于 2023-3-14 18:52:27 来自手机 | 显示全部楼层
现在g4e也支持光盘启动镜像使用硬盘模式。    使用UltraISO Premium 9.71 及以上版本,可以制作UEFI可启动ISO,加载 EFI 引导映像文件(Ctrl+Alt+I)  。
回复

使用道具 举报

647#
 楼主| 发表于 2023-3-30 15:57:45 | 显示全部楼层
ubuntu-18.04.6-desktop-amd64.iso启动分析

方法1.
虚拟机挂载ubuntu-18.04.6-desktop-amd64.iso启动
可以进入包含‘用户名’‘密码’的界面。应该是启动成功了。

方法2.
title ubuntu-18.04.6-desktop-amd64.iso
find --set-root /boot/imgs/ubuntu-18.04.6-desktop-amd64.iso
map /boot/imgs/ubuntu-18.04.6-desktop-amd64.iso (0xff)
chainloader (0xff)

以前以为进入红背景界面(有循环渐进的点),就是启动成功了,其实是误判。
过了这个界面,提示如下:
[    67.49145] blk_update_request: I/O error. dev fd0. sector 0 op  0x0:(READ) f1
ags 0x0 phys_seg 1 prio class 0

BusyBox v1.27.2  (Ubuntu 1:1.27.2-2ubuntu3.3) built-in shell (ash)
Enter 'help' for a list of built-in command.
(initramfs)

方法3.
title /linux1/ubuntu/ubuntu-18.04.6-desktop-amd64.iso
debug 3
find --ignore-floppies --ignore-cd --set-root /boot/imgs/ubuntu-18.04.6-desktop-amd64.iso
map /boot/imgs/ubuntu-18.04.6-desktop-amd64.iso (hd32)
map --hook
kernel (hd32)/casper/vmlinuz boot=casper iso-scan/filename=/boot/imgs/ubuntu-18.04.6-desktop-amd64.iso noprompt noeject
initrd (hd32)/casper/initrd
boot

提示如下:
[      3.290560] ---[ end Kernel panic - not syncing: vfs: unable to mount root fs on unknown-block(0,0) ]  


探讨几个问题:
1. 方法1与方法2都是加载ISO内启动软盘镜像中的bootx64.efi,但是一个成功另一个失败。
方法2加载的(0xff),好像kernel不认识。
如果使用以下方法:
chainloader (0xff)/efi/boot/bootx64.efi boot=casper iso-scan/filename=/boot/imgs/ubuntu-18.04.6-desktop-amd64.iso noprompt noeject
kernel反馈:打不开\boot\imgs\ubuntu-18.04.6-desktop-amd64.iso
或许是kernel根本不理会UEFI建立的设备,而是抛弃UEFI环境,直接加载自己的驱动,然后探测有那些存在的设备,其中有没有传入指定的设备存在?
或许是kernel根本不理会UEFI建立的VenHw(EBE35AD9-40F5-AADE-0B919A46BF4b)/CDROM(1,11c,B40)这样类型的设备,
而只认PciRoot(0)/Pci(1,1)/Ata(S,M,0)/CDROM(1,11c,B40)这样类型的设备?

2.方法3失败,是传入的参数缺失或是不正确?我觉得这是启动linux最麻烦的地方,每个分支的都不一样,而且同一分支的不同序号也不同。

3.怎样才能成功启动linux光盘?请各路神仙多多指教!

点评

你这用的是哪个版本的g4e?你最新编译的最新alpha/beta测试版本吗? ubuntu版本是18吗?  详情 回复 发表于 2023-4-4 21:46
操作系统调用 BS->ExitBootServices 之后,所有的 UEFI 启动服务就都不能用了,BlockIo,GOP 之类的所有这些 Protocol 也不能用了。 操作系统是用自带的驱动自己探测,并读写硬盘的。 (0xff)/efi/boot/bootx64.e  详情 回复 发表于 2023-4-1 09:42
回复

使用道具 举报

648#
 楼主| 发表于 2023-4-1 10:55:26 来自手机 | 显示全部楼层
不知有没有必要同时支持两个协议?这样可以兼顾新老版本,如果不复杂的话。
回复

使用道具 举报

649#
 楼主| 发表于 2023-4-4 21:58:56 来自手机 | 显示全部楼层
G4E是最新版本。ubuntu有版本号。
回复

使用道具 举报

650#
 楼主| 发表于 2023-4-22 18:20:03 | 显示全部楼层
图形模式及Unicode字体实现,发现在surface上,显示在左上角一小块

这是因为屏幕分辨率高,但是在菜单里,设置的背景图尺寸小,字体尺寸小。
回复

使用道具 举报

651#
 楼主| 发表于 2023-4-26 14:46:26 来自手机 | 显示全部楼层
在菜单里  /efi/grub/ext/hotkey  xxxxxxx  加载。进入命令行输入  help  hotkey  可以查看详细帮助

点评

另外我下载最新版的grub4dos for uefi ,里面的bootx64.efi文件360安全卫士会报毒说含有木马,我虽然知道误报,但是一下载下来,360就把bootx64.efi给删了,360真的蛋疼。  详情 回复 发表于 2023-4-27 04:59
您好,谢谢yaya大大的回复。按你的方法成功了。但是我按你的方法在命令行输入help hotkey,甚至把路径补全输入help /efi/grub/ext/hotkey 没反应,查不到帮助信息。另外如果把拓展命令放到grub文件夹是不是就可以直  详情 回复 发表于 2023-4-27 04:53
回复

使用道具 举报

652#
 楼主| 发表于 2023-4-27 07:51:10 | 显示全部楼层
另外如果把拓展命令放到grub文件夹是不是就可以直接用hotkey xxxxx了,不用把路径写全?

在菜单里设置外置命令路径,使用时就不用再写路径了:
command --set-path=/EFI/grub/ext

在菜单里设置快捷热键字母颜色:
setmenu --hotkey-color=0xff00

命令要加引号:
hotkey -A [F4] "commandline"

关于热键帮助,前面说错了,应当是:
/efi/grub/ext/hotkey

点评

我发现了一点,不能设置字母f为快捷键。  详情 回复 发表于 2023-4-28 04:02
明白啦,有用了,谢谢大佬  详情 回复 发表于 2023-4-28 03:29
回复

使用道具 举报

653#
 楼主| 发表于 2023-4-29 07:00:06 | 显示全部楼层
G4E是否不能安装在SD card-FAT16格式里面,找不到menu.lst启动

这就是说可以进入命令行。
menu.lst是在“/efi/grub/"吗?

点评

可以进入命令行grub> menu.lst是在“/efi/grub/下 但是就是不显示菜单  详情 回复 发表于 2023-4-29 13:10
回复

使用道具 举报

654#
 楼主| 发表于 2023-4-29 07:40:41 | 显示全部楼层
对于 Linux 来说,它可以同时支持这两种。
对于 bootloader 来说,我们有办法知道一个内核是否支持 EFI Handover Protocol。但是,我们没办法知道一个内核是否支持 LoadFile2。

ubuntu-18.04.6,内核版本20d,使用 EFI Handover Protocol 可以成功启动,但是使用 LoadFile2 失败。
ubuntu-22.04.2,内核版本20f,可以使用 EFI Handover Protocol/LoadFile2 这两种方法成功启动。

可否使用内核版本作为分界,>20e 时使用 LoadFile2?

点评

不行。 正常情况下,用 就可以保证能启动。 * 正常情况指的是正规安装的 Linux,kernel 和 initrd 都位于 FAT 分区里面。  详情 回复 发表于 2023-4-29 13:59
回复

使用道具 举报

655#
 楼主| 发表于 2023-4-29 13:21:08 | 显示全部楼层
在命令行执行
root
ls
find
截图,判断一下,根目录是不是卡设备?

点评

里面是双启动安装,GRUB2菜单运行一切正常,就是G4E辨别不到SD配备。  详情 回复 发表于 2023-4-30 09:47
回复

使用道具 举报

656#
 楼主| 发表于 2023-4-29 15:52:13 | 显示全部楼层
* 正常情况指的是正规安装的 Linux,kernel 和 initrd 都位于 FAT 分区里面。

大帅,这是启动光盘镜像啊。莫非要把这两个文件复制到fat分区再加载?
回复

使用道具 举报

657#
 楼主| 发表于 2023-4-30 10:11:36 来自手机 | 显示全部楼层
你是说SD卡量产为两个单元?启动时狂按Q键,显示调试信息,截图反馈一下。

点评

刚刚又测试了CF卡,竟然可以运行菜单功能都没问题,看来是SD不支持。  详情 回复 发表于 2023-4-30 12:39
回复

使用道具 举报

658#
 楼主| 发表于 2023-4-30 13:49:37 来自手机 | 显示全部楼层
2773#的截图是启动FD还是SD?
回复

使用道具 举报

659#
 楼主| 发表于 2023-4-30 13:55:23 来自手机 | 显示全部楼层
2774#的截图显示,SD卡就一个分区,没有/efi/grub/目录呀,

点评

2773#的截图是是单一的SD启动? 2774#的截图显示,是由SD卡启动我插上CF卡跳到CF卡menu.lst启动的,那(h0,0)是CF卡的,表示SD是无法显示配备分区所以无法启动的。  详情 回复 发表于 2023-4-30 19:34
回复

使用道具 举报

660#
 楼主| 发表于 2023-4-30 20:19:19 来自手机 | 显示全部楼层
还是没有搞明白。说SD就插入SD卡启动,干吗又查一个FD卡?多一个干扰因数。(hd0,0)是FD卡,哪个是SD卡?hd1还是hd2?这两个盘可是有多个分区的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 16:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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