无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: chenall

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

  [复制链接]
发表于 2016-3-30 17:33:48 | 显示全部楼层
chenall 发表于 2016-3-30 08:19
具体的看build脚本就明白了。

就是直接把ipxe的源码放到GRUB4DOS源码中。

谢谢chenall,我已经编译出来ipxegrldr了。但我遇到了另一个问题
我使用pxe引导tftp上的ipxegrldr->读取menu.lst(其中有个引导项)      
ipxe chain http://10.15.2.133/fronboot/vmScript/voitest.ipxe,显示ipxe的引导菜单
voitest.ipxe有一个引导项
sanboot --drive 0x80  iscsi:10.15.2.133::::iqn.2015-10.org.vclass.vd.vclient:sn.mmecnefr-8scvnu-tw8w
最后一步sanboot后显示器显示 :
Registered SAN device 0x80
Booting from SAN device 0x80
黑一下屏
这些步骤应该都是正常的。
但过一会画面是
无标1.gif
看图片应该是iscsi的磁盘引导有问题(iscsi磁盘应该找到了),但是这个磁盘我直接用本地ipxe(我是直接把ipxe.usb dd 到硬盘的引导记录里面)和voitest.ipxe系统是可以正常启动的。

我猜想,是不是跟这有关http://blog.csdn.net/wolfsun3/article/details/48828047,ipxe是hook了BIOS的13号中断,这个iscsi系统引导成功了,ipxe的hook是不是应该还在起作用,而我们的grub4dos集成了ipxe是不是交给iscsi磁盘后,就把ipxe也给释放掉了?纯属猜测。。。
回复

使用道具 举报

发表于 2016-3-30 18:54:03 | 显示全部楼层
本帖最后由 不点 于 2016-3-30 18:55 编辑

个人认为,hook 中断 int13 的事情,最好别做。为什么呢?因为很难做好这个工作。memdisk 和 grub4dos 费了九牛二虎之力,花了很多年,才把它理顺,各种死角,都避免发生意外情况。如果一个新软件要想做好它,那是很不容易的。除非你直接拷贝 memdisk 或 grub4dos 的 int13 处理代码,否则,没有 10 年时间,相信那是不会很成熟的。要经过 10 年以上的锤炼才行。

应该直接调用 memdisk 或 grub4dos 的仿真功能,而不是自己再整出一套仿真程序。因为那八成会添乱的。
回复

使用道具 举报

发表于 2016-3-31 07:34:12 | 显示全部楼层
本帖最后由 snailstart 于 2016-3-31 07:35 编辑
不点 发表于 2016-3-30 18:54
个人认为,hook 中断 int13 的事情,最好别做。为什么呢?因为很难做好这个工作。memdisk 和 grub4dos 费了 ...


是的,这么底层感觉很难,只是在使用ipxegrldr的时候,感觉是这地方出现了问题。同一份源码的ipxe引导是没有问题,先看看问题在哪。
没办法刚进公司,老板给的任务硬着头皮也要搞,醉了。
要实现,本地双系统(win+linux),SAN网络引导win系统(iscsi上的img)。网络有问题,自动切换到本地系统,网络的引导也能引导本地系统。这个有什么好的方案吗。目前确定grub4dos如果没有上面的问题的话,是可以实现这些功能的。

点评

如果你确定直接使用ipxe没有问题的话是可以直接使用IPXE+GRLDR而不是使用IPXEGRLDR 也就是主引导用IPXE,根据需要来启动GRLDR,比如在IPXE的菜单中调用。 IPXEGRLDR其实就是IPXE和GRLDR整合在一起的文件,分开  详情 回复 发表于 2016-3-31 08:23
回复

使用道具 举报

 楼主| 发表于 2016-3-31 08:23:54 | 显示全部楼层
snailstart 发表于 2016-3-31 07:34
是的,这么底层感觉很难,只是在使用ipxegrldr的时候,感觉是这地方出现了问题。同一份源码的ipxe引导 ...

