|  | 
 
| 本帖最后由 chenall 于 2014-12-1 14:45 编辑 
 查了一下资料,发现原来ipxe有提供API的和PXE API一样的调用方法,所以要集成的话就很简单了..
 只需要使用ipxe启动了grub4dos,这时在grub4dos下就可以调用ipxe的功能.
 
 附件只是简单的集了了一个ipxe命令用于测试(不能正常使用)
 
 简单测试例子(我测试是成功的):
 ipxe chain grub.exe
 ipxe chain http://b.chenall.net/grub.exe
 
 正常进入grub4dos命令行.
 
 另一个例子失败
 ipxe initrd http://b.chenall.net/ntboot.iso
 ipxe kernel http://b.chenall.net/memdisk raw iso
 ipxe boot
 
 卡住,不过我觉得应该成功的,只是屏幕显示的问题,因为我测试了ipxe config命令,这时也是卡住,但是我按Ctrl+X可以返回(ipxe config界面可以按Ctrl+X退出)
 
 估计有可能是内存使用冲突还是其它原因,我对这一块不熟,希望有对系统内核比较了解的朋友看一下,有没有办法解决.否则估计就不能使用ipxe的sanboot功能了.
 
 另外上面的功能只是简单的应用,要真正集成到grub4dos需要再写一个针对ipxe的文件系统(类似于pxe).这样就可以直接map http上的文件让grub4dos使用.
 
 这个文件系统的实现,需要再考虑一下要用什么方式比较好,
 
 因为grub4dos的文件系统都是(xD)的,暂时考虑使用(wd)或直接在现在的(pd)上修改实现
 
 大家有什么好的方案也可以提出来.
 
 有兴趣的朋友可以下载附件测试一下.
 
 需要使用ipxe启动grub4dos才可以测试 ipxe cmd 如果返回值为真则命令执行成功.否则执行失败.
 现在可以下载本贴附件开始测试ipxe相关功能了.
 
 最新的附件已经集成了ipxe文件系统,使用的是(pd)
 
 默认情况下使用的是基础的pxe服务,测试版本暂不支持自动切换,要使用ipxe的文件系统需要执行以下命令
 pxe type 1
 
 使用ipxe的文件系统就可以支持http等协议.例子:
 
 
 复制代码cat (pd)/http://b.chenall.net/menu.lst
 为了方便使用可以这样子
 
 
 复制代码pxe basedir /http://b.chenall.net
# 以下的访问都是相对于http://b.chenall.net的
cat (pd)/menu.lst
map --mem (pd)/ntboot.iso (0xff)
 一些需要注意的问题:
 1. 首先必须使用ipxe启动的grldr才支持使用ipxe相关功能.
 2. 要直接调用ipxe命令,最好使用文本模式(terminal console),至少你在用ipxe boot/chain启动之前需要先切换到文本模式.
 
 新的版本已经更新上传,现在比较完善了,不过还不是很稳定,有时候会死机重启...
 
 新的版本顺便编译了一个ipxegrldr文件(集成了ipxe+grldr),你可以使用这个代替ipxe和grldr..
 
 新的版本支持以下方法
 
 复制代码map --mem http://b.chenall.net/ntboot.iso (0xff)
map --hook
chainloader (0xff)
 
 | 
 |