无忧启动论坛

标题: GRUB4DOS for UEFI [打印本页]

作者: 2011yaya2007777    时间: 2020-10-29 10:31
标题: GRUB4DOS for UEFI
本帖最后由 2011yaya2007777 于 2021-4-24 10:50 编辑

  使用于 UEFI 环境的 GRUB4DOS。
  
  这是一个庞大的工程,几乎所有的代码都捋了一遍。修改了控制台键盘输入输出,控制台屏幕输出,内存控制,
  驱动器控制,获取日期时间,暂停控制,图形模式及Unicode字体实现,PXE 网启,等等。
  
  开发过程中,参考了 GRUB2 源码。有关映射,参考了 wintoflash 的源码。

  文件下载:http://grub4dos.chenall.net/

更新说明:
2021-04-24 (yaya)
  支持尾续菜单, 改进批处理调试, 内置 unicode 16*16 英文点阵字符。

2020-11-18 (yaya)
  1. 菜单目录更改为:/efi/grub/menu.lst
  2. 支持实体光盘、硬盘启动。
  3. 多个光盘时,启动光盘调整为第一光盘,以适应 windows。
  4. 增加退出 GRUB4DOS 函数 exit_g4d。
  5. 批处理变更:
     函数下标不变,参数由 32 位变更为 64 位。(Fn.下标 参数1 参数2 ...)
     变量地址由 0x8304 变更为 0x8308,由 32 位变更为 64 位。
     call Fn 函数,如果使用变量 0x8200-0x8400 则要在前面加g4e,如 g4e0x8217。
     批处理增加 else 函数。增加 {脚本集} 表示法。
     如:
     if 条件
     {
       脚本集
       if 条件 {
         脚本集 }
       else {
         脚本集 }
     }
     else if 条件
     {
       脚本集
     }
     else
     {
       脚本集
     }
     注意:
     1. 大括弧必须是一行的结尾。
     2. 脚本集可多行书写。
     3. 大括弧内部可以嵌套。

2020-10-30
  1. 可以启动 efi 文件。
  2. 可以启动 iso 及 img 文件。
  3. 内置热键功能。
  
  与旧版本不同之处:
  1. 可以通过 graphicsmode 命令查看系统支持的图形模式。
  2. map 函数执行后即挂载。不需要执行 --hook 指令。
  3. 取消 --hook,--unhook,--rehook,--unmap=,--floppies=,--harddrives= 指令。
  4. 在 UEFI 环境,可以从 0x80 以外的磁盘启动,因此不需要交换磁盘操作,如 map (hd0) (hd1)。
  5. 取消删除磁盘功能,如 map (hd1) (hd1)。
  6. 目前 PXE 网启只支持 tftp。
  






作者: 假大空    时间: 2020-10-29 10:52
测试下先。
作者: 天使的魔翼    时间: 2020-10-29 10:52
终于等到大大出手解决支持G4D支持UEFI,再不用绕着弯找亲戚了。
作者: monitor20    时间: 2020-10-29 10:56
前排支持!
作者: 有阴也有阳    时间: 2020-10-29 10:59
          与时俱进,才能永葆活力!不然真要叫时代给淘汰了......

        GRUB4DOS——难得的好东西,要是能适应UEFI启动,那就太棒了,若不能适应UEFI启动

而不得不被丢弃,就实在是太可惜了!!!

作者: 2012kwy    时间: 2020-10-29 11:02
不知字体文件用G4B还是Grub2,还是都可以?
作者: 窄口牛    时间: 2020-10-29 11:25
暂时拍手围观支持。
作者: Climbing    时间: 2020-10-29 11:27
一直无法适应grub2,终于等到了grub4UEFI。
作者: pseudo    时间: 2020-10-29 11:28
good job!                                                                                                                           .
作者: 2012kwy    时间: 2020-10-29 11:33
先ISO和IMG,然后再支持Wim和VHD?
作者: sairen139    时间: 2020-10-29 11:40
非常好!支持uefi了!
作者: 2012andyle113    时间: 2020-10-29 11:47
很厉害的东西,支持一下
作者: 不点    时间: 2020-10-29 11:48
强悍!
作者: 韩小锐    时间: 2020-10-29 11:54
支持支持
作者: zhoubin    时间: 2020-10-29 11:55
牛!支持您!!
作者: ddsony    时间: 2020-10-29 12:08
顶起!
作者: captain_g    时间: 2020-10-29 12:09
终于等到了!