如果你确定直接使用ipxe没有问题的话是可以直接使用IPXE+GRLDR而不是使用IPXEGRLDR

也就是主引导用IPXE,根据需要来启动GRLDR,比如在IPXE的菜单中调用。

IPXEGRLDR其实就是IPXE和GRLDR整合在一起的文件,分开不影响使用。
回复

使用道具 举报

发表于 2016-3-31 08:38:40 | 显示全部楼层
本帖最后由 不点 于 2016-3-31 08:48 编辑

我的建议是,在实模式阶段,不要让别的软件来创建虚拟盘(接管int13),只让 grub4dos 来创建。grub4dos 创建的虚拟盘,是能够与各种 DOS、各种 Windows 兼容的,不至于发生莫名其妙的失败。grub4dos 是 BIOS 模式下与微软兼容性最好的开源启动管理软件(没有之一,姑且用用这个流行广告语)。只用 map 命令创建虚拟盘,不要用其他方法。
回复

使用道具 举报

发表于 2016-3-31 09:59:58 | 显示全部楼层
chenall 发表于 2016-3-31 08:23
如果你确定直接使用ipxe没有问题的话是可以直接使用IPXE+GRLDR而不是使用IPXEGRLDR

也就是主引导用IPX ...

分开的ipxe-》grldr-》在grldr下用ipxe的sanboot问题一样,应该不是合成和分开的造成的。
只有单纯的用ipxe的sanboot没问题。
回复

使用道具 举报

 楼主| 发表于 2016-3-31 10:02:12 | 显示全部楼层
我的意思是你这个菜单中需要IPXE的功能完全没有必要进GRUB4DOS。可以直接在IPXE中单独启动,需要用到GRUB4DOS的功能时再进入GRUB4DOS

点评

同意。 个人认为,snailstart 的使用,严格来说属于“压力测试”,超限使用 grub4dos。 ipxe和grub4dos是两个软件,能够合在一起已经不容易了。再加上其他代码(硬件驱动、int13 接管,等等),未必会磨合得很好  详情 回复 发表于 2016-4-1 09:42
回复

使用道具 举报

发表于 2016-4-1 09:42:37 | 显示全部楼层
chenall 发表于 2016-3-31 10:02
我的意思是你这个菜单中需要IPXE的功能完全没有必要进GRUB4DOS。可以直接在IPXE中单独启动,需要用到GRUB4D ...

同意。

个人认为,snailstart 的使用,严格来说属于“压力测试”,超限使用 grub4dos。
ipxe和grub4dos是两个软件,能够合在一起已经不容易了。再加上其他代码(硬件驱动、int13 接管,等等),未必会磨合得很好。
第一,增加的代码(硬件驱动、int13 等)需要占用内存空间,有可能与grub4dos发生冲突。
第二,grub4dos没有硬件驱动(不谈usb、cdrom,因为这里没有涉及到),而ipxe本身就含有网卡硬件驱动。再加上sandisk存储空间的驱动,对内存的使用,就可能达到饱和了。要知道,常规内存的量是很有限的,只有 640K 或更少。ipxe 把常规内存消耗完了之后,就没有足够的常规内存供 grldr 使用了。所以,试图在 grldr 之下调用 ipxe 也不行。

chenall 的办法是可以根本解决问题的。你可以使用 ipxe 作为第一启动,使用你的 sandisk。待到需要 grub4dos 的功能时,再启动 grub4dos。两者不打架。

点评

感谢不点和chenall,我的问题解决了,的确是只需要在使用grub4dos的时候再启动grub4dos,原先想多了  详情 回复 发表于 2016-4-2 20:43
回复

使用道具 举报

发表于 2016-4-1 10:59:41 | 显示全部楼层
不好意思,插楼请教C大一个关于ntboot的问题:
我想让ntboot启动wim文件的时候支持测试模式,但是把ntboot.nt6解压后将ntboot.img中的bcd替换为开启了测试模式并禁用的签名的bcd,重新打包后启动wim文件依然没有打开测试模式,请问还需要改什么吗?
回复

