无忧启动论坛

标题: GRUB4dos 新版 PXE不能加载菜单?老版正常? [打印本页]

作者: 2010re168    时间: 2015-10-16 19:15
标题: GRUB4dos 新版 PXE不能加载菜单?老版正常?
本帖最后由 2010re168 于 2015-10-16 19:22 编辑

我之前用grub4dos  做pxe启动一直正常,今天准备升级一下grub4dos,去网上下了最新版的,发现不能做TFTP上加载菜单,  我的PXE服务器采用的是深度远程启动管理器1.3版,换用HaneWIN DHCP Server后问题依旧,再试了Tiny PXE Server发现用最新版没问题了。

但我之前用深度远程启动管理器1.3版一直正常,于是去下旧版试,取了一个2014年1月的测试正常   再去测2014年12月的有问题   再取2014年6月的,一直测下去........


  发现2014年10月17日之前的版本是没问题的,一使用2014年10月17或之后的版本都不行了,不能加载TPTP上的menu.lst   因为用旧版正常,应该可以排除配制错误········

出现这种情况是为什么 ?各位大神有谁知道?





我用的测试机是VMware® Workstation 12 Pro  12.0.0 build-2985596
网络使用主机模式,  网段 10.10.10.10  段

PXE服务放在实体机上  系统WIN10


附上几张图:










作者: 不点    时间: 2015-10-16 19:54
2014-10-17 是 chenall 改动的。只是改变了 sip 和 gip,别的都没动,因此很容易调试,找出毛病。

把改动前后的 sip 和 gip 都打印出来,就可知道毛病在哪里了。


作者: 2010re168    时间: 2015-10-17 09:57
本帖最后由 2010re168 于 2015-10-17 10:02 编辑
不点 发表于 2015-10-16 19:54
2014-10-17 是 chenall 改动的。只是改变了 sip 和 gip,别的都没动,因此很容易调试,找出毛病。

把改 ...


多谢大神指点,虽然看不懂,但不明觉厉!哈哈·······   这些天天天翻坛子,发现不点大神,多年如一日的回复我等菜鸟问题,实在敬佩! 多年坚持实属不易!!

还是旧版用着吧!之前旧版的 PXE 远程启动ISO 如果ISO体积超过400MB必定会卡在300多mb的样子,不是机器内存不足的原因,实机测试过,内存是4个G的,镜像才不到几百MB ,所以小的镜像之类的启动直接用TFTP,大的镜像我一般就用IPXE ,  IPXE就是有2个不好的地方,一个就是不能继承PXE所获取的IP,而且它自身获取IP所需的时间比较久,  但稳定性没得说;别外一个就是没有华丽的启动界面,所以一般我用GRUB4DOS做菜单,再加载IPXE,每项只一条内容,就不用IPXE写菜单了。

我也测试过syslinux  syslinux  里面 ipxelinux.0 也支持HTTP,它比ipxe的优点就是不用二次获取IP,好像直接继承了pxe所获取的IP,没看到获取IP的过程,所以一速度较快,可是它如果启用菜单的话也老是出现不能加载菜单组件menu.c32 vesamenu.c32等文件的问题,我在坛子里面发现也有其它朋友遇到这种问题,好像也没人回复,syslinux 比grub4dos冷清多了,网上资料也不多。

但是从AOMEI PXE Boot Free 只发现现一条菜单  default memdisk iso raw initrd=http://:8888/WIN10547PEx64.ISO   发现用这个改一个,不加载菜单组件等其它组件,是可以实现http启动的,启动过程省掉了二次获取IP的过程,所以速度要快不少。  pxelinux.0和gpxelinux.0都能很好的支持菜单,但是我几次http启动都失败了,网上这方面的资料也不多,好像pxelinux.0不支持http,  GPXE听说好像是IPXE的前身,我测试过好像没能获取IP,原因不明,测试了几天,放弃了,老老实实用IPXE吧




作者: 不点    时间: 2015-10-17 11:14
在 github 的代码空间上,记录着每次更动的信息。找到 2014-10-17 的更动,就可以看到 chenall 添加的一段代码了。这个不需要使用复杂的命令行工具,你只要在项目主页上使劲找,就能找到。

知道了问题在什么地方,然后你就可以自己尝试修改了。

如果你实在做不了,那就等着 chenall 替你做了,不过你需要配合 chenall 进行测试。


作者: chenall    时间: 2015-10-17 11:32
你可以在启动之后在命令行下输入pxe命令查看IP地址信息是否有误.
作者: 2010re168    时间: 2015-10-17 11:51
不点 发表于 2015-10-17 11:14
在 github 的代码空间上,记录着每次更动的信息。找到 2014-10-17 的更动,就可以看到 chenall 添加的一段 ...

虽然不赞成拿来主义,可是确实能力有限,对这方面理解有限,如果需要测试,没得问题,多谢了!
作者: 2010re168    时间: 2015-10-17 15:07
本帖最后由 2010re168 于 2015-10-17 15:12 编辑
chenall 发表于 2015-10-17 11:32
你可以在启动之后在命令行下输入pxe命令查看IP地址信息是否有误.


多谢大神关注!

   我刚刚去测试去了,IP是正确的,但是这个上面没显示子网掩码,是不是同网段未知。

对了grldr内置菜单我没有改过。

附图:



作者: chenall    时间: 2015-10-17 16:24
2010re168 发表于 2015-10-17 15:07
多谢大神关注!

   我刚刚去测试去了,IP是正确的,但是这个上面没显示子网掩码,是不是同网段未知 ...

麻烦你再试看看旧版本的IP情况.




