无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
1081#
发表于 2021-1-16 20:52:52 | 只看该作者
本帖最后由 blank007 于 2021-1-16 20:59 编辑
chenall 发表于 2021-1-16 20:23
有条件的试一下这个版本是否正常

报告大侠:简直完美!

经Qemu、真机测试,以下菜单完美显示、执行:

menu.lst:

clear

debug  off

root ()

calc *0x8272&0xff
set UEFIx=%@retval%

if %UEFIx%==64 configfile /EFI/Grub/UEFIx64.txt
if %UEFIx%==32 configfile /EFI/Grub/UEFIx86.txt


以下是实际菜单情况

UEFIx64.txt:

clear

debug off

color light-gray/black light-gray/blue light-blue/black

color border=0x08

font /EFI/Grub/Unicode.gz

graphicsmode -1 640

setmenu --ver-off
setmenu --lang=zh
setmenu --triangle-on
setmenu --middle-align
setmenu --highlight-full

setmenu --string==8=0xFF="启动 (UEFI) 菜单"
setmenu --box x=21 y=10 w=0 h=4 l=1
setmenu --help=0=0=15

default=0
timeout=-1

clear

#第1项

title WinPE (x64)\n基于 Windows 10,内存要求: 1024 MB\n

chainloader  /Boot/WinX/x64/WinX.efi


#第2项

title Acronis (x64)\nAcronis 11.7 中文版,内存要求: 1024 MB\n

chainloader /Boot/Acronis/x64/Acronis.efi

#第3项

title reboot\n重启计算机\n

reboot

#第4项

title halt\n关闭计算机\n

halt


另外,Acronis 使用 kernel+initrd 启动。可按如下菜单操作:

title Acronis (x64)\nAcronis 11.7 中文版,内存要求: 1024 MB\n

graphicsmode -1

kernel /boot/acronis/x64/kernel.dat quiet product=bootagent media_for_windows
initrd  /boot/acronis/x64/initrd.dat /boot/acronis/x64/initrd.img


另外,UEFIx86.txt 与 UEFIx86.txt 相似,只是改为调用 ia32 的 Win10PE、Acronis,具体情况未经真机测试。仅在 Qemu 中测试了菜单显示、UEFIx的返回值。结果也正确。


回复

使用道具 举报

1082#
发表于 2021-1-16 21:03:26 | 只看该作者
chenall 发表于 2021-1-16 20:23
有条件的试一下这个版本是否正常

2021-01-16版本,实体机测试,基于svbus驱动的RAMOS没问题;基于primo驱动的RAMOS没问题。
回复

使用道具 举报

1083#
 楼主| 发表于 2021-1-16 21:26:24 | 只看该作者
calc *0x8272&0xff
set UEFIx=%@retval%

if %UEFIx%==64 configfile /EFI/Grub/UEFIx64.txt
if %UEFIx%==32 configfile /EFI/Grub/UEFIx86.txt


现在不用这样复杂,更简单的是:

if %@uefi%==64 configfile /EFI/Grub/UEFIx64.txt
if %@uefi%==32 configfile /EFI/Grub/UEFIx86.txt

点评

ok! 多谢。  详情 回复 发表于 2021-1-16 21:31
回复

使用道具 举报

1084#
发表于 2021-1-16 21:31:10 | 只看该作者
2011yaya2007777 发表于 2021-1-16 21:26
现在不用这样复杂,更简单的是:

if %@uefi%==64 configfile /EFI/Grub/UEFIx64.txt

ok!

多谢。
回复

使用道具 举报

1085#
发表于 2021-1-16 21:44:47 | 只看该作者
chenall 发表于 2021-1-16 20:23
有条件的试一下这个版本是否正常

Qemu 下测试,

UEFIx86.txt:

clear

debug off

color light-gray/black light-gray/blue light-blue/black

color border=0x08

font /EFI/Grub/Unicode.gz

graphicsmode -1 640

setmenu --ver-off
setmenu --lang=zh
setmenu --triangle-on
setmenu --middle-align
setmenu --highlight-full

setmenu --string==8=0xFF="启动 (UEFI) 菜单"
setmenu --box x=21 y=10 w=0 h=4 l=1
setmenu --help=0=0=15

default=0
timeout=-1

clear

#第1项

title WinPE (x86)\n基于 Windows 10,内存要求: 1024 MB\n

chainloader  /Boot/WinX/x86/WinX.efi


#第2项

title Acronis (x86)\nAcronis 11.7 中文版,内存要求: 1024 MB\n

chainloader /Boot/Acronis/x86/Acronis.efi

#第3项

title reboot\n重启计算机\n

reboot

#第4项

title halt\n关闭计算机\n

halt


以及

title Acronis (x64)\nAcronis 11.7 中文版,内存要求: 1024 MB\n

