无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
查看: 16943|回复: 667

[原创] GRUB4DOS for UEFI

    [复制链接]
发表于 2020-10-29 10:31:46 | 显示全部楼层 |阅读模式
本帖最后由 2011yaya2007777 于 2020-11-28 09:33 编辑

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

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

更新说明:
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 位。
     读一般内存数值仍然是 ‘read 内存地址’,读 GRUB4DOS 内部数值,采用 ‘read *内存地址’(如 read *0x8308)。
     批处理增加 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。
  




评分

参与人数 82无忧币 +424 收起 理由
wmee + 5 赞一个!
austere + 5 很给力!
lxwx + 1 很给力!
yzyd110 + 5 很给力!
clonecd + 5 很给力!
2012ssln + 5 很给力!
donhke + 1 很给力!
wuy0ufann + 1 很给力!
lgl007 + 5 很给力!
JHW + 5 很给力!
nytc006 + 5 很给力!
不才 + 5 很给力!
fuldho + 5 赞一个!
dehifir + 5 很给力!
sea2moon + 5 赞一个!
a123456789z + 5 赞一个!
大猫先生 + 1 很给力!
laoduo123 + 5 很给力!
2012zhiwen + 5 很给力!
xlshn + 5 赞一个!
天风 + 10 很给力!
bicikaixin + 5 赞一个!
tangtai + 5 很给力!
碧海蓝天 + 5 很给力!
chenall + 5 很给力!
wjguowei + 5 很给力!
zhczf + 5 赞一个!
yesfei + 5 赞一个!
niufq + 5 很给力!
yelangpp + 5 赞一个!

查看全部评分

发表于 2020-10-29 10:52:18 | 显示全部楼层
测试下先。
回复

使用道具 举报

发表于 2020-10-29 10:52:55 | 显示全部楼层
终于等到大大出手解决支持G4D支持UEFI,再不用绕着弯找亲戚了。
回复

使用道具 举报

发表于 2020-10-29 10:56:49 | 显示全部楼层
前排支持!
回复

使用道具 举报

发表于 2020-10-29 10:59:14 | 显示全部楼层
          与时俱进,才能永葆活力!不然真要叫时代给淘汰了......

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

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

使用道具 举报

发表于 2020-10-29 11:02:33 | 显示全部楼层
不知字体文件用G4B还是Grub2,还是都可以?
回复

使用道具 举报

发表于 2020-10-29 11:25:11 来自手机 | 显示全部楼层
暂时拍手围观支持。
回复

使用道具 举报

发表于 2020-10-29 11:27:20 | 显示全部楼层
一直无法适应grub2,终于等到了grub4UEFI。
回复

使用道具 举报

发表于 2020-10-29 11:28:17 | 显示全部楼层
good job!                                                                                                                           .
回复

使用道具 举报

发表于 2020-10-29 11:33:41 | 显示全部楼层
先ISO和IMG,然后再支持Wim和VHD?
回复

使用道具 举报

发表于 2020-10-29 11:40:19 | 显示全部楼层
非常好!支持uefi了!
回复

使用道具 举报

发表于 2020-10-29 11:47:11 | 显示全部楼层
很厉害的东西,支持一下
回复

使用道具 举报

发表于 2020-10-29 11:48:57 | 显示全部楼层
强悍!

点评

不点大师都如此认可,那我辈就只能仰望加享用啦:)  详情 回复 发表于 2020-10-30 03:04
回复

使用道具 举报

发表于 2020-10-29 11:54:18 | 显示全部楼层
支持支持
回复

使用道具 举报

发表于 2020-10-29 11:55:59 | 显示全部楼层
牛!支持您!!
回复

使用道具 举报

发表于 2020-10-29 12:08:50 | 显示全部楼层
顶起!
回复

使用道具 举报

发表于 2020-10-29 12:09:41 | 显示全部楼层
终于等到了!

人生相遇不是太早就是太晚,这个正是时候!
回复

使用道具 举报

发表于 2020-10-29 13:08:36 | 显示全部楼层
向开发者致敬!
回复

使用道具 举报

发表于 2020-10-29 13:15:09 | 显示全部楼层
很不错的样子
回复

使用道具 举报

发表于 2020-10-29 13:23:16 | 显示全部楼层
厉害!
请问 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 准备什么时候上传代码?
回复

使用道具 举报

发表于 2020-10-29 13:52:45 | 显示全部楼层
现在的新电脑基本上都是UEFI了,grub4dos也越来越不适应新机器,这下好了,终于等到了,感谢yaya
回复

使用道具 举报

发表于 2020-10-29 14:00:55 | 显示全部楼层
谢谢!!! 支持!!!  谢谢!!! 支持!!!  谢谢!!! 支持!!!
回复

使用道具 举报

发表于 2020-10-29 14:03:43 | 显示全部楼层
支持楼主的分享
回复

使用道具 举报

发表于 2020-10-29 14:06:57 | 显示全部楼层
牛牛,感谢分享
回复

使用道具 举报

发表于 2020-10-29 14:30:13 | 显示全部楼层
64位的出了?
回复

使用道具 举报

发表于 2020-10-29 14:31:10 | 显示全部楼层
pxe网启支持proxydhcp不
回复

使用道具 举报

发表于 2020-10-29 14:46:48 | 显示全部楼层
\bootx64.efi
如何加载引导PXE启动菜单
回复

使用道具 举报

发表于 2020-10-29 14:49:13 | 显示全部楼层
感谢分享
回复

使用道具 举报

 楼主| 发表于 2020-10-29 15:02:23 | 显示全部楼层
先ISO和IMG,然后再支持Wim和VHD?

GRUB4DOS 本来就应当支持 VHD 吧,不过我没有测试。
Wim 现在内部没有支持。好像 RUN 及 NTBOOT 支持吧,不过需要有人更新一下。
回复

使用道具 举报

 楼主| 发表于 2020-10-29 15:10:22 | 显示全部楼层
64位的出了?

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

现在就是通过 UEFI 接口支持 tftp。我的虚拟机 UEFI 不支持 http、ipv4、ipv6 协议。实体机没有测试。

点评

[attachimg]467557[/attachimg] 似乎不支持proxydhcp 支持参数不  详情 回复 发表于 2020-10-29 20:53
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2020-12-1 10:26

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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