使用道具 举报

发表于 2016-4-2 20:43:33 | 显示全部楼层
不点 发表于 2016-4-1 09:42
同意。

个人认为,snailstart 的使用,严格来说属于“压力测试”,超限使用 grub4dos。

感谢不点和chenall,我的问题解决了,的确是只需要在使用grub4dos的时候再启动grub4dos,原先想多了

点评

这个问题可以从哲学的角度去理解。这不是个纯技术问题。你所说的“解决了”,就是从哲学上“理解了”。 ipxe 和 grub4dos,两者凑在一起磨合,都要费一番工夫的。如果再加上 SAN 网络驱动,那本来就可能暴露出新  详情 回复 发表于 2016-4-2 22:01
回复

使用道具 举报

发表于 2016-4-2 22:01:58 | 显示全部楼层
snailstart 发表于 2016-4-2 20:43
感谢不点和chenall,我的问题解决了,的确是只需要在使用grub4dos的时候再启动grub4dos,原先想多了:dizz ...

这个问题可以从哲学的角度去理解。这不是个纯技术问题。你所说的“解决了”,就是从哲学上“理解了”。

ipxe 和 grub4dos,两者凑在一起磨合,都要费一番工夫的。如果再加上 SAN 网络驱动,那本来就可能暴露出新的问题,需要新的“磨合期”。在磨合的初期,出现失败是很正常的,是可以理解的。如果参与磨合的开发者多了,那自然会提高“成功磨合”的概率。

归根到底这是哲学问题,不是纯技术问题。

以上是分享自己看问题的方式和角度。

回复

使用道具 举报

发表于 2016-12-10 19:24:24 | 显示全部楼层
完美的工具...只是为啥不支持FTP呢,像我这样只有ftp和nfs服务器可用的,就只能看看了~希望大大发布个新版把ftp和nfs支持加上~
回复

使用道具 举报

发表于 2016-12-10 19:24:31 | 显示全部楼层
本帖最后由 rabbired 于 2016-12-10 19:26 编辑

抱歉,网络延迟多重发布,请管理员删除~
回复

使用道具 举报

发表于 2016-12-10 19:24:33 | 显示全部楼层
本帖最后由 rabbired 于 2016-12-10 19:25 编辑

抱歉,网络延迟多重发布,请管理员删除~
回复

使用道具 举报

发表于 2016-12-10 19:24:36 | 显示全部楼层
抱歉,网络延迟多重发布,请管理员删除~
回复

使用道具 举报

发表于 2018-11-16 17:59:34 | 显示全部楼层
本帖最后由 rose4cat 于 2018-11-16 18:02 编辑

1。将RUN 与 SISO功能用在pxe /(ipxe)环境中,不知有什么好的方法?
2。ipxe 转 grldr后, 如何将ipxe的变量参数取出来使用 ? 【试过 |    重定向路径变量不成功 】
3。pxe basedir 的目录不指向根目录 如何在ipxe进入grldr环境之前更改?

点评

已解决问题3 basedir是从filename变量路径中取路径,在进入grub4dos前 set filename xxx/yyy/grldr 也可能是net0/filename net0.dhcp/filename 再 chain ${realgrldrPath}/grldr 即改变basedir /xxx/yyy  详情 回复 发表于 2018-11-18 17:35
回复

使用道具 举报

发表于 2018-11-18 17:35:48 | 显示全部楼层
rose4cat 发表于 2018-11-16 17:59
1。将RUN 与 SISO功能用在pxe /(ipxe)环境中,不知有什么好的方法?
2。ipxe 转 grldr后, 如何将ipxe的 ...

已解决问题3
basedir是从filename变量路径中取路径,在进入grub4dos前
set filename xxx/yyy/grldr 也可能是net0/filename net0.dhcp/filename
再 chain ${realgrldrPath}/grldr 即改变basedir /xxx/yyy
回复

使用道具 举报

发表于 2018-12-5 14:17:13 | 显示全部楼层
感谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 00:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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