人生相遇不是太早就是太晚,这个正是时候!
作者: aguest    时间: 2020-10-29 13:08
向开发者致敬!
作者: 静听雨下    时间: 2020-10-29 13:15
很不错的样子
作者: wintoflash    时间: 2020-10-29 13:23
厉害!
请问 yaya 是怎么解决 UEFI 函数调用约定方面的问题的?
据我所知,__attribute__((ms_abi)) 只支持 GCC4.7及以上版本,是用汇编解决的吗?
  1. #if (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)))||(defined(__clang__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 2)))
  2.   #define EFIAPI __attribute__((ms_abi))
  3. #else
  4.   #error Compiler is too old for MS_ABI
  5. #endif
复制代码

另外 yaya 准备什么时候上传代码?
作者: lsc202    时间: 2020-10-29 13:52
现在的新电脑基本上都是UEFI了,grub4dos也越来越不适应新机器,这下好了,终于等到了,感谢yaya
作者: 蓝星明月    时间: 2020-10-29 14:00
谢谢!!! 支持!!!  谢谢!!! 支持!!!  谢谢!!! 支持!!!
作者: MC阿虎    时间: 2020-10-29 14:03
支持楼主的分享
作者: 2010up    时间: 2020-10-29 14:06
牛牛,感谢分享
作者: 江南一根葱    时间: 2020-10-29 14:30
64位的出了?
作者: 江南一根葱    时间: 2020-10-29 14:31
pxe网启支持proxydhcp不
作者: 2010up    时间: 2020-10-29 14:46
\bootx64.efi
如何加载引导PXE启动菜单

作者: ohte    时间: 2020-10-29 14:49
感谢分享
作者: 2011yaya2007777    时间: 2020-10-29 15:02
先ISO和IMG,然后再支持Wim和VHD?

GRUB4DOS 本来就应当支持 VHD 吧,不过我没有测试。
Wim 现在内部没有支持。好像 RUN 及 NTBOOT 支持吧,不过需要有人更新一下。
作者: 2011yaya2007777    时间: 2020-10-29 15:10
64位的出了?

这就是 64 位的。
pxe网启支持proxydhcp不

现在就是通过 UEFI 接口支持 tftp。我的虚拟机 UEFI 不支持 http、ipv4、ipv6 协议。实体机没有测试。
作者: 2011yaya2007777    时间: 2020-10-29 15:12
\bootx64.efi
如何加载引导PXE启动菜单

常规的 menu.lst。
现在版本不支持内置菜单。
作者: 2011yaya2007777    时间: 2020-10-29 15:29
据我所知,__attribute__((ms_abi)) 只支持 GCC4.7及以上版本,是用汇编解决的吗?

我使用的是 GCC4.8 版本。我就是把你贴的代码复制到头文件。
没有这段头文件,其他函数不影响,就是影响 block_io_protocol_t blockio_template。他传入的参数是 32 位的,且参数不对位。
另外 yaya 准备什么时候上传代码?

这个还请 chenall 定夺,是新开一个分支,还是怎样。这些我都不会。
目前一套代码怎样编译为 32 位或 64 位,我也不擅长,比较懵懂。
作者: sunlenghua    时间: 2020-10-29 15:31
好像很了不起的样子,先下载,再学习研究
作者: wintoflash    时间: 2020-10-29 15:40
本帖最后由 wintoflash 于 2020-10-29 15:42 编辑

我觉得--unmap功能还是要加上的。如果map了winpe的ISO,微软的bootmgfw.efi启动光盘上的文件时,直接找的是第一个光盘。如果机器本来就有光盘(比如usb量产的光盘),那就出问题了。

