无忧启动论坛

 找回密码
 注册
搜索
系统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
回复

使用道具 举报

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 文件
回复

使用道具 举报

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
有条件的试一下这个版本是否正常

外部命令也正常

点评

能介绍一下您写的外部命令吗?  详情 回复 发表于 2021-1-17 15:05
回复

使用道具 举报

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分区启动。

点评

您说得对。 我很少使用光盘方式启动各类微系统,就是觉得光盘上要有很多额外的设置,还不方便更新。 比如,论坛前辈老毛桃的 WinPE 。本地硬盘、优盘上启动,只需要根目录下 有 NTLDR、ntdetect.com、boot.ini  详情 回复 发表于 2021-1-17 14:06
回复

使用道具 举报

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 | 只看该作者

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

使用道具 举报

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

点评

多谢。 正在学习中  详情 回复 发表于 2021-1-17 15:25
回复

使用道具 举报

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盘测试。





点评

2022.3.28日的版本已经修正这个问题,请测试看看。 @wuwuzz  详情 回复 发表于 2022-3-29 06:40
奇怪了,2021-1-16日的版本,我这边实体机测试,无论是直接map WIN10PE.ISO,还是map --mem WIN10PE.ISO,WIN10PE.ISO是在硬盘上的,都可以启动,没问题。 title /boot/imgs/SXWIN10PEX64_17763_NET20201109.iso f  详情 回复 发表于 2021-1-18 13:36
回复

使用道具 举报

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)


回复

使用道具 举报

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年版出现了。

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

点评

果然是这样子,wuwuzz定位的这个问题很准确,估计是版本太多了,yaya大神搞混淆了。这个问题可以在虚拟机中稳定重现。参考前面的帖子。比如101楼:http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpo  详情 回复 发表于 2021-1-18 16:41

评分

参与人数 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修复引导试试呢?
回复

使用道具 举报

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  就有变通方法






回复

使用道具 举报

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)?编号怎么不连续?
回复

使用道具 举报

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    不连续  一直 是这样的
回复

使用道具 举报

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)
回复

使用道具 举报

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区分开来啊,都混在一起,有点乱。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-30 17:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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