2011yaya2007777 发表于 2020-10-29 15:12:24

\bootx64.efi
如何加载引导PXE启动菜单
常规的 menu.lst。
现在版本不支持内置菜单。

2011yaya2007777 发表于 2020-10-29 15:29:45

据我所知,__attribute__((ms_abi)) 只支持 GCC4.7及以上版本,是用汇编解决的吗?
我使用的是 GCC4.8 版本。我就是把你贴的代码复制到头文件。
没有这段头文件,其他函数不影响,就是影响 block_io_protocol_t blockio_template。他传入的参数是 32 位的,且参数不对位。
另外 yaya 准备什么时候上传代码?
这个还请 chenall 定夺,是新开一个分支,还是怎样。这些我都不会。
目前一套代码怎样编译为 32 位或 64 位,我也不擅长,比较懵懂。

sunlenghua 发表于 2020-10-29 15:31:04

好像很了不起的样子,先下载,再学习研究

wintoflash 发表于 2020-10-29 15:40:58

本帖最后由 wintoflash 于 2020-10-29 15:42 编辑

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

对于交换磁盘的功能,我目前还没有想好怎么弄,但是似乎是有这个需求的。
另外是否支持启动linux?如果支持,是通过传统方式启动,还是通过efi handover protocol?

xiaoy 发表于 2020-10-29 15:44:57

非常好!支持uefi了!

2011yaya2007777 发表于 2020-10-29 15:45:36

另外,我觉得--unmap功能还是要加上的。如果map了winpe的ISO,微软的bootmgfw.efi启动光盘上的文件时,直接找的是第一个光盘。如果机器本来就有光盘(比如usb量产的光盘),那就出问题了。
这个我再看一看怎么卸载。
map了winpe的ISO,干了什么,肯定是干了什么,要不就不映射了。也就是没有启动前,使用他做了某些事情,然后卸载,去启动量产的光盘?

wintoflash 发表于 2020-10-29 15:46:33

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

要在map之前,卸载量产的光驱

红毛樱木 发表于 2020-10-29 17:36:55

6666666666666666666666666666

2011yaya2007777 发表于 2020-10-29 17:41:07

那这个量产的光驱不是由map映射的,原先的grub4dos也不能卸载呀。

进士小站 发表于 2020-10-29 18:00:09

希望能用好用

不点 发表于 2020-10-29 18:21:36

wintoflash,能否把这个消息贴到 reboot.pro 或者别的外网去?

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

2011yaya2007777 发表于 2020-10-29 18:24:31

本帖最后由 2011yaya2007777 于 2020-10-29 18:32 编辑

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

9001 发表于 2020-10-29 18:27:29

这个帖子顿时让无忧老潜水员们高潮了

不才 发表于 2020-10-29 18:32:45

终于等到你!值得纪念的一天。谢谢yaya兄!

wintoflash 发表于 2020-10-29 18:35:04

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

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

我已经通知easy2boot的开发者了。
因为他没法下载无忧论坛上的东西,所以我传到了谷歌网盘。
希望chenall能快点上线,给yaya弄个新分支或者其他的什么方法,这样可以方便所有人。

2010sya 发表于 2020-10-29 18:36:40

围观、纪念。。。

my9823 发表于 2020-10-29 18:37:04

支持新作品,用的人越多,完善的越快!

wintoflash 发表于 2020-10-29 18:42:47

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/blob/78ab7a0759571d88cfbd6096ca3ecf1c28886770/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/VentoyDebug.c#L168

不点 发表于 2020-10-29 18:50:24

wintoflash 发表于 2020-10-29 18:35
我已经通知easy2boot的开发者了。
因为他没法下载无忧论坛上的东西,所以我传到了谷歌网盘。
希望chena ...

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

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

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


以下是


@yaya

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

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

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

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

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

ttt0001 发表于 2020-10-29 18:51:05

牛!支持您!!

2011yaya2007777 发表于 2020-10-29 18:53:34

我只遇到两个 【可能】需要交换磁盘的地方:
我的笔记本电脑有机械光驱,我从U盘以uefi模式启动,然后加载winpe10,可以正常启动。
不过增加 --unmap 也可以,只是麻烦一些,要从UEFI结构卸载,还要从map映射插槽卸载,还要从grub4dos磁盘结构(新增加的)卸载,还要从grub4dos分区结构(新增加的)卸载。

nttwqz 发表于 2020-10-29 19:01:26

NB!
是不是只能GRUB4DOS调用Bootmgr,不能bootmgr调用GRUB4DOS?

wintoflash 发表于 2020-10-29 19:03:01

2011yaya2007777 发表于 2020-10-29 18:53
我的笔记本电脑有机械光驱,我从U盘以uefi模式启动,然后加载winpe10,可以正常启动。
不过增加 --unmap ...

光驱插个光盘试试。

我比较偷懒,unmap的时候没有从grub2磁盘结构里面卸载,因为我发现在grub2里还能正常访问,只是chainloader之后就不能访问了。

blank007 发表于 2020-10-29 19:03:27

请问,菜单应该放在什么位置? 菜单默认文件名应该是什么?

liwei_show 发表于 2020-10-29 19:06:40

大神厉害了辛苦

2011yaya2007777 发表于 2020-10-29 19:09:55

请问,菜单应该放在什么位置? 菜单默认文件名应该是什么?
/menu.lst
/grub/menu.lst
/boot/grub/menu.lst

blank007 发表于 2020-10-29 19:12:01

2011yaya2007777 发表于 2020-10-29 19:09
/menu.lst
/grub/menu.lst
/boot/grub/menu.lst

多谢! 烦请您在休整一段时间后,再写一个教程。

rengrancunzai 发表于 2020-10-29 19:12:35

谢谢分享

2011yaya2007777 发表于 2020-10-29 19:13:33

我不知道 yaya 对 git 的操作是否熟练。
我不熟悉 git 。以前都是 chenall 告诉我一步一步怎么做,我不敢越雷池一步。哈哈

wintoflash 发表于 2020-10-29 19:23:29

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
仅供参考,记得先备份。我也不确定你有没有上传分支的权限。


页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: GRUB4DOS for UEFI