graphicsmode -1

kernel /boot/acronis/x86/kernel.dat quiet product=bootagent media_for_windows
initrd  /boot/acronis/x86/initrd.dat /boot/acronis/x86/initrd.img

均正常执行
回复

使用道具 举报

1086#
发表于 2021-1-16 23:08:48 | 只看该作者
chenall 发表于 2021-1-16 20:23
有条件的试一下这个版本是否正常

使用 UltraISO 制作的 BIOS/UEFI 双启动.iso (I9SO9660_Joilet格式),UEFI自然是使用这个版本,Qemu 测试发现:

/efi/grub/menu.lst  能识别,可分别 configfile 到 UEFIx64.txt / UEFIx86.txt。

只是:

1.    chainloader /BOOT/WINX/X64/WINX.EFI 无反应。

2.    (1) chainloader /BOOT/ACRONIS/X64/ACRONIS.EFI 能读入,但不能继续引导。
       (2) kernel /BOOT/ACRONIS/X64/KERNEL.DAT quiet product=bootagent media_for_windows
            initrd   /BOOT/ACRONIS/X64/INITRD.DAT  /BOOT/ACRONIS/X64/INITRD.IMG

            正常,可引导

补充:

     光盘上不能引导 bootmgfw.efi 、acronis.efi 这个问题,Grub2 也是一样的。
      XorBootU 0.2.5 在光盘上可以引导 bootmgfw.efi ,但不能引导Acronis.efi ,也不能使用 kernel+initrd 加载多个 initrd 文件

点评

这不是grub2/grub4dos的问题,而是acronis的启动器本身不支持从非ESP分区启动。  详情 回复 发表于 2021-1-17 13:46
回复

使用道具 举报

1087#
发表于 2021-1-17 12:50:50 | 只看该作者
顶起
回复

使用道具 举报

1088#
发表于 2021-1-17 12:52:14 | 只看该作者
测试看看,谢谢付出。
回复

使用道具 举报

1089#
发表于 2021-1-17 13:43:17 | 只看该作者
[求助] 优启通3.6重新打包10PEX64.WIM后开不机
回复

使用道具 举报

1090#
发表于 2021-1-17 13:45:02 | 只看该作者
chenall 发表于 2021-1-16 20:23
有条件的试一下这个版本是否正常

外部命令也正常
回复

使用道具 举报

1091#
发表于 2021-1-17 13:46:44 | 只看该作者
blank007 发表于 2021-1-16 23:08
使用 UltraISO 制作的 BIOS/UEFI 双启动.iso (I9SO9660_Joilet格式),UEFI自然是使用这个版本,Qemu 测试 ...
光盘上不能引导 bootmgfw.efi 、acronis.efi 这个问题,Grub2 也是一样的。

这不是grub2/grub4dos的问题,而是acronis的启动器本身不支持从非ESP分区启动。
回复

使用道具 举报

1092#
发表于 2021-1-17 14:06:17 | 只看该作者
本帖最后由 blank007 于 2021-1-17 14:09 编辑
wintoflash 发表于 2021-1-17 13:46
这不是grub2/grub4dos的问题,而是acronis的启动器本身不支持从非ESP分区启动。

您说得对。

我很少使用光盘方式启动各类微系统,就是觉得光盘上要有很多额外的设置,还不方便更新。

比如,论坛前辈老毛桃的 WinPE 。本地硬盘、优盘上启动,只需要根目录下 有 NTLDR、ntdetect.com、boot.ini、*.img  (当然,也可以微调),要求是在主分区上。

但在光盘上,光盘根目录就要有 WxPE 这个目录,下面要有ntdetect.com。


回复

使用道具 举报

1093#
发表于 2021-1-17 15:05:58 | 只看该作者

能介绍一下您写的外部命令吗?

点评

912# http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4202879&fromuid=487838 980# http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4213455&fromuid=48  详情 回复 发表于 2021-1-17 15:18
回复

使用道具 举报

1094#
发表于 2021-1-17 15:18:45 | 只看该作者
回复

使用道具 举报

1095#
发表于 2021-1-17 15:25:22 | 只看该作者
wintoflash 发表于 2021-1-17 15:18
912# http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4202879&fromuid=487 ...

多谢。

正在学习中
回复

使用道具 举报

1096#
发表于 2021-1-18 10:46:03 | 只看该作者
大佬,这个怎么用呀?
回复

使用道具 举报

1097#
发表于 2021-1-18 12:23:18 来自手机 | 只看该作者
阴阳你发的grub4dos做u启动,可以跟这个一样使用吗?@有阴也有阳
回复

使用道具 举报

