无忧启动论坛

标题: 0.4.6a pxe启动问题。 [打印本页]

作者: liumailong    时间: 2016-4-2 23:21
标题: 0.4.6a pxe启动问题。
本帖最后由 liumailong 于 2016-4-2 23:23 编辑

一直用2014年的0.4.6a 进行PXE启动,今天更新到最新版后发现启动不了
具体表现为找不到菜单,直接进入GRUB4DOS的命令行。
多次测试后发现问题的源头是 0.4.6a 2015-01-10版,之前的版本正常。

启动环境:
grldr:没有任何修改
启动目录
  1. TFtp目录/menu.lst/default
  2. TFtp目录/grldr
复制代码

作者: chenall    时间: 2016-4-3 11:29
PXE服务端用的是什么软件?

如果你只需要使用default这个启动菜单,可以不要menu.lst目录直接把default文件放到外面改名为menu.lst就可以了。


作者: liumailong    时间: 2016-4-3 11:39
chenall 发表于 2016-4-3 11:29
PXE服务端用的是什么软件?

如果你只需要使用default这个启动菜单,可以不要menu.lst目录直接把default ...

服务端用的是dnsmasq,关键问题是之前版本正常,而现在的版本不正常。

昨天还试了一下0.4.5c的最新版也正常,这个是BUG还是特性?
作者: zhaohj    时间: 2016-4-3 13:39
0.4.6a 2.16.03.26 PXE测试正常!
作者: chenall    时间: 2016-4-3 13:59
liumailong 发表于 2016-4-3 11:39
服务端用的是dnsmasq,关键问题是之前版本正常,而现在的版本不正常。

昨天还试了一下0.4.5c的最新版 ...

需要提供更多的信息,比如启动截图等。

还有在命令行中输入pxe命令显示的信息
你的服务器IP等信息,看看是否和PXE命令显示的一样。
作者: liumailong    时间: 2016-4-4 12:19
chenall 发表于 2016-4-3 13:59
需要提供更多的信息,比如启动截图等。

还有在命令行中输入pxe命令显示的信息

由于实体机没显示器,用VirtualBox 测试了一下。
对比一下 pxe blksize 有区别,不过在0.4.6a 新版中内置菜单修改pxe blksize 后还是不能起动.

VirtualBox_1111_04_04_2016_12_18_46.png (6.98 KB, 下载次数: 229)

VirtualBox_1111_04_04_2016_12_18_46.png

VirtualBox_1111_04_04_2016_12_08_05.png (7 KB, 下载次数: 194)

VirtualBox_1111_04_04_2016_12_08_05.png

VirtualBox_1111_04_04_2016_12_06_03.png (6.31 KB, 下载次数: 227)

VirtualBox_1111_04_04_2016_12_06_03.png

VirtualBox_1111_04_04_2016_12_01_51.png (6.44 KB, 下载次数: 204)

VirtualBox_1111_04_04_2016_12_01_51.png

VirtualBox_1111_04_04_2016_12_00_35.png (6.42 KB, 下载次数: 242)

VirtualBox_1111_04_04_2016_12_00_35.png

作者: 不点    时间: 2016-4-4 12:49
blksize 怎么会是 1432?

我印象中,从来都是探测 1408,不会去探测 1432 的。怎么结果却是 1432 呢?比探测的输入值 1408 还大?

当然这也是有可能的,只是觉得有点出乎意料。

另外,bootfile 的 name 怎么是空的呢?它应该是 grldr 之类的名字。你在服务器上没有设定 bootfile 的名字吗?

2015-01-09 能够探测到 blksize 值 1432,2015-01-10 探测失败,采用默认值 512。

问题的症结,我猜,可能是新的改动影响了探测结果,甚至导致 PXE BIOS 接口失效。请 chenall 定位根源。


作者: liumailong    时间: 2016-4-4 13:02
本帖最后由 liumailong 于 2016-4-4 13:30 编辑
不点 发表于 2016-4-4 12:49
blksize 怎么会是 1432?

我印象中,从来都是探测 1408,不会去探测 1432 的。怎么结果却是 1432 呢?比 ...


上面的回复没说清楚,我在补充一下。
服务端设置没改过,启动文件都是“grldr”
第一张是修改过内置菜单,在“pxe detect”下面增加了“pxe blksize 1432”其它的测试没有修改
结果还是我之前说的,0.4.5c和0.4.6a 2015-01-09版成功,其它的失败。