对于交换磁盘的功能,我目前还没有想好怎么弄,但是似乎是有这个需求的。
另外是否支持启动linux?如果支持,是通过传统方式启动,还是通过efi handover protocol?
作者: xiaoy    时间: 2020-10-29 15:44
非常好!支持uefi了!
作者: 2011yaya2007777    时间: 2020-10-29 15:45
另外,我觉得--unmap功能还是要加上的。如果map了winpe的ISO,微软的bootmgfw.efi启动光盘上的文件时,直接找的是第一个光盘。如果机器本来就有光盘(比如usb量产的光盘),那就出问题了。

这个我再看一看怎么卸载。
map了winpe的ISO,干了什么,肯定是干了什么,要不就不映射了。也就是没有启动前,使用他做了某些事情,然后卸载,去启动量产的光盘?

作者: wintoflash    时间: 2020-10-29 15:46
2011yaya2007777 发表于 2020-10-29 15:45
这个我再看一看怎么卸载。
map了winpe的ISO,干了什么,肯定是干了什么,要不就不映射了。也就是没有启 ...

要在map之前,卸载量产的光驱
作者: 红毛樱木    时间: 2020-10-29 17:36
6666666666666666666666666666
作者: 2011yaya2007777    时间: 2020-10-29 17:41
那这个量产的光驱不是由map映射的,原先的grub4dos也不能卸载呀。
作者: 进士小站    时间: 2020-10-29 18:00
希望能用好用
作者: 不点    时间: 2020-10-29 18:21
wintoflash,能否把这个消息贴到 reboot.pro 或者别的外网去?

我今天一整天都访问不了 reboot.pro 了。最近没去逛过,不知道是啥情况,是被 DDOS 了?还是死掉了?或者是 Wall 的原因?不清楚。

作者: 2011yaya2007777    时间: 2020-10-29 18:24
本帖最后由 2011yaya2007777 于 2020-10-29 18:32 编辑
ventoy的做法是交换磁盘,可能更合理一些。

我使用的比较少,理解交换磁盘是为了从 0x80 或者说是出 (hd0) 启动。但是在 UEFI 环境,没有这个限制,
所以我觉得好像没有必要。是否还有其他用途?
这个确实查不到相关资料,但是我这样写的,经实践确实可以。
这些代码很有参考价值,谢谢。

作者: 9001    时间: 2020-10-29 18:27
这个帖子顿时让无忧老潜水员们高潮了
作者: 不才    时间: 2020-10-29 18:32
终于等到你!值得纪念的一天。谢谢yaya兄!
作者: wintoflash    时间: 2020-10-29 18:35
不点 发表于 2020-10-29 18:21
wintoflash,能否把这个消息贴到 reboot.pro 或者别的外网去?

我今天一整天都访问不了 reboot.pro 了。 ...

我已经通知easy2boot的开发者了。
因为他没法下载无忧论坛上的东西,所以我传到了谷歌网盘。
希望chenall能快点上线,给yaya弄个新分支或者其他的什么方法,这样可以方便所有人。
作者: 2010sya    时间: 2020-10-29 18:36
围观、纪念。。。
作者: my9823    时间: 2020-10-29 18:37
支持新作品,用的人越多,完善的越快!
作者: wintoflash    时间: 2020-10-29 18:42
2011yaya2007777 发表于 2020-10-29 18:24
我使用的比较少,理解交换磁盘是为了从 0x80 或者说是出 (hd0) 启动。但是在 UEFI 环境,没有这个限制,
...

我只遇到两个 【可能】需要交换磁盘的地方:
(1) 机器本来就有光驱或者U盘带量产,需要启动 winpe。
这个目前有解决方法,所以可以不用交换。
(2) 用移动硬盘上的 windows 安装镜像 安装 windows,windows【有一定几率】会把引导文件错误地安装到移动硬盘。
这个我只是遇到了 Steve 的报告,但是他也不能稳定重现。

Ventoy 的做法是 hook BS->LocateHandle。
https://github.com/ventoy/Ventoy ... /VentoyDebug.c#L168
作者: 不点    时间: 2020-10-29 18:50
wintoflash 发表于 2020-10-29 18:35
我已经通知easy2boot的开发者了。
因为他没法下载无忧论坛上的东西,所以我传到了谷歌网盘。
希望chena ...

