无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
391#
 楼主| 发表于 2021-6-2 12:26:54 来自手机 | 显示全部楼层
比较诡异。网启不太熟悉,看看有没有人懂。
回复

使用道具 举报

392#
 楼主| 发表于 2021-6-4 10:24:51 | 显示全部楼层
用了6.2的版本还是出现花屏

没有重现你说的问题。

在子菜单里,不应当重复设置 graphicsmode -1 1280
如果下一级菜单字体尺寸一样的话,没有必要重复设置 font --font-high=40 /EFI/grub/menu40.hex.gz
回复

使用道具 举报

393#
 楼主| 发表于 2021-6-4 11:46:24 来自手机 | 显示全部楼层
没有顾上。这个不着急,慢慢弄。
回复

使用道具 举报

394#
 楼主| 发表于 2021-6-6 05:30:49 来自手机 | 显示全部楼层
设置倒计时为1秒,或者0。
回复

使用道具 举报

395#
 楼主| 发表于 2021-6-14 15:04:18 | 显示全部楼层
只是菜单还有点弱,如果能像原来的Grub可以用command BGAutoChange 更换背景就更好了……

http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

396#
 楼主| 发表于 2021-6-15 10:40:52 | 显示全部楼层
现在不支持启动参数。我不清楚你从外部UEFI shell 脚本启动g4e,需要传到什么数据。举个例子说说。
网启的话,他可以传到菜单的。

点评

我的想法是这样的:因为整天要在机房弄系统很枯燥,就寻思着偷懒。目标是往机器里放镜像然后启动。我试着做了个可以P2P下载镜像的efi系统(还在调试),通过接受参数用P2P下载指定镜像。我想Linux和windows都能支持  详情 回复 发表于 2021-6-15 18:20
回复

使用道具 举报

397#
 楼主| 发表于 2021-6-16 08:46:37 | 显示全部楼层
我的想法是这样的:因为整天要在机房弄系统很枯燥,就寻思着偷懒

我觉得可以使用菜单来实现你的想法。
在菜单使用条件判断,什么情况下使用哪个pe。
也可以在菜单调用批处理。使用强大的批处理实现。

点评

唔,我一开始也是这么想的,也是这么做的。不过实际用的时候要批量起机器的时候还是得挨个机器操作一遍。一个两个机器还好说,十几二十个机器也还行,几十上百个机器就较劲了。机房里两千台多个服务器如果碰见大维护  详情 回复 发表于 2021-6-16 10:17
回复

使用道具 举报

398#
 楼主| 发表于 2021-6-16 09:07:29 | 显示全部楼层
另外 @2011yaya2007777 请问我怎么样才能把字符串保存到一个 g4e 变量里面以便调用,比如 echo %?%

set 变量名=字符串
echo %变量名%

点评

我说的是在外部命令里面,怎么样才能返回一个字符串,存到%?%里面。不是g4d脚本。  详情 回复 发表于 2021-6-16 09:53
回复

使用道具 举报

399#
 楼主| 发表于 2021-6-16 09:09:07 | 显示全部楼层
esp分区格式化为ntfs时,timeout无效,必须手动回车才能转至menu.lst。

手动回车后,是进入命令行?还是你的菜单界面?

点评

他说的应该是这种情况(见下图)。20210426及以前版本的g4e可以自动连接EFI\gurb\menu.lst引导文件,新版本的g4e不能自动引导菜单,必须要手动才行,请修正 [attachimg]481989[/attachimg]  详情 回复 发表于 2021-6-19 15:11
回复

使用道具 举报

400#
 楼主| 发表于 2021-6-16 10:42:31 | 显示全部楼层
唔,我一开始也是这么想的,也是这么做的

那就是说,每启动一个机器,就得输入一个参数。
菜单就设置一项妥了。每次输入一个参数,和每次修改一项菜单,劳动量好像是一样的。

点评

挨个机器弄参数肯定不现实,所以我现在的策略是先从UEFI shell 连接网络,获取到自己要启动的镜像,下载之后用g4e来引导。只要能把镜像名字传进去的话,理论上应该有可以完全自动的可能。(但愿别出意外)  详情 回复 发表于 2021-6-16 11:01
回复

使用道具 举报

401#
 楼主| 发表于 2021-6-16 11:11:31 | 显示全部楼层
我说的是在外部命令里面,怎么样才能返回一个字符串,存到%?%里面。不是g4d脚本。

我没有测试过,我觉得在外部命令里面与在内部命令里面,使用变量是一样的。