1098#
发表于 2021-1-18 12:36:05 | 只看该作者
2021年1月各版本似乎引入了新BUG,MAP win10PE ISO工作不正常。
最后一个工作正常的版本是2020-12-15版。参见下面debug图。

测试环境:清华同方笔记本,AMI UEFI V2016;
G4E均从chenall网站下载;
使用同一台机器、同一个U盘测试。





回复

使用道具 举报

1099#
发表于 2021-1-18 13:36:07 | 只看该作者
wuwuzz 发表于 2021-1-18 12:36
2021年1月各版本似乎引入了新BUG,MAP win10PE ISO工作不正常。
最后一个工作正常的版本是2020-12-15版。 ...

奇怪了,2021-1-16日的版本,我这边实体机测试,无论是直接map WIN10PE.ISO,还是map --mem WIN10PE.ISO,WIN10PE.ISO是在硬盘上的,都可以启动,没问题。
title /boot/imgs/SXWIN10PEX64_17763_NET20201109.iso
find --set-root /boot/imgs/SXWIN10PEX64_17763_NET20201109.iso
map --mem /boot/imgs/SXWIN10PEX64_17763_NET20201109.iso (0xff)
chainloader (0xff)


点评

经过测试,基本锁定了2021年版G4E BUG原因: 没有把选中的当前ISO提升为第1光驱位。 这在以前的版本中早就解决了,不知道为什么又在2021年版出现了。 怀疑编译时,选的源代码版本不对。  详情 回复 发表于 2021-1-18 16:30
回复

使用道具 举报

1100#
发表于 2021-1-18 14:48:57 | 只看该作者
多谢以上各位的测试,没有什么问题的话,以后就会使用这个编译环境进行新版本的自动编译发布。

编译环境来源于 tinycorelinux 和原来那个 grubdev 的环境一样。

这些天我再整理一下。
回复

使用道具 举报

1101#
发表于 2021-1-18 14:53:44 | 只看该作者

1、均为实体机测试

2、U盘分驱/分区情况:

第1驱 USB-HDD 共3个分区,其中: 本测试用到的G4E、win10 PE ISO放在第3分区
第2驱 USB-CD 老版本G4D为引导的ISO





回复

使用道具 举报

1102#
发表于 2021-1-18 16:23:06 | 只看该作者
G4E 现在的版本,chainloader (0xff)、chainloader (hdx,x)、chainloader /efi/boot/grub2.efi 都没有问题,就是 chainloader (hdx) 这样的方式会卡死,只得个一竖光标。
回复

使用道具 举报

1103#
发表于 2021-1-18 16:30:40 | 只看该作者
liuzhaoyzz 发表于 2021-1-18 13:36
奇怪了,2021-1-16日的版本,我这边实体机测试,无论是直接map WIN10PE.ISO,还是map --mem WIN10PE.ISO ...

经过测试,基本锁定了2021年版G4E BUG原因:

没有把选中的当前ISO提升为第1光驱位。

这在以前的版本中早就解决了,不知道为什么又在2021年版出现了。

怀疑编译时,选的源代码版本不对。

评分

参与人数 1无忧币 +10 收起 理由
liuzhaoyzz + 10 很准确的定位!

查看全部评分

回复

使用道具 举报

1104#
发表于 2021-1-18 16:41:03 | 只看该作者
wuwuzz 发表于 2021-1-18 16:30
经过测试,基本锁定了2021年版G4E BUG原因:

没有把选中的当前ISO提升为第1光驱位。

        果然是这样子,wuwuzz定位的这个问题很准确,估计是版本太多了,yaya大神搞混淆了。这个问题可以在虚拟机中稳定重现,我这边也重现了问题。参考前面的帖子。比如101楼:http://bbs.wuyou.net/forum.php?m ... 6008&fromuid=298214
回复

使用道具 举报

1105#
发表于 2021-1-18 16:44:41 | 只看该作者
xianglang 发表于 2021-1-18 16:23
G4E 现在的版本,chainloader (0xff)、chainloader (hdx,x)、chainloader /efi/boot/grub2.efi 都没有问题 ...

        这样的问题很奇怪,我现在测试的结果,svbus和primo驱动都是直接chainloader (hd-1)这样子的,没有出错啊?你的/EFI/Boot/bootx64.efi是不是修改过的?用bcdboot修复引导试试呢?

点评

没有被修改过,元旦等版本,是没有问题的。BOOTX64.EFI 是论坛下载的 1,155,424 字节那个版本,好像就是你们提供的吧。我这里无论是实体硬盘和 VHD 虚拟硬盘,也不论是 MBR 还是 GPT 也都是一样的问题。  详情 回复 发表于 2021-1-19 10:58
回复

使用道具 举报

1106#
发表于 2021-1-18 17:38:45 | 只看该作者
本帖最后由 2011whp 于 2021-1-18 18:57 编辑

