无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
发表于 2021-9-26 18:25:00 | 显示全部楼层
本帖最后由 2011whp 于 2021-9-26 18:31 编辑

这个样,识别不到
IMG_20210926_181849.jpg


不行 ,绕道(把linux引导移出来)
回复

使用道具 举报

发表于 2021-9-27 08:55:09 | 显示全部楼层
2011whp 发表于 2021-9-26 18:25
这个样,识别不到

你这是回复我的问题吗?还是说自己的问题。

引导硬盘上的LINUX系统,我自以为是基本功能,应该可以的!

点评

照你的问题 试了下 g4e 是 g4d 迁移过来的,可能有问题 等 yaya 解释, 上面是 解决问题的 办法 不经过 系统本身的 引导,会出 奇异的 问题  详情 回复 发表于 2021-9-27 12:08
回复

使用道具 举报

发表于 2021-9-27 12:08:23 | 显示全部楼层
dearmouse 发表于 2021-9-27 08:55
你这是回复我的问题吗?还是说自己的问题。

引导硬盘上的LINUX系统,我自以为是基本功能,应该可以的 ...

照你的问题 试了下

g4e 是 g4d 迁移过来的,可能有问题

等 yaya 解释, 上面是 解决问题的 办法

不经过 系统本身的 引导,会出 奇异的 问题
回复

使用道具 举报

 楼主| 发表于 2021-9-27 15:24:51 来自手机 | 显示全部楼层
g4e,g4d如何引导linux?应当是使用kerenl与initrd吧。命令后面有参数,而且版本不同,参数也不一样。
回复

使用道具 举报

发表于 2021-9-28 11:11:35 | 显示全部楼层
2011yaya2007777 发表于 2021-9-27 15:24
g4e,g4d如何引导linux?应当是使用kerenl与initrd吧。命令后面有参数,而且版本不同,参数也不一样。

是用kernel和initrd,但前提是要能访问分区中的文件才行,像我说的在访问文件时就死掉了。
回复

使用道具 举报

发表于 2021-9-28 11:25:06 | 显示全部楼层
请教一个问题:

在G4D时代,用下面的菜单可以实现一键跳转执行某个菜单:
title
#        clear
  echo -e \a\a\a\a\a\a\a\a\a\a\a\a
        echo avconbooting
        echo avconbooting
        pause --test-key > (md)0x300+1,1  
        dd if=(md) of=(md) bs=1 count=512 skip=0x4cb00 seek=0x2000000
        fallback 1
        checkrange 0x1769 read 0x2000000 && kernel
        fallback 2
        checkrange 0x316e read 0x2000000 && kernel
        fallback 3
        checkrange 0x1372 read 0x2000000 && kernel
        fallback 4
        checkrange 0x1f73 read 0x2000000 && kernel
#        fallback 2
#        kernel

时间来到G4D-For-UEFI,上述菜单好像是失效了,
那请问,在G4D-For-UEFI里面还可以读到某个按键码吗?如果能,正确的方法是?

做为G4D-For-UEFI中的上述功能的替代方案,我写了下面的菜单:(相比上面的,虽然输入要多按一回车,但也基本能接受)
title  \n
#        clear
fallback 0
set /p:10 os=Please Input:
if /i %os%==i && goto 1
if /i %os%==b && goto 4
if /i %os%==n && goto 2
if /i %os%==r && goto 3
if /i %os%==  && goto 2
kernel
最后一条if,想实现没任何输入时跳转执行一个默认的菜单,但语法估计有误,请问正确的写法是?

点评

hold 不住了,看着,你这是想要 热键功能 ( 菜单里,加 选 菜单 的菜单?) read 0x82a0 看看, g4e 的工作内存,移动 别的地方了 内存功能 弱化了 帮助里有 if "%myvar%"==""  详情 回复 发表于 2021-9-28 12:26
回复

使用道具 举报

发表于 2021-9-28 12:26:00 | 显示全部楼层
dearmouse 发表于 2021-9-28 11:25
请教一个问题:

在G4D时代,用下面的菜单可以实现一键跳转执行某个菜单:

hold 不住了,看着,你这是想要  热键功能
( 菜单里,加 选 菜单 的菜单?)

read  0x82a0    看看, g4e 的工作内存,移动 别的地方了  
内存功能 弱化了


帮助里有   if "%myvar%"==""
回复

使用道具 举报

 楼主| 发表于 2021-9-28 15:11:55 | 显示全部楼层
请教一个问题:

我觉得应当首先弄清楚脚本每一句的含义。

pause --test-key > (md)0x300+1,1 //返回键ASCII到内存0x60000字节位置

dd if=(md) of=(md) bs=1 count=512 skip=0x4cb00 seek=0x2000000 //这是干什么,不清楚