内置变量十,
内置变量 %?% ,用来保存命令返回的字符串信息,目前可用的信息有两个:
1,cat --locate= 或 cat --locatei= 返回最后一个找到的位置
注:如果未找到指定的字符串,变量 @retval 将返回 0 ,如果找到,变量 @retval 将返回找到的<数量>。
    grub> cat --locate=file0 --number=3 /$MFT
    0 400 800
    grub> echo %?%
    0x800
2,%?%=Start_Sector
    grub> map --status=0
    grub> echo %?%
    0x1FE100
在外部/内部命令里一样可以运行。

如果要从外部命令里返回一个值,或者字符串,可以把外部命令的返回值设置为指针,由指针传回数据。
回复

使用道具 举报

402#
 楼主| 发表于 2021-6-17 15:23:09 | 显示全部楼层
赞成wintoflash的说法。
现在翻译软件使用也方便,国际友人自行翻译好了。
如果我事先把中文使用百度翻译了,意思差不多,但比较生硬,缺少介词。

点评

@2011yaya2007777 你确定 grub_efi_system_table 和 grub_efi_image_handle 应该用 SYSVAR 而不是 SYSVAR_2 吗? 你改完之后 ver, cmdline, date, time 等要用 efi 系统表的外部命令就坏了。 另外 #if defined(  详情 回复 发表于 2021-6-17 19:52
回复

使用道具 举报

403#
 楼主| 发表于 2021-6-18 20:37:51 来自手机 | 显示全部楼层
g4e版本多少?是不是最新版本?

点评

[attachimg]481936[/attachimg][attachimg]481935[/attachimg] 版本是2021-05-19 附图是通过grub2加载和通过uefi shell加载时的输出。  详情 回复 发表于 2021-6-18 21:10
回复

使用道具 举报

404#
 楼主| 发表于 2021-6-18 21:36:26 来自手机 | 显示全部楼层
使用最新版本试一试。华为浏览器无法登录了。真是的。
回复

使用道具 举报

405#
 楼主| 发表于 2021-6-19 11:39:55 | 显示全部楼层
@2011yaya2007777 你确定 grub_efi_system_table 和 grub_efi_image_handle 应该用 SYSVAR 而不是 SYSVAR_2 吗?
你改完之后 ver, cmdline, date, time 等要用 efi 系统表的外部命令就坏了。

已经修正,提交官网。

另外,在外部命令里,增加
#define ADDR_RET_STR ((char *)(SYSVAR_2(31)))
/* If the variable is a string, then:  ADDR_RET_STR = var;
   If the variable is a numeric value, then:  sprintf (ADDR_RET_STR,"0x%lx",var); */
这样,使用 echo %?% 可以显示变量。
回复

使用道具 举报

406#
 楼主| 发表于 2021-6-19 19:48:52 来自手机 | 显示全部楼层
对不起,g4e更改后没有上传。你把asm.s的变量31设定一下。
回复

使用道具 举报

407#
 楼主| 发表于 2021-6-20 10:40:26 | 显示全部楼层
关于ADDR_RET_STR的使用问题。

1. 当变量是字符串时:(或者说变量是一个指针)
使用BCD编码,如 a 表示为 36 31 或者 0011 0110 0011 0001
例如:
char uefi_ver[]={Windows 10};
set uefi_ver=Windows 10;
set uefi_ver=0x11223344;
执行
ADDR_RET_STR = uefi_ver;

2 当变量是数值时:
使用16进制编码,如 a 表示为 61 或者 0110 0001
例如:
int uefi_ver=0x11223344;
执行
sprintf (ADDR_RET_STR,"0x%lx",uefi_ver);
sprintf (ADDR_RET_STR,"0x%lx",0x11223344);
回复

使用道具 举报

408#
 楼主| 发表于 2021-6-26 15:06:46 | 显示全部楼层
关于存在光驱情况下g4e整体仿真iso启动的问题

我使用grub4dos-for_UEFI-2021-06-19版本,QEMU测试。
挂载硬盘、光盘,从硬盘启动。
映射一个光盘,从映射光盘启动,正常。启动的绝不是预先挂载的光盘。
不过,要启动预先挂载的光盘失败!不知从何时引入的bug,待排查。
回复

使用道具 举报

409#
 楼主| 发表于 2021-6-26 15:14:05 | 显示全部楼层
映射 ISO 之类后,chainloader (hd0) (hd0为实际硬盘)的结果,就是引导映射出的 ISO 里面的相关引导文件

