无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
1#
发表于 2021-6-2 10:42:51 | 显示全部楼层
yaya大大,我看到g4dUEFI支持ftp网起,就尝试用网络启动的方式加载g4dUEFI,方式是通过ipxe的形式chain tftp://ip/bootx64.efi 。结果是一上来黑屏,此时键盘有响应,视频输出信号也有,但是是纯黑内容。
在此状态放置一段时间(5-20分钟随机?还没摸到规律)之后,屏幕突然亮起,显示内置菜单。
看样子时里面哪里出状况了,不知有什么方式可以查找么。同一个bootx64.efi用硬盘引导的方式可以立即显示菜单。菜单内容
  1. default 0
  2. title 命令行
  3. commandline

  4. title 退出grub4dos
  5. exit_g4d

  6. title 重启
  7. reboot

  8. title 关机
  9. halt
复制代码
回复

使用道具 举报

2#
发表于 2021-6-15 09:02:14 | 显示全部楼层
yaya大,不知道g4e是否支持启动参数?或者读取UEFI的环境变量?如果从外部UEFI shell 脚本启动g4e的话,没有数据传递渠道的话衔接不起来。

点评

你具体想怎么用这个参数?当作g4e的一句命令来执行,还是把它保存到某个变量中以便脚本调用? 请说一下具体的使用场景。  详情 回复 发表于 2021-6-15 14:08
回复

使用道具 举报

3#
发表于 2021-6-15 18:20:36 | 显示全部楼层
2011yaya2007777 发表于 2021-6-15 10:40
现在不支持启动参数。我不清楚你从外部UEFI shell 脚本启动g4e,需要传到什么数据。举个例子说说。
网启的 ...

我的想法是这样的:因为整天要在机房弄系统很枯燥,就寻思着偷懒。目标是往机器里放镜像然后启动。我试着做了个可以P2P下载镜像的efi系统(还在调试),通过接受参数用P2P下载指定镜像。我想Linux和windows都能支持,所以用g4e做引导。因为g4e没有网络功能,从ipxe上sanhook出来的盘进了g4e之后也看不到,所以就没法确定要启动的镜像名称了。所以寻思着有什么方法可以把镜像名字带进去。因为要启动的镜像名字也不确定,没法写固定菜单。
网起随机黑屏的原因我也始终没找到,黑屏时间好像没啥规律,很懵。
回复

使用道具 举报

4#
发表于 2021-6-15 18:26:25 | 显示全部楼层
wintoflash 发表于 2021-6-15 14:08
你具体想怎么用这个参数?当作g4e的一句命令来执行,还是把它保存到某个g4e变量中以便脚本调用?
请说一 ...

没想到也惊动了flash大。
其实就是想传递一个不确定是啥的镜像名字进去然后引导启动。
回复

使用道具 举报

5#
发表于 2021-6-15 18:27:54 | 显示全部楼层
2011whp 发表于 2021-6-15 14:53
fmwqsn 说传参数

估计是受   linux  grub.exe   --confilg  $menuentry   的影响

whp大想的没错,我确实就是这个想法。
不过因为我想搞得东西名字不一定,所以不能写固定菜单。
回复

使用道具 举报

6#
发表于 2021-6-16 10:17:45 | 显示全部楼层
2011yaya2007777 发表于 2021-6-16 08:46
我觉得可以使用菜单来实现你的想法。
在菜单使用条件判断,什么情况下使用哪个pe。
也可以在菜单调用批 ...

唔,我一开始也是这么想的,也是这么做的。不过实际用的时候要批量起机器的时候还是得挨个机器操作一遍。一个两个机器还好说,十几二十个机器也还行,几十上百个机器就较劲了。机房里两千台多个服务器如果碰见大维护或者大规模割接,就哈利路亚了,备不住还得改批处理,比直接手动起还慢。另外,机房里受到网络状况、机器故障、实时需求等各种因素影响,哪个机器什么时候要起哪个镜像压根没法预测,批处理我实在是写不出来(我是废物OTZ)……所以想通过网络搞全自动。在一个地方把要启动目标统一放好,然后只要挨个把机器点亮就行了。(不过这么搞完我估计要失业的感觉。。。)