checkrange 0x1769 read 0x2000000 && kernel //这是检查0x2000000内存地址的值是不是0x1769
      //键ASCII在内存0x60000字节位置,去0x2000000找?
      //UEFI的键码表述方法是:0x0a0000bb  a是扫描码,1=SHIFT,2=CTRL,4=ALT;bb是ASCII。
      //视乎应当是
write --bytes=1 0x60003 0  //屏蔽扫描码
checkrange 0x69 read 0x60000 && kernel   //判断是否是键 ‘i’
回复

使用道具 举报

发表于 2021-9-28 21:44:29 | 显示全部楼层
这有个问题,我看到有人反馈说某个版本 有找不到 menu.lst 的问题,我也遇到了(2021-09-08 版),但我遇到更神奇的事,请耐心看下去。

你不知道现在这个有多有趣!
我有两块硬盘A和B
A硬盘有一个ESP分区(Z)和N个普通分区,我在里面安装了多个VHD的系统,也安装过几个RAMOS,入口就比较多。
,B硬盘有一个ESP分区(X)和两个普通分区。我在里面安装了一个VHD系统,用FBFW一键工具给它做了一个RAMOS。
我从A硬盘启动,然后在里面建立了一个VHD,装了一个系统,BCD菜单里也出现了这个系统的入口。然后我用了最新的一键RAMOS工具(2.2.0版)做了一个RAMOS,做成功了。 按说Grub2 和 G4D_UEFI的菜单都做好了。我后来也手动检查过,没问题。

Grub2启动我是失败的,这个我也懒得管。
G4D_UEFI启动是启动了,但是菜单的界面一闪就没了,然后就出现了默认菜单,默认菜单里当然没有我刚做好的RAMOS的入口。

于是我就选择/EFI/Microsoft/Boot/bootmgfw.efi,打算进A硬盘的BCD菜单里去正常启动系统,居然进到了B硬盘的BCD菜单里,然后我选择进了里面的RAMOS,可我进了系统后用bootice来编辑当前的BCD的时候,居然又是出现的A硬盘的BCD。 神奇吧?

这个我也没当回事,因为我主要是想怎么才能进我新做的A硬盘的RAMOS,对吧? 那我一开始没有注意到是调用的默认的menu.lst,我以为是B硬盘的ESP分区里的干扰了它,我以为是调用了B硬盘menu.lst,那我会怎么做呢?
我把B硬盘的ESP分区给格式化了(当然是快速格式化)。重启后现象依旧。 我才发现调用的是默认的menu.lst。
好吧,就算是调用的默认的menu.lst,那我选择/EFI/Microsoft/Boot/bootmgfw.efi的时候怎么又会启动到B硬盘的呢? 而且UEFI启动菜单上依旧有B硬盘所对应的那三个启动入口,难道是格式化也不管用?
那就来招更狠的,我用DG查看了硬盘,把B硬盘对应的X分区给删除了,对,这次不是格式化,是直接把分区给删除了! 重启后 UEFI启动菜单上B硬盘所对应的那三个启动入口终于不见了!

好吧,这时候我再进G4Ebootx64,还是调用不了我的menu.lst, 还是调用的默认的。 那我在里面还是选择进
/EFI/Microsoft/Boot/bootmgfw.efi, 那出现的还是B硬盘对应的BCD菜单,我还是进了B硬盘里面的RAMOS,那就真的奇怪了!
我找了一下B硬盘里面,根本就没有/EFI/Microsoft/Boot/bootmgfw.efi,也没有bcd文件,那它是怎么出现的那个B硬盘对应的BCD菜单!
回复

使用道具 举报

发表于 2021-9-28 21:46:05 | 显示全部楼层
有空我录个屏,发几个图,就比较直观了!
回复

使用道具 举报

 楼主| 发表于 2021-9-29 05:54:58 来自手机 | 显示全部楼层
是比较乱。你说的默认菜单是什么?是尾随的那个比较简单的菜单?如果不是,请给出全路径。你要启动的菜单的全路径?

点评

