无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 10071|回复: 31

[求助] 0.4.6a pxe启动问题。

[复制链接]
发表于 2016-4-2 23:21:32 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码
发表于 2016-4-3 11:29:30 | 显示全部楼层
PXE服务端用的是什么软件?

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

点评

服务端用的是dnsmasq,关键问题是之前版本正常,而现在的版本不正常。 昨天还试了一下0.4.5c的最新版也正常,这个是BUG还是特性?  详情 回复 发表于 2016-4-3 11:39
回复

使用道具 举报

 楼主| 发表于 2016-4-3 11:39:21 | 显示全部楼层
chenall 发表于 2016-4-3 11:29
PXE服务端用的是什么软件?

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

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

昨天还试了一下0.4.5c的最新版也正常,这个是BUG还是特性?

点评

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

使用道具 举报

发表于 2016-4-3 13:39:51 | 显示全部楼层
0.4.6a 2.16.03.26 PXE测试正常!
回复

使用道具 举报

发表于 2016-4-3 13:59:10 | 显示全部楼层
liumailong 发表于 2016-4-3 11:39
服务端用的是dnsmasq,关键问题是之前版本正常,而现在的版本不正常。

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

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

还有在命令行中输入pxe命令显示的信息
你的服务器IP等信息,看看是否和PXE命令显示的一样。

点评

由于实体机没显示器,用VirtualBox 测试了一下。 对比一下 pxe blksize 有区别,不过在0.4.6a 新版中内置菜单修改pxe blksize 后还是不能起动.  详情 回复 发表于 2016-4-4 12:19
回复

使用道具 举报

 楼主| 发表于 2016-4-4 12:19:36 | 显示全部楼层
chenall 发表于 2016-4-3 13:59
需要提供更多的信息,比如启动截图等。

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

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

使用道具 举报

发表于 2016-4-4 12:49:49 | 显示全部楼层
blksize 怎么会是 1432?

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

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

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

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

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

点评

上面的回复没说清楚,我在补充一下。 服务端设置没改过,启动文件都是“grldr” 第一张是修改过内置菜单,在“pxe detect”下面增加了“pxe blksize 1432”,其它的没做修改 结果还是我之前说的,0.4.5c和0.4.6a  详情 回复 发表于 2016-4-4 13:04
上面的回复没说清楚,我在补充一下。 服务端设置没改过,启动文件都是“grldr” 第一张是修改过内置菜单,在“pxe detect”下面增加了“pxe blksize 1432” 结果还是我之前说的,0.4.5c和0.4.6a 2015-01-09版成功  详情 回复 发表于 2016-4-4 13:02
回复

使用道具 举报

 楼主| 发表于 2016-4-4 13:02:31 | 显示全部楼层
本帖最后由 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
回复

使用道具 举报

 楼主| 发表于 2016-4-4 13:04:47 | 显示全部楼层
本帖最后由 liumailong 于 2016-4-4 13:07 编辑

重复贴,请删除这层
回复

使用道具 举报

发表于 2016-4-4 14:37:16 | 显示全部楼层
chenall 可以编译一个调试版,跟踪探测程序的执行过程,看看为何旧版可以探测到 1432,而新版探测不到?

难道是隐蔽的内存冲突?

回复

使用道具 举报

发表于 2016-4-15 11:21:44 | 显示全部楼层
我粗略看了更动内容,没有发现问题。

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

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

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

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

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

回复

使用道具 举报

发表于 2016-4-15 17:14:52 来自手机 | 显示全部楼层
你不使用 sub --init ,就不会使用长规内存。使用时也就是5k,pxe不会独霸内存吧。
回复

使用道具 举报

发表于 2016-4-15 17:28:57 | 显示全部楼层
yaya,不管是什么原因,你好像得为他排错吧?我看了,改动是 chenall 作出的,但没有影响 0.4.5c,而对 0.4.6a 产生了影响。

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

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

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

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

点评

三个多月了 看来 chenall 兄对这个BUG不感兴趣。 目前的情况来看,咱这里 PXE 启动 0.4.6a 不会读取“menu.lst”目录下的配置,但会读取“menu.lst“这个文件。 请教一下不点兄,有没有什么迂回的办  详情 回复 发表于 2016-8-7 05:39
回复

使用道具 举报

发表于 2016-5-3 08:34:44 | 显示全部楼层
值得收藏...
回复

使用道具 举报

 楼主| 发表于 2016-8-7 05:39:13 | 显示全部楼层
不点 发表于 2016-4-15 17:28
yaya,不管是什么原因,你好像得为他排错吧?我看了,改动是 chenall 作出的,但没有影响 0.4.5c,而对 0.4 ...

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

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

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

点评

我前面已经表明了看法。就是说,chenall 的改动可能没有实质性的问题。 而影响了 0.4.6,则属于交叉影响问题。感觉是 yaya 的工作范围。比如说,yaya 应该找出为何 0.4.5 正常而 0.4.6 不正常的原因。 你确定  详情 回复 发表于 2016-8-8 08:25
回复

使用道具 举报

发表于 2016-8-8 08:25:08 | 显示全部楼层
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 也找不出原因,那就搁置这个问题吧。等待以后有更多、更详细的报告,再来定位问题的根源。

迂回的办法我也想不出。
回复