下面个是实体机测试,结果一样。
PS:新照片发不上去,改成图床
http://pan.baidu.com/s/1dFg7iOL
http://pan.baidu.com/s/1eSbLy1O
作者: liumailong    时间: 2016-4-4 13:04
本帖最后由 liumailong 于 2016-4-4 13:07 编辑

重复贴,请删除这层
作者: 不点    时间: 2016-4-4 14:37
chenall 可以编译一个调试版,跟踪探测程序的执行过程,看看为何旧版可以探测到 1432,而新版探测不到?

难道是隐蔽的内存冲突?


作者: 不点    时间: 2016-4-15 11:21
我粗略看了更动内容,没有发现问题。

因此猜测可能是 yaya 0.4.6a USB 驱动带来的内存冲突或内存(过多)占用。

楼上的报告说,0.4.5c 没问题。因此,还是猜测 0.4.6a 可能出现内存冲突。

在 PXE 的情况下,常规内存被 PXE 的 BIOS 大量占用,极易出现内存不够用的情况。

建议 yaya 在 PXE 启动的情况下,屏蔽 USB 驱动。

另外,问题既然出在 0.4.6a,那么 yaya 好像应该参与到除错中来。


作者: 2011yaya2007777    时间: 2016-4-15 17:14
你不使用 sub --init ,就不会使用长规内存。使用时也就是5k,pxe不会独霸内存吧。
作者: 不点    时间: 2016-4-15 17:28
yaya,不管是什么原因,你好像得为他排错吧?我看了,改动是 chenall 作出的,但没有影响 0.4.5c,而对 0.4.6a 产生了影响。

由于得不到其他方面的信息,因此我是这么分析的:

chenall 的改动似乎是没问题的,否则 0.4.5c 为什么不受影响呢?

至于说影响了 0.4.6a,那么,排错的任务就在 0.4.6a 上了。也许正好暴露了 0.4.6a 的某个隐蔽的 bug,也说不定呢。

因此,这应该看成是个好事。


作者: mougua783    时间: 2016-5-3 08:34
值得收藏...
作者: liumailong    时间: 2016-8-7 05:39
不点 发表于 2016-4-15 17:28
yaya,不管是什么原因,你好像得为他排错吧?我看了,改动是 chenall 作出的,但没有影响 0.4.5c,而对 0.4 ...

三个多月了 看来 chenall 兄对这个BUG不感兴趣。

目前的情况来看,咱这里 PXE 启动 0.4.6a 不会读取“menu.lst”目录下的配置,但会读取“menu.lst“这个文件。

请教一下不点兄,有没有什么迂回的办法。

作者: 不点    时间: 2016-8-8 08:25
liumailong 发表于 2016-8-7 05:39
三个多月了 看来 chenall 兄对这个BUG不感兴趣。

目前的情况来看,咱这里 PXE 启动 0.4.6a  ...

我前面已经表明了看法。就是说,chenall 的改动可能没有实质性的问题。

而影响了 0.4.6,则属于交叉影响问题。感觉是 yaya 的工作范围。比如说,yaya 应该找出为何 0.4.5 正常而 0.4.6 不正常的原因。

你确定你不是在用某个很旧的版本吗?有时候,一个隐蔽的、隐藏的、旧版的 grldr 在起作用,而未被发现。

既然 yaya 也找不出原因,那就搁置这个问题吧。等待以后有更多、更详细的报告,再来定位问题的根源。

迂回的办法我也想不出。
作者: 2011yaya2007777    时间: 2016-8-9 08:33
本帖最后由 2011yaya2007777 于 2016-8-9 08:42 编辑
三个多月了 看来 chenall 兄对这个BUG不感兴趣。

8月6日的版本试没试?
作者: 2011yaya2007777    时间: 2016-8-9 08:49
本帖最后由 2011yaya2007777 于 2016-8-9 08:55 编辑

PXE 没有使用过,也不知道怎么用。
楼主报告的情况似乎是个例,所以如何重现问题非常关键,不是随便搭建一个环境。
如何使用虚拟机搭建楼主的环境,并重现问题?如果有人可以提供的话,我可以试一试跟踪,看能不能定位。

steve6375 这一点做的非常好,别人报告得情况有些不易实现,他总是想办法使用一些简单易行的方法重现问题,为定位问题提供很大的帮助。
作者: 不点    时间: 2016-8-9 09:18
本帖最后由 不点 于 2016-8-9 09:49 编辑

