无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 37920|回复: 121

[讨论] grub4dos 集成 ipxe 的功能-测试

  [复制链接]
发表于 2014-11-28 23:10:00 | 显示全部楼层 |阅读模式
本帖最后由 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等协议.例子:

  1. cat (pd)/http://b.chenall.net/menu.lst
复制代码


为了方便使用可以这样子

  1. pxe basedir /http://b.chenall.net
  2. # 以下的访问都是相对于http://b.chenall.net的
  3. cat (pd)/menu.lst
  4. map --mem (pd)/ntboot.iso (0xff)
复制代码


一些需要注意的问题:
1. 首先必须使用ipxe启动的grldr才支持使用ipxe相关功能.
2. 要直接调用ipxe命令,最好使用文本模式(terminal console),至少你在用ipxe boot/chain启动之前需要先切换到文本模式.

新的版本已经更新上传,现在比较完善了,不过还不是很稳定,有时候会死机重启...

新的版本顺便编译了一个ipxegrldr文件(集成了ipxe+grldr),你可以使用这个代替ipxe和grldr..

新的版本支持以下方法
  1. map --mem http://b.chenall.net/ntboot.iso (0xff)
  2. map --hook
  3. chainloader (0xff)
复制代码


发表于 2015-1-16 11:13:38 | 显示全部楼层
我目前也只能用undionly.kpxe来引导,再相互切换启动wimboot就没有问题。
直接用grub4dos引导启动wimboot目前还是重启的。

点评