你应该很熟悉 github 的使用方法。

我不懂,尤其是现在,连 svn 的用法都忘却了,更不用说,本来就不熟悉 git。

我不知道 yaya 对 git 的操作是否熟练。


以下是


@yaya

我个人认为,只要 chenall 给你有权限,你就可以使用他给你的那些权限来做事。

你只要小心行事,别一不小心毁掉啥东西就行。

如果你想等 chenall 来商讨,也可以。但你可以把源代码暂时放到论坛上。

wintoflash 是 VIP 会员,有权下载附件。

当然,放到网盘上也可。不过,需要源码的人,不多。因此,没必要放在网盘上。

作者: ttt0001    时间: 2020-10-29 18:51
牛!支持您!!
作者: 2011yaya2007777    时间: 2020-10-29 18:53
我只遇到两个 【可能】需要交换磁盘的地方:

我的笔记本电脑有机械光驱,我从U盘以uefi模式启动,然后加载winpe10,可以正常启动。
不过增加 --unmap 也可以,只是麻烦一些,要从UEFI结构卸载,还要从map映射插槽卸载,还要从grub4dos磁盘结构(新增加的)卸载,还要从grub4dos分区结构(新增加的)卸载。
作者: nttwqz    时间: 2020-10-29 19:01
NB!
是不是只能GRUB4DOS调用Bootmgr,不能bootmgr调用GRUB4DOS?
作者: wintoflash    时间: 2020-10-29 19:03
2011yaya2007777 发表于 2020-10-29 18:53
我的笔记本电脑有机械光驱,我从U盘以uefi模式启动,然后加载winpe10,可以正常启动。
不过增加 --unmap ...

光驱插个光盘试试。

我比较偷懒,unmap的时候没有从grub2磁盘结构里面卸载,因为我发现在grub2里还能正常访问,只是chainloader之后就不能访问了。
作者: blank007    时间: 2020-10-29 19:03
请问,菜单应该放在什么位置? 菜单默认文件名应该是什么?
作者: liwei_show    时间: 2020-10-29 19:06
大神厉害了辛苦
作者: 2011yaya2007777    时间: 2020-10-29 19:09
请问,菜单应该放在什么位置? 菜单默认文件名应该是什么?

/menu.lst
/grub/menu.lst
/boot/grub/menu.lst
作者: blank007    时间: 2020-10-29 19:12
2011yaya2007777 发表于 2020-10-29 19:09
/menu.lst
/grub/menu.lst
/boot/grub/menu.lst

多谢! 烦请您在休整一段时间后,再写一个教程。
作者: rengrancunzai    时间: 2020-10-29 19:12
谢谢分享
作者: 2011yaya2007777    时间: 2020-10-29 19:13
我不知道 yaya 对 git 的操作是否熟练。

我不熟悉 git 。以前都是 chenall 告诉我一步一步怎么做,我不敢越雷池一步。哈哈
作者: wintoflash    时间: 2020-10-29 19:23
2011yaya2007777 发表于 2020-10-29 19:13
我不熟悉 git 。以前都是 chenall 告诉我一步一步怎么做,我不敢越雷池一步。哈哈

先清理好工作区,记得先备份。然后创建分支。git branch efi
git checkout efi
然后把你的改动加上去,最后上传你的分支
git apply ../xxx.patch
...
...
git add .
git commit -m "add efi support ...."
git push -u origin efi
仅供参考,记得先备份。我也不确定你有没有上传分支的权限。



作者: 朱玛12345678    时间: 2020-10-29 20:01
不点 发表于 2020-10-29 18:21
wintoflash,能否把这个消息贴到 reboot.pro 或者别的外网去?

我今天一整天都访问不了 reboot.pro 了。 ...

是reboot.pro论坛的服务器挂了,前段时间也炸过一次,用梯子都访问不了,等过几天就好了。
作者: 江南一根葱    时间: 2020-10-29 20:53
2011yaya2007777 发表于 2020-10-29 15:10
这就是 64 位的。

现在就是通过 UEFI 接口支持 tftp。我的虚拟机 UEFI 不支持 http、ipv4、ipv6 协议 ...