chenall 可能忙于工作,就不能经常来这里了。问题本身也可能比较困难,短期内排解不了,也是不奇怪的。报告者少,报告得不充分,也对排解问题不利。

另外,我注意到 pxe 命令的显示结果,0.4.5 和 0.4.6 就有不同。0.4.5 的 blksize 后面没有 【pxe】字样,而 0.4.6 就有 【pxe】。我看了源代码,发现 0.4.5 没有 ipxe,而 0.4.6 整合了 ipxe 进来。因此,bug 可能出现在 0.4.6 + ipxe 的组合上。chenall 的改动不影响 0.4.5, 却影响了 0.4.6。因此,有可能是影响了 ipxe 的相关部分,间接地影响了 0.4.6。

yaya 可以做个试验,暂时去掉 ipxe 相关功能,看看问题是否消失。总之,定位问题在哪里,是首要的。

-----------------

顺便说,ipxe 的整合,也是需要有个过程的。初步整合成功,并不表示没有问题。ipxe 的代码是如何使用内存的?如何使用堆栈的?是否与 grub4dos 的内存和堆栈相冲突?这些问题都是需要经过时间的考验的。

另外一个类似的情形,就是 gfxmenu。这是 bean 整合进来的。然而,由于 gfxmenu 所依赖的 message 是另外一套系统,是独立于 grub4dos 的,是不受 grub4dos 管控的系统,所以,这个整合就可能会带来某些难以了解、难以处理的问题(这样的问题也确实存在,只是不太多罢了)。

对比一下,yaya 把 usb 驱动和 Joliet ISO 文件系统驱动整合进来,以及 bean 把 pxe 驱动和 ntfs 文件系统驱动整合进来,那都属于彻底整合的范畴,都是可以直接管控的。

ipxe 与 gfxmenu 也有不同的特点。gfxmenu 是注定不可能完全整合的。那个 message 注定是另外一套系统。而 ipxe 则有可能完全整合进来。我目前觉得问题很可能出在内存使用这一块上。只要处理好 ipxe 的内存使用,让它不要与现有的 grub4dos 发生冲突,就可达到彻底整合。不过这需要时间,而 chenall 不一定能够腾出时间做这事了。我从直觉上,感到压力都在 yaya 身上了,所以说 yaya 是 “压力山大”。状况该是啥样就是啥样,那是自然的,谁也改变不了,除非 God 出手。


作者: liumailong    时间: 2016-8-10 06:24
2011yaya2007777 发表于 2016-8-9 08:33
8月6日的版本试没试?

grub4dos-0.4.6a-2016-08-06 版

试过不行

作者: 2011yaya2007777    时间: 2016-8-10 09:11
目前的情况来看,咱这里 PXE 启动 0.4.6a 不会读取“menu.lst”目录下的配置,但会读取“menu.lst“这个文件。

楼主反馈的情况是:
从 0.4.6a 2015-01-10 版本开始,进行PXE启动,不能读取 /menu.lst/default,但是可以读取 /menu.lst。

楼主可否告知如何使用虚拟机搭建楼主的环境,并重现问题?请打包上传相关文件。
作者: liumailong    时间: 2016-8-10 11:11
本帖最后由 liumailong 于 2016-8-10 11:16 编辑
2011yaya2007777 发表于 2016-8-10 09:11
楼主反馈的情况是:
从 0.4.6a 2015-01-10 版本开始,进行PXE启动,不能读取 /menu.lst/default,但是可 ...

  1. 操作系统:Win10 X64
  2. 虚拟机软件:VirtualBox
  3. 虚拟机网络模式:桥接网卡
  4. 虚拟机启动设置:网络启动
  5. PXE 服务器:OpenWRT X64 软路由
  6. PXE 服务软件 :dnsmasq-full        2.73-1
复制代码


yaya兄还需要什么?

另外能否直接编译一个Debug版,咱来反馈输出。
作者: 2011yaya2007777    时间: 2016-8-10 11:39
可否提供
PXE 服务器:OpenWRT X86 软路由
PXE 服务软件 :dnsmasq-full        2.73-1
只使用这2个软件就可以了?是否需要在主机安装?
作者: liumailong    时间: 2016-8-10 11:50
2011yaya2007777 发表于 2016-8-10 11:39
可否提供
PXE 服务器:OpenWRT X86 软路由
PXE 服务软件 :dnsmasq-full        2.73-1