作者: 不点    时间: 2015-10-17 19:14
本帖最后由 不点 于 2015-10-17 20:13 编辑
chenall 发表于 2015-10-17 16:24
麻烦你再试看看旧版本的IP情况.


楼主给出的图片很清楚。2014-10-12 可以成功访问服务器上的文件。但 17 日的,无法访问服务器上的文件。

可惜楼主没有给出 17 日的 pxe 命令的执行结果。

你最好给出调试版,让楼主测试一次,便可确定问题的根源。

抱歉,是我看错了。楼主给的是今年的 10月12日的版本,不是去年的。因此楼主应该给出旧版的结果,以便进行对比。

这差别(如果有的话),即可确定问题的根源。


作者: 2010re168    时间: 2015-10-18 13:35
本帖最后由 2010re168 于 2015-10-18 13:42 编辑
不点 发表于 2015-10-17 19:14
楼主给出的图片很清楚。2014-10-12 可以成功访问服务器上的文件。但 17 日的,无法访问服务器上的文件 ...

不好意思,是我做得不周到!

补图:


这个是 2014年10月15版 能正常加载



这个是 2014年10月17版,有加载过程,但是不能加载:




2014年10月17版,PXE执行结果:



对比了一下,好像就是网关不一样
于是手工去DHCP里面将网关改成了 0.0.0.0

测试结果正常加载:








手工退出菜单进行命令行执行结果:




这个是虚拟测试结果,网关是实体机, 网关本身没有NAT功能,看样子 ,获取菜单的过程好像网关参与了,如果都是实机,网关也是路由器,正常网关,不知道行不行,那天我试试!
到时我会贴上结果!


作者: 不点    时间: 2015-10-18 15:41
本帖最后由 不点 于 2015-10-18 15:54 编辑

那就说明是 gateway ip 造成的影响。你的 gateway ip: 192.168.1.1 是错的吗?

旧版本支持错误的 gateway ip?旧版本忽略用户设定的 gateway ip?

难道说本来就应该忽略 gateway ip?

究竟是 grub4dos 的 bug 呢,还是使用过程中的问题?我看不懂,等着 chenall 来处理。



如果 gateway ip=192.168.1.1 是错误的设置,那问题的性质属于用户使用过程中的问题。请忽略下面的处理办法。

如果 gateway ip=192.168.1.1 是正确的设置,而 pxe bios 却不工作,此时,可以有 workaround,如下。

此时电脑正处于 pxe detect 的探测过程中,因此,可以尝试两次,第一次用 gateway ip=0.0.0.0 来尝试,如果读取服务器端的 grldr 成功,则忽略用户设定的 gateway ip。如果读取服务器上的 grldr 失败,则执行第二轮探测,这次使用 gateway ip=<用户设定值> 再次读取 grldr。如果成功,则说明用户设定值是正确的。


作者: chenall    时间: 2015-10-18 18:25
这个不是BUG,之前的版本设有设置这个路由IP,只能访问本地网络.后面的版本我改正了这个问题.

网关gateway ip=192.168.1.1 是错误的,正确的应该是10.10.10.1
因为在10.10.10.0/24这个网段里面是没有192.168.1.1这个IP的,所以就导致了路由错误.

因为你是用虚拟机的共享网络模式,所以可以不要设置这个网关IP.

如果是实体网络或桥接模式下要访问其它网络这个网关IP是必须的.



作者: 2010re168    时间: 2015-10-18 18:58
chenall 发表于 2015-10-18 18:25
这个不是BUG,之前的版本设有设置这个路由IP,只能访问本地网络.后面的版本我改正了这个问题.

网关gateway ...

多谢大神这两天的关注!!终于搞清楚是怎么回事了,走了死胡同,因为旧版使用正常,才以为配制正确的,所有的测试都建立在PXE服务器配制是正确的基础上的,哈哈,

网关设的是192.168.1.1  是因为之前做实机 内网PXE用过,最近测试就没有改网关.
作者: 2010re168    时间: 2015-10-18 18:58
不点 发表于 2015-10-18 15:41
那就说明是 gateway ip 造成的影响。你的 gateway ip: 192.168.1.1 是错的吗?

旧版本支持错误的 gatew ...


谢谢几天来的用心解答!
作者: zhxy9804    时间: 2015-10-23 08:56
搞明白了,原来是楼主配置错误,只不过是本机器测试,所以没发现,
作者: zhaohj    时间: 2015-10-23 10:33
改成“桥接模式”比较简单,网关设置正常就可用。
我一直是多网段的,跨网段需要相互访问。
作者: 2010re168    时间: 2015-10-23 11:28
zhaohj 发表于 2015-10-23 10:33
改成“桥接模式”比较简单,网关设置正常就可用。
我一直是多网段的,跨网段需要相互访问。

VM 在本机上 桥接用不了,试过了,网上也有相关讨论,http访问等正常!具体你也可以测试一下,  实体机当PXE服务器, VM虚拟机当客户机!    桥接的话 两个都放到虚拟机好像又可以的  
作者: zhxy9804    时间: 2015-10-24 21:47
我本人的vm一直是桥接的,这种方式虚拟机跟真机互相独立
作者: 2010re168    时间: 2015-10-29 09:50
zhxy9804 发表于 2015-10-24 21:47
我本人的vm一直是桥接的,这种方式虚拟机跟真机互相独立

在同一台电脑上吗?       其它网络访问是没问题  就是PXE不能获取DHCP   (DHCP也在实体机上)
作者: zhxy9804    时间: 2015-10-29 10:56
2010re168 发表于 2015-10-29 09:50
在同一台电脑上吗?       其它网络访问是没问题  就是PXE不能获取DHCP   (DHCP也在实体机上)

问题是我能行,我做网吧维护的,我都是本机测试系统,




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3