似乎不支持proxydhcp
支持参数不

作者: 2011yaya2007777    时间: 2020-10-29 21:01
原来支持不?我只是把接口由BIOS改为UEFI,另外屏蔽了ipxe.
作者: 2012forum0001    时间: 2020-10-29 21:46
厉害!
作者: 2010feicool    时间: 2020-10-29 22:23
容许我说句不雅的话:这是高潮喷射帖呀
作者: 邪恶海盗    时间: 2020-10-29 23:07
朱玛12345678 发表于 2020-10-29 20:01
是reboot.pro论坛的服务器挂了,前段时间也炸过一次,用梯子都访问不了,等过几天就好了。

我要举报你非法访问国际互联网,赶紧准备个万儿八千的,否则...
作者: 邪恶海盗    时间: 2020-10-29 23:08
牛B啊,本来以为Grub4DOS已经止步了,谁知道竟然支持UEFI了...
作者: ytqxg    时间: 2020-10-29 23:55
学习一下。。。
作者: 2011cwj6958    时间: 2020-10-30 00:36
要个完整菜单和字体文件学习一下
作者: 2011cwj6958    时间: 2020-10-30 02:08
本帖最后由 2011cwj6958 于 2020-10-30 02:16 编辑



虚拟机 测试 GRUB4DOS版本字体正常 GRUB4DOS for UEFI显示不了英文字母 图片显示不了全部 图片不知道要什么规格的 实机花屏

作者: qingyi78    时间: 2020-10-30 03:04
不点 发表于 2020-10-29 11:48
强悍!

不点大师都如此认可,那我辈就只能仰望加享用啦:)
作者: 2011yaya2007777    时间: 2020-10-30 07:14
2011cwj6958:  你的汉字字库缺少英文字母及数字。BIOS版本自带这些字符。花屏是由于显示模式设置不对。图片尺寸要匹配你设置的屏幕分辨率。
作者: yxldh    时间: 2020-10-30 08:33
厉害了 支持一下
作者: tangtai    时间: 2020-10-30 08:40
终于等到了,感谢yaya!支持!支持!!支持!!!
作者: 叮叮咚咚    时间: 2020-10-30 09:10
牛!

作者: Sped_Xu    时间: 2020-10-30 09:31
这个一定要顶!
作者: 2012huguoliang    时间: 2020-10-30 09:37
真心牛逼
作者: liuzhaoyzz    时间: 2020-10-30 10:41
本帖最后由 liuzhaoyzz 于 2020-11-3 15:16 编辑
2011yaya2007777 发表于 2020-10-30 07:14
2011cwj6958:  你的汉字字库缺少英文字母及数字。BIOS版本自带这些字符。花屏是由于显示模式设置不对。图片 ...

虚拟机和实体机都试了下,不能正常显示菜单,menu.lst好像不能放在(ESP)\EFI\boot目录下,与bootx64.efi同目录也不行。放在ESP分区根目录下,menu.lst无论用utf-8还是ansi编码都不行。截图如下:(昨天论坛上不了,测试了很多次)

menu.lst内容:
timeout 5
default 0
graphicsmode -1 800
graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
#find --ignore-floppies --set-root /boot/grub/FONT_CN6500.GZ
#font /boot/grub/FONT_CN6500.GZ
font /grub/unifont.hex.gz
#splashimage /grub/lt.jpg
color normal=0x55ffff highlight=0xff00ff helptext=0xffff55 standard=0x55ffff border=0xaaaaaa
setmenu --box x=4 w=60 y=6 h=9 l=2
setmenu --keyhelp=1 --lang=zh
setmenu --auto-num-on
setmenu --keyhelp=1=0x66ff00
setmenu --string=m=2=0x0000000000ffff="G4D维护菜单"
setmenu --string=s=1=0x8800000000ffff="date&time=yyyy-MM-dd  HH:mm:ss"
setmenu --timeout=90=2=0x88000000ffff
setmenu --hotkey -A [F4] commandline

iftitle [find /EFI/Microsoft/Boot/bootmgfw.efi] /EFI/Microsoft/Boot/bootmgfw.efi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