chainloader  (hd3)  死机问题  (从2020-12-29有此问题)
    1.   M2 接口上的本机系统

2.   虚拟机里   能用 chainloaer  (hd1)


问题:与硬盘接口有关?



总的来说
chainloader  (hd3)  死机  是小问题,能用 chainloader /bootmgfw.efi  就有变通方法






点评

你的(hd3)是GPT分区的吗?有ESP分区吗?ESP分区里面/EFI/boot/bootx64.efi存在吗? 为什么find的结果,(hd3)有两个分区,(hd3,0) (hd3,2)为什么没有(hd3,1)编号怎么不连续?  详情 回复 发表于 2021-1-18 18:12
回复

使用道具 举报

1107#
发表于 2021-1-18 18:12:29 | 只看该作者
2011whp 发表于 2021-1-18 17:38
chainloader  (hd3)  死机问题  (从2020-12-29有此问题)
    1.   M2 接口上的本机系统

你的(hd3)是GPT分区的吗?有ESP分区吗?ESP分区里面/EFI/boot/bootx64.efi存在吗?
为什么find的结果,(hd3)有两个分区,(hd3,0) (hd3,2)为什么没有(hd3,1)?编号怎么不连续?

点评

消失的 (hd3,1) 分区,可能是 MSR 分区,在我的 GPT 硬盘上,0分区就是 MSR 的,G4E 的 vol 都不会显示的,看我前几天使用 vol 的截图。  详情 回复 发表于 2021-1-19 11:01
回复

使用道具 举报

1108#
发表于 2021-1-18 18:23:41 | 只看该作者
本帖最后由 2011whp 于 2021-1-18 18:40 编辑

@liuzhaoyzz

是GPT分区,(hd3,0)是esp分区

  chailoader  (hd3,0)/efi/boot/bootx64.efi   能启动

(hd3,1)是 微软保留分区msr    不连续  一直 是这样的

点评

明白了。  发表于 2021-1-18 20:04
回复

使用道具 举报

1109#
发表于 2021-1-18 18:29:31 | 只看该作者
本帖最后由 2011whp 于 2021-1-27 20:59 编辑

grub gnu官网
       1995年,grub1.x  (当时叫 0.X)
       2002年,grub2.0 改进重写grub1.X(需求层 大致相同)
       2005年后,grub2 为efi开发,2007开始流行
       2005年,grub1.97停止开发         
       2012年 GRUB2.0正式版发布
       2017年GRUB2.02发布(带 for windows版)
       2019年GRUB2.04发布(带 for windows版)
      另分支
       2003年发起 grub4dos(基于grub1.97)
       2012年046a 停止开发 官网关闭

grub无忧论坛:
     2009年,开始g4d  
     2019年,grub2.05 UEFI  map
     2020年,基于 grub2.04的 ventoy  (启动U盘制作)
     2020年,基于 grub2.X的   grubfm 文件管理器
     2020年,grub4dos uefi版
    ( 另:bootice  xorboot  xorbootU)

点评

2002年,grub2.0 改进重写??? 还没有发布,何谈改进重写?版本号不对吧。。。 2005年后,grub2 为efi开发,2007开始流行 2005年,grub1.97停止开发 2012年 GRUB2.0  详情 回复 发表于 2021-1-18 20:02
回复

使用道具 举报

1110#
发表于 2021-1-18 20:02:19 | 只看该作者
2011whp 发表于 2021-1-18 18:29
grub gnu官网
       1995年,grub1.x  (当时叫 0.X)
       2002年,grub2.0 改进重写

       2002年,grub2.0 改进重写???        还没有发布,何谈改进重写?版本号不对吧。。。
       2005年后,grub2 为efi开发,2007开始流行
       2005年,grub1.97停止开发         
       2012年 GRUB2.0正式版发布

2003年不点发起 grub4dos(基于grub0.97),基于grub0.97吧?bean,chenall,2011yaya2007777,以及Wintoflash都参与了开发。
2012年046a 停止开发 官网关闭?yaya一直在维护啊,哪里关闭了?

2020年,grub4dos uefi版 (同年 g4d legacy关闭), g4d legacy哪里关闭了?yaya在维护啊。

     2019年,grub2.05 UEFI  map     这个是Wintoflash创立的分支项目。
     2020年,grub4dos uefi版 (同年 g4d legacy关闭)    这个是2011yaya2007777创立的分支项目。


分支项目,要写清楚分支发起的作者,才能与原来的GNU grub区分开来啊,都混在一起,有点乱。

点评

2002年 改进重写 grub1.X 记不清了,我是 GRUB2.04 发布时,头脑热了一段时间, 历史是 当时的 查的,有不对的  详情 回复 发表于 2021-1-18 20:38
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-29 16:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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