确实是这样。map 一个虚拟光盘后,就是启动这个光盘。chainloader (cd0)也好,chainloader (hd0)也吧,
或者 chainloader ()也一样,都是启动这个光盘。一开始想使用chainloader (),但考虑到以前的使用习惯,还是建议使用chainloader (cd-1).

这个小秘密也被你发现了?
回复

使用道具 举报

410#
 楼主| 发表于 2021-6-26 15:40:42 | 显示全部楼层
他说的应该是这种情况(见下图)。20210426及以前版本的g4e可以自动连接EFI\gurb\menu.lst引导文件,新版本的g4e不能自动引导菜单,必须要手动才行,请修正

这个问题我还没有重现。
lpsyuntao 反映的问题是,从 NTFS 分区启动 /efi/boot/bootx64.efi,卡在了预置菜单界面,需手动回车,才能进入启动菜单。因为我无法使用 QEMU 从 NTFS 分区启动。

我这里发现,如果把主菜单改名,则启动到预置菜单界面卡住,按任意键进入命令行。这是因为预置菜单找不到主菜单。
如果lpsyuntao 反映的是手动进入命令行,这好理解,但是他说进入了主菜单?在不好解释。

点评

qemu用于启动PE感觉很卡,建议用vmware测试,我分享个,你看下能否用上,只有46.2MB,支持NTFS分区启动。https://liuzhaoyzz.lanzoui.com/b00nnn5uf  详情 回复 发表于 2021-6-26 16:57
回复

使用道具 举报

411#
 楼主| 发表于 2021-6-27 09:27:21 | 显示全部楼层
我分享个,你看下能否用上

谢谢liuzhaoyzz提供的vmware。只可惜我的系统是Windows7 32位,只能运行vmware10及以下版本。
回复

使用道具 举报

412#
 楼主| 发表于 2021-8-2 19:04:55 | 显示全部楼层
试一试这个。

BOOTX64.rar

140.18 KB, 下载次数: 12, 下载积分: 无忧币 -2

回复

使用道具 举报

413#
 楼主| 发表于 2021-8-3 07:54:06 来自手机 | 显示全部楼层
我觉得你应当在iso镜像上找找问题,比如缺少驱动什么的。
回复

使用道具 举报

414#
 楼主| 发表于 2021-8-3 18:24:52 | 显示全部楼层
以 100kb/s 的速度,下载你提供的文件,具体是使用哪个?
回复

使用道具 举报

415#
 楼主| 发表于 2021-8-3 20:19:58 来自手机 | 显示全部楼层
你这不是一个简简单单的光盘镜像?与svbus驱动有关?ramos专区有讨论,视乎制作有奥秘。你能否测试一下,官网发布的版本,正确与错误的分界日期?
回复

使用道具 举报

416#
 楼主| 发表于 2021-8-4 08:09:17 | 显示全部楼层
svbusPE.iso测试结果:
镜像自带的2017-11-12版本的bootx64.efi,启动蓝屏。
使用2021-07-23版本的G4E,启动蓝屏。
使用2021-07-28版本的G4E,启动蓝屏。

svbusventoyPE.iso测试结果:
镜像自带的2017-11-12版本的bootx64.efi,启动蓝屏。
使用2021-07-23版本的G4E,启动蓝屏。
使用2021-07-28版本的G4E,启动蓝屏。

不知道你还想要什么测试?
回复

使用道具 举报

417#
 楼主| 发表于 2021-8-4 11:12:04 | 显示全部楼层
另一个问题:

这不是问题。
在命令行,字间距,行间距都等于0。
回复

使用道具 举报

418#
 楼主| 发表于 2021-8-4 19:43:46 来自手机 | 显示全部楼层
你没有正面回答我的问题。
回复

使用道具 举报

419#
 楼主| 发表于 2021-8-4 19:45:29 | 显示全部楼层
镜像自带的2017-11-12版本的bootx64.efi,启动蓝屏。

请解答。
回复

使用道具 举报

420#
 楼主| 发表于 2021-8-5 08:49:11 | 显示全部楼层
我也觉得 邪门了,

确实有点邪门。我以前的一个Win10PE_17763.107x64维护.iso,直接启动时提示“按任意键启动cd”,现在和你的一样,启动蓝屏,此后关机。
还有一个Win10_14393_PE_x64_8.6.iso,可以直接启动,也可以由g4e启动。体积377424kb。

要验证g4e,iso镜像必须首先可以由虚拟机直接启动(如果提示内存不足,也算可以启动类型)。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

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

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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