title /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso
map --mem /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso (cd0)
chainloader
(cd0)

title ^Ctrl+d commandline
commandline

title [F3] reboot
reboot

title halt
halt


选择map --mem /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso (cd)这个菜单后,屏幕只有一个光标,似乎卡死了。





GPT-TEST-2020-10-29-15-39-12.png (2.04 KB, 下载次数: 550)

GPT-TEST-2020-10-29-15-39-12.png

作者: ikaze    时间: 2020-10-30 11:09
此等大佬吾等只好膜拜之
作者: 2011yaya2007777    时间: 2020-10-30 11:22
/menu.lst
/grub/menu.lst
/boot/grub/menu.lst
作者: 2012kwy    时间: 2020-10-30 11:25
一直停留在W大加强版Grub2里打转转出不来,也想知道对新旧menu.lst包括路径等等是如何处理。另外想问问各位大神,grub4dos,grub2及微软的chs_boot.ttf三个字体文件有什么区别?都是3M左右
作者: xbmc    时间: 2020-10-30 11:28
liuzhaoyzz 发表于 2020-10-30 10:41
虚拟机和实体机都试了下,不能正常显示菜单,menu.lst好像不能放在(ESP)\EFI\boot目录下,与bootx64.efi ...

用纯文本模式是没有问题的。
map 测试 ok.
chainloader 测试 ok.
kernel 命令不支持.
另外好像看不到已经存在的光驱?
作者: 2011vip40012414    时间: 2020-10-30 11:29
大神啊 这样是不是可以直接引导linux安装光盘?
作者: wuxin9712    时间: 2020-10-30 11:29
大神出马    普天同庆   必须支持!
作者: liuzhaoyzz    时间: 2020-10-30 11:36
本帖最后由 liuzhaoyzz 于 2020-11-3 15:22 编辑
2011yaya2007777 发表于 2020-10-30 11:22
/menu.lst
/grub/menu.lst
/boot/grub/menu.lst

在你昨天57楼和81楼回这个帖子之前,我摸索了好久了。后来我放到根目录下才找到的。而且menu.lst必须要用utf-8编码!这个很关键的问题建议放到一楼。

作者: liuzhaoyzz    时间: 2020-10-30 11:37
本帖最后由 liuzhaoyzz 于 2020-10-30 14:16 编辑
xbmc 发表于 2020-10-30 11:28
用纯文本模式是没有问题的。
map 测试 ok.
chainloader 测试 ok.

请上传个unifont.hex我测试下,我用grub4dos的那个unifont.hex不行啊?难道是用grub2的unifont.pf2文件吗?


我刚才注释掉了graphicsmode -1 800这一个语句,可以显示文本菜单了,但是map --mem /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso (cd)加载到内存之后又一次加载到内存,反复如此,无法进入PE。

作者: 2011yaya2007777    时间: 2020-10-30 11:48
就是grub4dos的那个呀
作者: liuzhaoyzz    时间: 2020-10-30 12:04
本帖最后由 liuzhaoyzz 于 2020-10-30 12:07 编辑
2011yaya2007777 发表于 2020-10-30 11:48
就是grub4dos的那个呀

注释掉了graphicsmode -1 800这一个语句,很艰难地进入PE了,原来菜单写的不对!
yaya能否给个demo,把menu.lst,目录结构,字体什么的打包传上来,这些全靠用户自己摸索,太难了!


title /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso
find --set-root /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso
map --mem /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso (cd0)
chainloader (cd0)

GRUB4EFI - GRUB4DOS -
这个帖子里面给的菜单根本就是错的,不能用!
title z.iso
map /z.iso (cd)
chainloader



作者: 2011yaya2007777    时间: 2020-10-30 12:11
就是grub4dos的那个呀


unifont.hex.gz

589.24 KB, 下载次数: 844, 下载积分: 无忧币 -2