点评

试试这个外部命令获取efi命令行 [attachimg]481768[/attachimg] 用法: cmdline [变量名] 把命令行字符串保存到某个变量里面,比如 cmdline abcd,之后就可以用 %abcd% 来获取这个命令行了。  详情 回复 发表于 2021-6-16 10:51
回复

使用道具 举报

7#
发表于 2021-6-16 11:01:20 | 显示全部楼层
2011yaya2007777 发表于 2021-6-16 10:42
那就是说,每启动一个机器,就得输入一个参数。
菜单就设置一项妥了。每次输入一个参数,和每次修改一项 ...

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

使用道具 举报

8#
发表于 2021-6-16 18:51:49 | 显示全部楼层
wintoflash 发表于 2021-6-16 10:51
试试这个外部命令获取efi命令行

flash大威武。
我做了个实验性的脚本试了下,可以生效。
我看看继续折腾折腾。

点评

折腾了个 什么 uefi系统呢, 基于什么,IPx 还是 UEFIshell ipx 论坛的网络启动区,能启pe ,你的目标 是 安装系统 ?  详情 回复 发表于 2021-6-16 18:55
回复

使用道具 举报

9#
发表于 2021-6-16 19:15:04 | 显示全部楼层
2011whp 发表于 2021-6-16 18:55
折腾了个 什么 uefi系统呢,

基于什么,IPx  还是  UEFIshell

我没搞那么高深的东西啦……
单纯就是为了自己能偷懒,想弄个机房里能自动下载镜像自动启动机器的玩意来着。
目标是基于uefi shell,获取自己的目标镜像名,然后起一个P2P给下载下来,最后用g4e给启动起来。
我到现在G4E的编译环境都没搭建成功。几位大佬给的解答和教程我都有试,死也不知道为啥。麻了。等回头换个电脑试试。

点评

可以 把 win10.iso 搞成 带 svbus 驱动的,这样g4e 就可以map 安装win10  详情 回复 发表于 2021-6-16 20:24
回复

使用道具 举报

10#
发表于 2021-6-18 19:57:06 | 显示全部楼层
如果进入G4E之后直接出一行
FAULT: <<<<<<<<<<SYSTEM STATCK RUNOUT>>>>>>>>>>
然后就停在命令行了,不管是输入什么指令都是反一行这个,外加Error 30
会是什么原因呢。
我从我自己机器上运行就没问题,但是在其他两台机器上都这样。
回复

使用道具 举报

11#
发表于 2021-6-18 21:07:14 | 显示全部楼层
2011yaya2007777 发表于 2021-6-18 20:37
g4e版本多少?是不是最新版本?



版本是2021-05-19
附图是通过grub2加载和通过uefi shell加载时的输出。
回复

使用道具 举报

12#
发表于 2021-6-18 21:10:16 | 显示全部楼层
2011yaya2007777 发表于 2021-6-18 20:37
g4e版本多少?是不是最新版本?



版本是2021-05-19
附图是通过grub2加载和通过uefi shell加载时的输出。
回复

使用道具 举报

13#
发表于 2021-6-18 21:15:54 | 显示全部楼层
感觉论坛出故障了?页面各种打不开呢。
回复

使用道具 举报

14#
发表于 2021-6-19 15:23:39 | 显示全部楼层
2011yaya2007777 发表于 2021-6-18 21:36
使用最新版本试一试。华为浏览器无法登录了。真是的。

换用了2021-06-02版本,在昨天出问题的机器上试了一下,顺利启动了。
不过在使用flash大的cmdline获取参数之后,如果紧接着直接使用find,有大概75%的概率会卡死。

点评

真找到 一个 用UEFISHELL环境能下载 文件的 办法了? 你是 从什么地方引导g4e的  详情 回复 发表于 2021-6-19 16:11
回复

使用道具 举报

15#
发表于 2021-6-19 15:39:52 | 显示全部楼层
ksafei 发表于 2021-6-19 15:11
他说的应该是这种情况(见下图)。20210426及以前版本的g4e可以自动连接EFI\gurb\menu.lst引导文件,新版 ...