使用道具 举报

发表于 2016-8-9 08:33:40 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2016-8-9 08:42 编辑
三个多月了 看来 chenall 兄对这个BUG不感兴趣。

8月6日的版本试没试?

点评

grub4dos-0.4.6a-2016-08-06 版 试过不行  详情 回复 发表于 2016-8-10 06:24
回复

使用道具 举报

发表于 2016-8-9 08:49:23 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2016-8-9 08:55 编辑

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

steve6375 这一点做的非常好,别人报告得情况有些不易实现,他总是想办法使用一些简单易行的方法重现问题,为定位问题提供很大的帮助。
回复

使用道具 举报

发表于 2016-8-9 09:18:41 | 显示全部楼层
本帖最后由 不点 于 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 出手。

回复

使用道具 举报

 楼主| 发表于 2016-8-10 06:24:32 | 显示全部楼层
2011yaya2007777 发表于 2016-8-9 08:33
8月6日的版本试没试?

grub4dos-0.4.6a-2016-08-06 版

试过不行
回复

使用道具 举报

发表于 2016-8-10 09:11:37 | 显示全部楼层
目前的情况来看,咱这里 PXE 启动 0.4.6a 不会读取“menu.lst”目录下的配置,但会读取“menu.lst“这个文件。

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

楼主可否告知如何使用虚拟机搭建楼主的环境,并重现问题?请打包上传相关文件。

点评

操作系统:Win10 X64 虚拟机软件:VirtualBox 虚拟机网络模式:桥接网卡 虚拟机启动设置:网络启动 PXE 服务器:OpenWRT X64 软路由 PXE 服务软件 :dnsmasq-full 2.73-1  详情 回复 发表于 2016-8-10 11:11
回复

使用道具 举报

 楼主| 发表于 2016-8-10 11:11:37 | 显示全部楼层
本帖最后由 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版,咱来反馈输出。
回复

使用道具 举报

发表于 2016-8-10 11:39:11 | 显示全部楼层
可否提供
PXE 服务器:OpenWRT X86 软路由
PXE 服务软件 :dnsmasq-full        2.73-1
只使用这2个软件就可以了?是否需要在主机安装?

点评

PXE 服务器不是软件,是一台小电脑,上面安装 OpenWRT 系统当做路由用。 dnsmasq-full 2.73-1 是 OpenWRT 系统上的一个软件包,也就是 Dnsmasq。 Dnsmasq 能提供 DNS、TFTP 和DHCP。PXE启动光靠它就行了。  详情 回复 发表于 2016-8-10 11:50
回复

使用道具 举报

 楼主| 发表于 2016-8-10 11:50:34 | 显示全部楼层
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启动光靠它就行了。
回复

使用道具 举报

发表于 2016-8-10 11:59:07 | 显示全部楼层
我现在是 Windows 7 x86 系统,有 Oracle VM VirtualBox 虚拟机。
是不是在主机上安装 OpenWRT 即可?
请提供 OpenWRT,并说明如何操作启动虚拟机。

点评

OpenWRT 是安装在单独的实体机,虚拟机安装 OpenWRT,而且改的配置多会非常复杂。 虚拟机网络启动到是很简单,直接导入附件的OVA文件就行了。 OpenWRT下载地址。 .img 是实体机使用的镜像,.vmdk是虚拟机  详情 回复 发表于 2016-8-10 12:57
回复

使用道具 举报

 楼主| 发表于 2016-8-10 12:57:07 | 显示全部楼层
本帖最后由 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)
回复

使用道具 举报

发表于 2016-8-10 18:13:55 | 显示全部楼层
上传的是 Linux x64 文件,而我的是 Windows 7 x86 系统,似乎不能用。

点评

虚拟的问题不好解决,咱的水平有限没什么办法。 要不yaya兄编译一个DeBUG版,咱把输出贴出来。 或者约个时间搞远程控制如何?  详情 回复 发表于 2016-8-10 19:25
回复

使用道具 举报

 楼主| 发表于 2016-8-10 19:25:26 | 显示全部楼层
本帖最后由 liumailong 于 2016-8-10 19:26 编辑
2011yaya2007777 发表于 2016-8-10 18:13
上传的是 Linux x64 文件,而我的是 Windows 7 x86 系统,似乎不能用。


虚拟机的问题不好解决,咱的水平有限没什么办法。
要不yaya兄编译一个DeBUG版,咱把输出贴出来。
或者约个时间搞远程控制如何?
回复

使用道具 举报

发表于 2016-8-12 10:28:25 | 显示全部楼层
本帖最后由 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

点评

你用的是 tiny pxe server,可是报告者不是使用这个服务器软件,而是使用 dnsmasq-full。 最好还是弄个 debug 版本让报告者自己测试。 报告者的图片显示,bootfile 后的 grldr 未被识别出来,是空字符串。  详情 回复 发表于 2016-8-12 11:23
回复

使用道具 举报

发表于 2016-8-12 11:23:56 | 显示全部楼层
2011yaya2007777 发表于 2016-8-12 10:28
我这里测试正常,可以找到 menu.lst。
文件名:在 Tiny PXE Server 里的 ‘文件名‘处指定 grldr (任意版 ...

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

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

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

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

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-3 19:54

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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