作者: kofrockman    时间: 2020-10-30 12:38
泪目啊 致敬辛勤的开发者
作者: 2011yaya2007777    时间: 2020-10-30 12:47
chainloader (hd0)      你是没有使用map函数,而直接启动第一个磁盘吗?
作者: 江南一根葱    时间: 2020-10-30 13:23
2011yaya2007777 发表于 2020-10-29 21:01
原来支持不?我只是把接口由BIOS改为UEFI,另外屏蔽了ipxe.


原来支持的

作者: hkkitlee    时间: 2020-10-30 13:32
樓主加油,向勤勞者致敬!
作者: 不才    时间: 2020-10-30 13:50
本帖最后由 不才 于 2020-10-30 13:53 编辑
liuzhaoyzz 发表于 2020-10-30 11:36
在你昨天58楼和81楼回这个帖子之前,我摸索了好久了。后来我放到根目录下才找到的。而且menu.lst必须要用 ...

嘿嘿,看来超版对于g4d还是不熟悉呀。
自2011年12月开始,g4d只要开启了VBE模式,菜单文件必须采用utf-8编码!这是王八的屁股——龟腚
作者: liuzhaoyzz    时间: 2020-10-30 14:12
本帖最后由 liuzhaoyzz 于 2020-10-30 14:18 编辑
不才 发表于 2020-10-30 13:50
嘿嘿,看来超版对于g4d还是不熟悉呀。
自2011年12月开始,g4d只要开启了VBE模式,菜单文件必须采用utf-8 ...

        我知道g4d用中文+vbe模式需要menu.lst用utf-8的编码啊。

现在是grub4dos-uefi,我试了utf-8编码显示不出来,然后我就用ansi编码进行了尝试,结果也不行。

换用了yaya在91楼分享的unifont.hex,用vbe模式可以正常显示并启动pe.iso了。之前我用了我电脑里面保存的unifont.hex不行,可能是精简版本的。

GPT-TEST-2020-10-30-14-17-07.png (5.67 KB, 下载次数: 531)

GPT-TEST-2020-10-30-14-17-07.png

作者: liuzhaoyzz    时间: 2020-10-30 14:18
xbmc 发表于 2020-10-30 12:18
怎么两个--mem?
还有 --mem应该没用。
我用的命令是

        正式的菜单里面是只有一个--mem,下面是编辑的时候笔误了。
作者: wintoflash    时间: 2020-10-30 14:18
uefi下不存在vbe模式。
建议统一一下术语,叫 gfx模式吧
作者: liuzhaoyzz    时间: 2020-10-30 14:31
本帖最后由 liuzhaoyzz 于 2020-10-30 14:48 编辑
wintoflash 发表于 2020-10-30 14:18
uefi下不存在vbe模式。
建议统一一下术语,叫 gfx模式吧

        我们业余人士也搞不懂那么专业的术语,大神们说叫什么就叫什么吧。

@yaya,反馈个问题,前面wintoflash大神也曾经反馈过的。
在虚拟机的虚拟光驱里面挂载个pe1.iso镜像,然后uefi设置本地硬盘优先于光驱启动,引导文件就是grub4dos-uefi那个bootx64.efi,菜单如下:
title /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso
find --set-root /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso
map --mem /boot/imgs/SXWIN10PEX64_17763_NET20200902.iso (cd0)
chainloader (cd0)
结果引导的不是这个仿真出来的(cd0),似乎是虚拟光驱里面挂载的那个pe1.iso,但是有加载到(cd0)的xxxMB的进度。
类似的问题,wintoflash大神在修改grub2的时候曾经碰到过类似的问题,参见
152楼,163楼,166楼,303楼已解决,我们也曾经反馈过,这个问题可以稳定重现。
至于原因,wintoflash分析过也提出过改进的办法,主要就是微软的bootmgfw.efi只能支持第一个光驱启动。



GPT-TEST-2020-10-30-14-25-34.png (3.64 KB, 下载次数: 685)

GPT-TEST-2020-10-30-14-25-34.png

作者: 2011yaya2007777    时间: 2020-10-30 14:36
不如就叫文本模式,图形模式。管他何种图形模式。
作者: 2011yaya2007777    时间: 2020-10-30 14:40
@yaya,反馈个问题,前面wintoflash大神也曾经反馈过的

昨天测试没有问题,这个容我再测试一下。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3