PXE 服务器不是软件,是一台小电脑,上面安装 OpenWRT 系统当做路由用。
dnsmasq-full  2.73-1 是 OpenWRT 系统上的一个软件包,也就是 Dnsmasq。
Dnsmasq 能提供 DNS、TFTP 和DHCP。PXE启动光靠它就行了。
作者: 2011yaya2007777    时间: 2016-8-10 11:59
我现在是 Windows 7 x86 系统,有 Oracle VM VirtualBox 虚拟机。
是不是在主机上安装 OpenWRT 即可?
请提供 OpenWRT,并说明如何操作启动虚拟机。
作者: liumailong    时间: 2016-8-10 12:57
本帖最后由 liumailong 于 2016-8-10 13:01 编辑
2011yaya2007777 发表于 2016-8-10 11:59
我现在是 Windows 7 x86 系统,有 Oracle VM VirtualBox 虚拟机。
是不是在主机上安装 OpenWRT 即可?
请 ...


OpenWRT 是安装在单独的实体机,虚拟机安装 OpenWRT,改的配置很多,使用会非常复杂。

虚拟机网络启动到是很简单,直接导入附件的OVA文件就行了。
测试用虚拟机.zip (2.25 KB, 下载次数: 1)


OpenWRT下载地址。
.img 是实体机使用的镜像,.vmdk是虚拟机使用的镜像
链接:http://pan.baidu.com/s/1gfugRE7 密码:blrq


其实你要是有空,远程控制咱的电脑是最好的测试办法。
作者: 2011yaya2007777    时间: 2016-8-10 18:13
上传的是 Linux x64 文件,而我的是 Windows 7 x86 系统,似乎不能用。
作者: liumailong    时间: 2016-8-10 19:25
本帖最后由 liumailong 于 2016-8-10 19:26 编辑
2011yaya2007777 发表于 2016-8-10 18:13
上传的是 Linux x64 文件,而我的是 Windows 7 x86 系统,似乎不能用。


虚拟机的问题不好解决,咱的水平有限没什么办法。
要不yaya兄编译一个DeBUG版,咱把输出贴出来。
或者约个时间搞远程控制如何?
作者: 2011yaya2007777    时间: 2016-8-12 10:28
本帖最后由 2011yaya2007777 于 2016-8-12 10:43 编辑

我这里测试正常,可以找到 menu.lst。
文件名:在 Tiny PXE Server 里的 ‘文件名‘处指定 grldr (任意版本)
菜单:在  menu.lst/default

                   Qemu                        Oracle VM VirtualBox
blksize:        512[PXE]                    1408[PXE]
basedir:        /                                /
bootfile:       grldr                           grldr
client ip:      10.0.2.15                     192.168.1.103
server ip:     10.0.2.2                       192.168.1.101
geteway ip:  10.0.2.2                       0.0.0.0
mac:            52-54-00-12-34-56       08-00-27-31-CF-9A
作者: 不点    时间: 2016-8-12 11:23
2011yaya2007777 发表于 2016-8-12 10:28
我这里测试正常,可以找到 menu.lst。
文件名:在 Tiny PXE Server 里的 ‘文件名‘处指定 grldr (任意版 ...

你用的是 tiny pxe server,可是报告者不是使用这个服务器软件,而是使用 dnsmasq-full。

最好还是弄个 debug 版本让报告者自己测试。

报告者的图片显示,bootfile 后的 grldr 未被识别出来,是空字符串。

因此我怀疑报告者的服务器端配置不完整,或者不同的配置项目之间有冲突,或者有错误。


作者: leebaker    时间: 2016-8-18 20:19
我试了grub4dos 0.4.6a 2016-08-06版本,能顺利启动我的手提电脑。我使用的也是openwrt做启动服务器。OpenWrt Chaos Calmer 15.05.1 。
作者: liumailong    时间: 2016-8-20 00:02
leebaker 发表于 2016-8-18 20:19
我试了grub4dos 0.4.6a 2016-08-06版本,能顺利启动我的手提电脑。我使用的也是openwrt做启动服务器。OpenW ...

我也是能启动,但不能载入/menu.lst/default 这个菜单。
你可以试试,把PXE根目录的menu.lst 删除,然后创建一个目录“menu.lst”,然后在“menu.lst”里创建一个名为“default”的菜单。看看是否能正常启动




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