所谓的"相互切换启动wimboot就没有问题"是指用grub4dos直接启动wimboot没有问题吗? 还是说用grub4dos的ipxe启动wimboot没有问题.或者直接用ipxe启动wimboot没有问题. grub4dos的ipxe功能是可以正常使用的(包用  详情 回复 发表于 2015-1-16 13:16
回复

使用道具 举报

发表于 2014-11-29 16:11:02 | 显示全部楼层
如果pxe启动,没TFTP,只有HTTP或FTP,目前这个grldr能否启动?

点评

pxe不可能没有TFTP吧,没有tftp的话任何启动软件都无法启动. pxe启动的最基础服务就是TFTP.  详情 回复 发表于 2014-11-29 17:01
回复

使用道具 举报

 楼主| 发表于 2014-11-29 17:01:05 | 显示全部楼层
zhaohj 发表于 2014-11-29 16:11
如果pxe启动,没TFTP,只有HTTP或FTP,目前这个grldr能否启动?


pxe不可能没有TFTP吧,没有tftp的话任何启动软件都无法启动.

pxe启动的最基础服务就是TFTP.
回复

使用道具 举报

 楼主| 发表于 2014-11-29 17:27:05 | 显示全部楼层
最新进展,把grub4dos目前的pxe访问直接改成ipxe的API调用,,

竟然可以正常使用ipxe命令(带回显的),不明白这是什么原因?????

回复

使用道具 举报

 楼主| 发表于 2014-11-29 20:46:17 | 显示全部楼层
包含ipxe命令新的版本0.4.6a源码已经更新上传.
只是增加了一个ipxe命令调用ipxe功能.

大家现在可以测试一下看看有没有什么问题(应该不会有什么问题).

也可以测试一下在grub4dos环境下能否通过ipxe启动http/ftp上的文件.

ipxe文件系统整合,暂时还没有完成.测试整合之后如果在ipxe文件系统执行map命令会重启,还没有找到原因.,好像有内存冲突






回复

使用道具 举报

发表于 2014-11-29 21:34:27 | 显示全部楼层
本帖最后由 zhaohj 于 2014-11-29 21:36 编辑

Snap4.jpg 奇怪,我测试不成功

点评

不是从ipxe启动的.. 需要使用ipxe启动的才能使用.  详情 回复 发表于 2014-11-29 21:36
回复

使用道具 举报

 楼主| 发表于 2014-11-29 21:36:31 | 显示全部楼层
zhaohj 发表于 2014-11-29 21:34
奇怪,我测试不成功

不是从ipxe启动的..

需要使用ipxe启动的才能使用.

回复

使用道具 举报

发表于 2014-11-29 21:38:10 | 显示全部楼层
你是说从IPXE启动转grub4dos?

点评

是的.  详情 回复 发表于 2014-11-29 21:39
回复

使用道具 举报

 楼主| 发表于 2014-11-29 21:39:59 | 显示全部楼层
zhaohj 发表于 2014-11-29 21:38
你是说从IPXE启动转grub4dos?

是的.

回复

使用道具 举报

发表于 2014-11-29 21:51:39 | 显示全部楼层
本帖最后由 zhaohj 于 2014-11-29 22:02 编辑

太伟大了,好像加载成功了。
但boot后没反应...
Snap6.jpg

boot后提示

boot后提示

点评

1.不可以使用图形模式... 要启动之前必须要切换到文本模式.否则屏幕就不显示的, 2.还是需要用ipxe来启动的.命令 ipxe boot 嘿嘿,还有更好玩的,给个例子大家就明白了,该干什么干什么去. ipxe sanhook -d 0xff  详情 回复 发表于 2014-11-29 22:13
回复

使用道具 举报

 楼主| 发表于 2014-11-29 22:13:35 | 显示全部楼层
本帖最后由 chenall 于 2014-11-29 22:21 编辑
zhaohj 发表于 2014-11-29 21:51
太伟大了,好像加载成功了。
但boot后没反应...


1.不可以使用图形模式...
要启动之前必须要切换到文本模式.否则屏幕就不显示的,
2.还是需要用ipxe来启动的.命令
ipxe boot

嘿嘿,还有更好玩的,给个例子大家就明白了,该干什么干什么去.
ipxe sanhook -d 0xff http://b.chenall.net/ntboot.iso

成功之后就可以在grub4dos下用(0xff)来访问...

再高级一些,变形..实现了map http上的文件(会麻烦一些)
ipxe sanhook -d 0 http://b.chenall.net/xxx.img
map --mem (0)+yyyy (0xff)
ipxe sanunhook -d 0
回复

使用道具 举报

发表于 2014-11-29 22:23:38 | 显示全部楼层
本帖最后由 zhaohj 于 2014-11-29 22:27 编辑

文本模式下,加载进度条正常,boot还有问题
(ps:直接ipxe下是正常启动的)
另搞个0.4.5.c的测试一下
Snap8.jpg

点评

这个应该不是grub4dos的问题. 你可以试试直接用ipxe(不转到grub4dos),看看能不能正常启动.  详情 回复 发表于 2014-11-29 22:26
回复

使用道具 举报

 楼主| 发表于 2014-11-29 22:26:59 | 显示全部楼层
zhaohj 发表于 2014-11-29 22:23
文本模式下,加载进度条正常,boot还有问题
(ps:直接ipxe下是正常启动的)

这个应该不是grub4dos的问题.

你可以试试直接用ipxe(不转到grub4dos),看看能不能正常启动.
回复

使用道具 举报

 楼主| 发表于 2014-11-30 17:52:45 | 显示全部楼层
把文件系统功能集成进去了,这样就可以不通过ipxe命令来读取http上的文件了.

改动的内容比较大,请大家尽量多多测试,,

需要测试ipxe功能是否正常,,还有默认情况下(相当于旧版)的文件访问等是否正常.

直接下载顶楼的附件测试..


ipxe功能只有0.4.6a版支持,0.4.5c不打算集成..
回复

使用道具 举报

 楼主| 发表于 2014-12-1 14:46:51 | 显示全部楼层

再次更新了,源码先提交上传了.不是很稳定,有时会死机重启,大家可以多多测试..

现在可以直接使用http等协议(使用ipxe启动grldr或直接使用新版本的ipxegrldr文件来启动)

map --mem http://b.chenall.net/ntboot.iso (0xff)
map --hook

点评

实机网络测试: 文件服务器:192.168.1.188,支持HTTP、TFTP,管理员权限; 命令行输入后感觉未真正死机,卡死在下图中: [attachimg]204258[/attachimg]  详情 回复 发表于 2014-12-1 15:02
回复

使用道具 举报

发表于 2014-12-1 15:02:19 | 显示全部楼层
chenall 发表于 2014-12-1 14:46
再次更新了,源码先提交上传了.不是很稳定,有时会死机重启,大家可以多多测试..

现在可以直接使用http等 ...

实机网络测试:
文件服务器:192.168.1.188,支持HTTP、TFTP,管理员权限;
  1. map --mem http://192.168.1.188/2121/siso.iso (0xff)
  2. map --hook
复制代码

命令行输入后感觉未真正死机,卡死在下图中:
45655.jpg

点评

用这个应该会好一些..  详情 回复 发表于 2014-12-1 16:37
回复

使用道具 举报

 楼主| 发表于 2014-12-1 16:37:01 | 显示全部楼层
天使的魔翼 发表于 2014-12-1 15:02
实机网络测试:
文件服务器:192.168.1.188,支持HTTP、TFTP,管理员权限;


用这个应该会好一些..

grldr.zip

160.9 KB, 下载次数: 56, 下载积分: 无忧币 -2

点评

完美解决好了,配合H3大大的最新PE可以做些命令行的动作了。  详情 回复 发表于 2014-12-2 11:26
回复

使用道具 举报

发表于 2014-12-1 16:57:13 | 显示全部楼层
本帖最后由 zhaohj 于 2014-12-1 16:58 编辑

IPXE启动转grub4dos,启动win8pe还是错误。(ps:直接ipxe启动win8pe是可以的)
直接ipxegrldr还未测试
Snap1.jpg

点评

你可以编写一个菜单比如8pe.ipxe放在服务器上 然后直接使用以下命令加载,这样可以避免多次调用带来影响. ipxe chain 8pe.ipxe 或直接在grub4dos命令行中输入ipxe shell进入ipxe命令行再加载启动..  详情 回复 发表于 2014-12-1 17:04
回复

使用道具 举报

 楼主| 发表于 2014-12-1 17:04:56 | 显示全部楼层
zhaohj 发表于 2014-12-1 16:57
IPXE启动转grub4dos,启动win8pe还是错误。(ps:直接ipxe启动win8pe是可以的)
直接ipxegrldr还未测试


你可以编写一个菜单比如8pe.ipxe放在服务器上

然后直接使用以下命令加载,这样可以避免多次调用带来影响.
ipxe chain 8pe.ipxe

或直接在grub4dos命令行中输入ipxe shell进入ipxe命令行再加载启动..当然了执行 ipxe shell之前记得先切换到文本模式.
回复

使用道具 举报

发表于 2014-12-1 17:11:11 | 显示全部楼层
我是直接用菜单的:
title --iPXE to grub4dos boot w8pe1
terminal console
pxe keep
ipxe kernel http://192.168.1.11:81/wimboot
ipxe initrd http://192.168.1.11:81/bootmgr.exe bootmgr.exe
ipxe initrd http://192.168.1.11:81/boot/bcd bcd
ipxe initrd http://192.168.1.11:81/boot/boot.sdi boot.sdi
ipxe initrd http://192.168.1.11:81/w8pe/w8pe1.wim boot.wim
ipxe boot

另解决一下端口不是80的问题
Snap2.jpg

点评

新的版本直接使用不要加(pd)否则默认情况下会失败,默认的(pd)是旧的PXE系统. 注意看我的贴子 直接使用 cat http://192.168.1.11:81/menu.lst  详情 回复 发表于 2014-12-1 17:16
我是说ipxe菜单,不是grub4dos菜单. 写一个ipxe脚本,用ipxe chain xxx.ipxe加载应该就行了.  详情 回复 发表于 2014-12-1 17:14
回复

使用道具 举报

 楼主| 发表于 2014-12-1 17:14:20 | 显示全部楼层
zhaohj 发表于 2014-12-1 17:11
我是直接用菜单的:
title --iPXE to grub4dos boot w8pe1
terminal console

我是说ipxe菜单,不是grub4dos菜单.

写一个ipxe脚本,用ipxe chain xxx.ipxe加载应该就行了.
回复

使用道具 举报

 楼主| 发表于 2014-12-1 17:16:04 | 显示全部楼层
zhaohj 发表于 2014-12-1 17:11
我是直接用菜单的:
title --iPXE to grub4dos boot w8pe1
terminal console

新的版本直接使用不要加(pd)否则默认情况下会失败,默认的(pd)是旧的PXE系统.

注意看我的贴子

直接使用

cat http://192.168.1.11:81/menu.lst
回复

使用道具 举报

发表于 2014-12-1 17:32:25 | 显示全部楼层
本帖最后由 zhaohj 于 2014-12-1 17:40 编辑

g4d命令行下ipxe shell也会死机的
屏幕一直抖动中...
Snap3.jpg

点评

不会死机啊,死机就是你没有切换到文本模式.不能使用图形模式. 其实没有死机,你输入exit命令执行一下看看会不会跳出来.  详情 回复 发表于 2014-12-1 17:41
回复

使用道具 举报

 楼主| 发表于 2014-12-1 17:41:20 | 显示全部楼层
zhaohj 发表于 2014-12-1 17:32
g4d命令行下ipxe shell也会死机的

不会死机啊,死机就是你没有切换到文本模式.不能使用图形模式.

其实没有死机,你输入exit命令执行一下看看会不会跳出来.

点评

不会跳出来,确实死机了 命令行下已经执行terminal console  详情 回复 发表于 2014-12-1 17:43
回复

使用道具 举报

发表于 2014-12-1 17:43:01 | 显示全部楼层
chenall 发表于 2014-12-1 17:41
不会死机啊,死机就是你没有切换到文本模式.不能使用图形模式.

其实没有死机,你输入exit命令执行一下看 ...

不会跳出来,确实死机了
命令行下已经执行terminal console
回复

使用道具 举报

发表于 2014-12-1 17:55:45 | 显示全部楼层
W8PE1.IPXE:
#!ipxe
kernel http://192.168.1.11:81/wimboot
initrd http://192.168.1.11:81/bootmgr.exe bootmgr.exe
initrd http://192.168.1.11:81/boot/bcd bcd
initrd http://192.168.1.11:81/boot/boot.sdi boot.sdi
initrd http://192.168.1.11:81/w8pe/w8pe1.wim boot.wim
boot
看来启动win8pe还有兼容性问题,可能是wimboot问题
-----------------------
进入g4d命令行:
terminal console
ipxe shell
>chain w8pe1.ipxe
Snap4.jpg

点评

可以测试把加载wimboot的命令改成加载grub.exe这样就可以进入grub4dos查看initrd是否正常.  发表于 2014-12-1 19:11
回复

使用道具 举报

发表于 2014-12-1 18:02:03 | 显示全部楼层
C大你也搞个win8p.wim测试一下吧
估计其他的img iso都没有问题的
回复

使用道具 举报

 楼主| 发表于 2014-12-1 19:09:44 | 显示全部楼层
这个暂时不管,也许是wimboot的问题也不一定.

目前最主要的工作是让grub4dos可以正常访问http上的文件.
回复

使用道具 举报

发表于 2014-12-1 23:18:14 | 显示全部楼层
本帖最后由 sratlf 于 2014-12-1 23:20 编辑

麻烦帮我看下是哪里的问题  启动所需的文件都在 d:\137\boot 文件夹下  用tftpd32架的tftp和dhcp   easywebserver开的http  以及12-01版grub4dos

tftpd32指定ipxegrldr为引导文件  虚拟机挂载ipxe.iso启动  ipxe.iso是直接用的ipxe官网上的  启动后执行 cat http://192.168.239.1/dir.txt 是成功的  

执行 map --mem http://192.168.239.1/boot/imgs/dts.ima (0) 失败  提示是disk read error  但是看easywebserver的提示文件应该传输成功了

ipxe.JPG

点评

这个正是目前需要解决的问题,  详情 回复 发表于 2014-12-2 08:26
回复

使用道具 举报

 楼主| 发表于 2014-12-2 08:26:34 | 显示全部楼层
sratlf 发表于 2014-12-1 23:18
麻烦帮我看下是哪里的问题  启动所需的文件都在 d:\137\boot 文件夹下  用tftpd32架的tftp和dhcp   easyweb ...

这个正是目前需要解决的问题,
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 17:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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