这个应该可以用内建菜单来解决吧。

点评

感谢指点!  发表于 2021-6-20 11:53
回复

使用道具 举报

16#
发表于 2021-6-19 16:36:28 | 显示全部楼层
2011whp 发表于 2021-6-19 16:11
真找到 一个 用UEFISHELL环境能下载  文件的 办法了?

你是 从什么地方引导g4e的

UEFI shell直接下载文件还有些较劲,受文件系统影响太大了。现有能找到的文件系统驱动大都只能读,写都不太友好,特别是NTFS的,没脾气,搞不懂为啥,写了就出问题。现在是尝试事先写好盘,然后做个快照,直接DD进去这种感觉。不然就是起一个内核。还在尝试中。

点评

现在主流是: ipxe 网启PE ,然后 ,利用 PE下的 CMD 自动化工具 自动安装 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=425473&extra=page%3D1 你现在的想法: 整个流程上 生态不 全,难办 问  详情 回复 发表于 2021-6-19 18:03
回复

使用道具 举报

17#
发表于 2021-6-20 19:57:19 | 显示全部楼层
2011whp 发表于 2021-6-19 18:03
现在主流是: ipxe 网启PE  ,然后 ,利用  PE下的 CMD  自动化工具  自动安装
http://bbs.wuyou.net/f ...

我自己编译了一套UEFI shell来用的。
目前试的几个设备,支持UEFI的都能跑起来。
g4e直接网起会随机卡死,所以我才从UEFI shell来启动的。网络启动直接走PXE加载IPXE,然后sanhook挂一个iso来读文件倒是可行。这样理论上能解决文件来源的问题。

点评

怎么获取到 Ipxe 留下的信息呢, g4e内 有tftp的驱动 不过现在 没有 (pd)盘, 具体不太清楚  详情 回复 发表于 2021-6-21 14:00
回复

使用道具 举报

18#
发表于 2021-6-23 16:22:35 | 显示全部楼层
本帖最后由 fmwqsn 于 2021-6-23 16:24 编辑
2011whp 发表于 2021-6-23 15:58
fmwqsn 从别的 渠道 下载文件,

g4e 网启后 (用户自设 tftp 的IP地址)

ftp确实不能用。我最开始也很没脾气。而且我网起G4E会随机卡5-20分钟不等的时间,至今没摸到规律,也不知道为啥,但是最终就能进去还能正常用。看样子你那边没有碰到。
我目前时采取的先网起IPXE,通过http挂载一个包含所需文件的iso,然后启动uefi shell。这样从uefi shell里就能看到挂载的iso,然后去用里面的东西。

不过如果你想要从G4E里使用的话,有可能会看不到。我这里就是从uefi shell里能看到光盘,但是进了G4E就看不到了。所以

点评

是 慢点,不到 1分钟吧,没你说的那么慢 主板的 是 pxe2.1  详情 回复 发表于 2021-6-23 18:08
回复

使用道具 举报

19#
发表于 2021-6-23 17:27:50 | 显示全部楼层
ESD 发表于 2021-6-22 11:41
我进入grub命令行模式,输入dd,得到 Error:No such command:dd

请问,目前G4E是不是还不支持DD命令?

G4E是有DD指令的。你用的是最新版本么?
如果是的话,是怎么个使用方法呢?
回复

使用道具 举报

20#
发表于 2021-6-23 18:59:30 | 显示全部楼层
2011whp 发表于 2021-6-23 18:08
是 慢点,不到 1分钟吧,没你说的那么慢   

主板的 是 pxe2.1

只有一分钟么,不过也够慢了。
我倒是没用qemu试过,都是在真机上试的。
真的是不同的机器能试出来完全不同的结果。
我还碰到过所有的文件操作第一次必失败,但是往后就都能成功的。
也不知道为啥。

点评

网启的,什么也没有 估计,命令,先在内部找, 找不到的话 要找磁盘上 命令 就 死机了(容错性 不强的命令,估计也会 死机)  详情 回复 发表于 2021-6-23 19:07
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-17 23:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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