查到为什么选择WBM会启动B硬盘的BCD了,因为我在A硬盘的G盘里有复制过B硬盘EFI分区里的文件。 所以它会找到那个BCD并启动B硬盘里的RAMOS。 但是为什么G4D不认我A硬盘里的menu.lst,(其实它应该找到过A硬盘的menu  详情 回复 发表于 2021-9-29 11:30
回复

使用道具 举报

发表于 2021-9-29 11:30:52 | 显示全部楼层
本帖最后由 ko20010214 于 2021-9-29 11:41 编辑
2011yaya2007777 发表于 2021-9-29 05:54
是比较乱。你说的默认菜单是什么?是尾随的那个比较简单的菜单?如果不是,请给出全路径。你要启动的菜单的 ...

查到为什么选择WBM会启动B硬盘的BCD了,因为我在A硬盘的G盘里有复制过B硬盘EFI分区里的文件。 所以它会找到那个BCD并启动B硬盘里的RAMOS。

但是为什么G4D不认我A硬盘里的menu.lst,(其实它应该找到过A硬盘的menu.lst,但是一闪而过),反而用它自带的默认的示例菜单呢?我觉得我A硬盘里的menu.lst没毛病啊……
这个原因也找到了,还是G盘里那个EFI目录下有Grub的那些文件,里面包括了menu.lst, 它优先找到的是它,而我一直以为是加载的默认的示例菜单,因为它里面的内容没有改过,就是示例菜单一样的内容。 我把G盘的这个目录删除了,就OK了。

那只剩下一个问题了, G4E不应该是先从ESP分区里找相关的启动文件吗?
怎么就先去我的G盘里找了呢?


2021-09-29_103132.png

点评

你的 wbm 区分硬盘吗, 即 开机按Fx菜单 ,有两个 wbm 选项?如下 windows boot manager (a盘) windows boot manager (b盘) 效果图 :http://bbs.wuyou.net/f  详情 回复 发表于 2021-9-29 13:26
回复

使用道具 举报

 楼主| 发表于 2021-9-29 12:56:58 来自手机 | 显示全部楼层
你的HD0硬盘是MBR分区吧,首先搜寻活动分区,没有的话顺序搜寻,先g,后z。

点评

我两个硬盘都是GPT分区的。[attachimg]487666[/attachimg]  详情 回复 发表于 2021-9-29 13:43
回复

使用道具 举报

发表于 2021-9-29 13:26:23 | 显示全部楼层
本帖最后由 2011whp 于 2021-9-29 13:35 编辑
ko20010214 发表于 2021-9-29 11:30
查到为什么选择WBM会启动B硬盘的BCD了,因为我在A硬盘的G盘里有复制过B硬盘EFI分区里的文件。 所以它会找 ...

你的 wbm 区分硬盘吗,
    即   开机按Fx菜单 ,有两个 wbm 选项?如下,开机过程中出现过吗?
              windows boot manager (a盘)  
              windows boot manager (b盘)   
        效果图 :http://bbs.wuyou.net/forum.php?m ... =423365&pid=4225276


另一问题:
    g4e  :  查找菜单文件,顺序  没有死规定,先找到 即用。

点评

区分。我有两个WBM,虽然有一个已经刚刚被我给删除分区后 变得不可用了。 我觉得,怎么也应该会是从自己所在的分区查找起吧? 你都是从ESP分区(Z盘)把自己给引导了,不应该就从自己所在的分区开始查找吗? 居然  详情 回复 发表于 2021-9-29 13:47
回复

使用道具 举报

发表于 2021-9-29 13:43:18 | 显示全部楼层
2011yaya2007777 发表于 2021-9-29 12:56
你的HD0硬盘是MBR分区吧,首先搜寻活动分区,没有的话顺序搜寻,先g,后z。

我两个硬盘都是GPT分区的。 2021-09-29_134042.png
回复

使用道具 举报

发表于 2021-9-29 13:47:21 | 显示全部楼层
2011whp 发表于 2021-9-29 13:26
你的 wbm 区分硬盘吗,
    即   开机按Fx菜单 ,有两个 wbm 选项?如下,开机过程中出现过吗?
       ...

区分。我有两个WBM,虽然有一个已经刚刚被我给删除分区后 变得不可用了。

我觉得,怎么也应该会是从自己所在的分区查找起吧? 你都是从ESP分区(Z盘)把自己给引导了,不应该就从自己所在的分区开始查找吗? 居然跑到我的G盘里找到一个unifont.hex.gz文件就把它设为根了? (find --set-root /EFI/grub/unifont.hex.gz)

点评

这样的话,与主板没多大关系, 还是 微软的 策略,一个pc 中 ,只能有一个 bootmgfw.efi , bcd 可以有 分部分的 窜多个 现在 a盘 的引导 项 都 在吧? 删b盘的esp前,是单纯 b盘的 bcd,还 a盘+b盘 bcd的  详情 回复 发表于 2021-9-29 14:43
回复

使用道具 举报

 楼主| 发表于 2021-9-29 14:18:06 来自手机 | 显示全部楼层
看看你的z分区,g分区分别是hd0,?
回复

使用道具 举报

 楼主| 发表于 2021-9-29 14:25:10 来自手机 | 显示全部楼层
你启动g4e时,是在什么分区?

点评

这倒是没注意,我以为是z分区。难道启动的是G分区的? 不象啊,我G分区里的应该是以前的版本的g4d。回去再仔细瞧瞧。  详情 回复 发表于 2021-9-29 22:20
回复

使用道具 举报

发表于 2021-9-29 14:43:15 | 显示全部楼层
本帖最后由 2011whp 于 2021-9-30 18:52 编辑
ko20010214 发表于 2021-9-29 13:47
区分。我有两个WBM,虽然有一个已经刚刚被我给删除分区后 变得不可用了。

我觉得,怎么也应该会是从自 ...

这样的话,与主板没多大关系,

还是 微软的 策略,一个pc 中 ,只能有一个 bootmgfw.efi   , bcd 可以有 分部分的 窜多个

现在 a盘 的引导 项 都 在吧?
删b盘的esp前,是单纯 b盘的 bcd中的引导项  ,还  a盘+b盘 bcd的 中所有起动项的合并?

关键是    同一硬件平台上 的 两个esp 打架, 这个 说不清。


g4e找外置 菜单  问题:
       find   --set-root  字体   这名  在哪呢,在g4ebootx64.efi 的内置菜单?

回复

使用道具 举报

发表于 2021-9-29 22:20:38 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2021-9-29 14:25
你启动g4e时,是在什么分区?

这倒是没注意,我以为是z分区。难道启动的是G分区的? 不象啊,我G分区里的应该是以前的版本的g4d。回去再仔细瞧瞧。
回复

使用道具 举报

发表于 2021-10-1 12:51:45 | 显示全部楼层
外部命令slic好像有点小问题
grub4dos-for_UEFI-2021-09-08.7z
BOOTX64.EFI + slic

title RAMOS-Windows 10 Server
/EFI/grub/ext/slic /DELL.BIN
load /EFI/grub/ntfs_x64.efi
map --mem (hd1,0)/Server2019.vhd (hd)
chainloader (hd-1)
启动Windows后ACPI里面找不到SLIC表

换用grub4dos-for_UEFI-2021-04-24.7z的
BOOTX64.EFI + slic
同样环境成功看到SLIC表


捕获.PNG



点评

0908的slic与0424的相比,核心代码没有变动。 请用中间的几个版本进行测试,看看是不是g4e本身的问题。  详情 回复 发表于 2021-10-1 13:35
回复

使用道具 举报

发表于 2021-10-1 13:35:42 | 显示全部楼层
keygen 发表于 2021-10-1 12:51
外部命令slic好像有点小问题
grub4dos-for_UEFI-2021-09-08.7z
BOOTX64.EFI + slic

0908的slic与0424的相比,核心代码没有变动。
请用中间的几个版本进行测试,看看是不是g4e本身的问题。
回复

使用道具 举报

发表于 2021-10-1 16:01:46 | 显示全部楼层
最后一个成功的是grub4dos-for_UEFI-2021-07-28.7z
slic执行后提示:slic dell oemid .......
                      rsdt ...... oemid 之类
从grub4dos-for_UEFI-2021-08-06.7z起
不成功,slic执行后无提示。
回复

使用道具 举报

 楼主| 发表于 2021-10-1 18:33:52 | 显示全部楼层
slic执行后提示:slic dell oemid .......
                       rsdt ...... oemid 之类

成功后提示?还是失败后提示?
请把DELL.BIN发上来,以便测试。
回复

使用道具 举报

发表于 2021-10-1 21:27:24 | 显示全部楼层
成功后提示
DELL.rar (446 Bytes, 下载次数: 9)
回复

使用道具 举报

 楼主| 发表于 2021-10-2 08:24:29 | 显示全部楼层
从grub4dos-for_UEFI-2021-08-06.7z起不成功,slic执行后无提示。

UEFI-2021-07-28.7z 版本与 UEFI-2021-08-06.7z版本,执行后都显示一样的信息,算是成功了?
看来不是影响了 slic,而是其他。需要更多的信息。我这里测试不了 VHD。

新建截图-20211002081701.jpg
回复

使用道具 举报

发表于 2021-10-2 15:00:51 | 显示全部楼层
与VHD系统无关,slic执行成功后进入实机windows系统,一样能看到slic表
回复

使用道具 举报

发表于 2021-10-4 09:55:33 | 显示全部楼层
今天有空试了一下
IMG_20211004_094307.jpg

根目录/slic为grub4dos-for_UEFI-2021-09-08.7z自带外部命令
/efi/grub/ext/slic为UEFI-2021-07-28.7z自带外部命令

估计是slic代码变动,对杂牌主板兼容性下降


回复

使用道具 举报

发表于 2021-10-8 10:26:10 | 显示全部楼层
2011yaya2007777 发表于 2021-9-24 18:23
那是你使用的问题。

我是放在menu.lst中使用的
回复

使用道具 举报

发表于 2021-10-8 10:39:54 | 显示全部楼层
不错的东东,谢谢分享,支持一下。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-18 22:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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