|
|
发表于 2011-5-22 20:35:38
|
显示全部楼层
原帖由 chenall 于 2011-5-22 09:44 发表 
你的测试环境是什么?我刚刚用虚拟机测试一切正常,我记得之前也有类似的情况是在一台DELL的机器上。
不过没有找到原因。
测试版本:grub4dos-0.4.5b-2011-05-19, VMware
dhcp option 67: /boot/pxe/grldr
目前版本中,/boot/pxe/menu.lst/default菜单无法显示,而需要将default菜单放至/boot/pxe/boot/pxe/menu.lst/目录中才能正常显示。
Grub4dos 0.4.4 2008-08-08及之前的版本没有这个问题。
即:
Grub4dos 0.4.4 2008-08-08及之前的版本pxe找boot/pxe/menu.lst/default,而现在的版本找/boot/pxe/boot/pxe/menu.lst/default,多叠加了一次启动目录。
grldr放在(tftproot)/boot/pxe目录,而不是tftp根目录;(tftproot)/boot/pxe/menu.lst/是目录而不是文件,下面放了文件名为default的菜单文件。
dhcp option 67: /boot/pxe/grldr,pxe客户端tftp下载(tftproot)/boot/pxe/grldr启动。
就会出现上问题,在VMware和真实PC都一样。
我测试过的2009年初之后的版本,都存在这个问题,所以我一直在用2008年的版本,望大侠修正。
从抓到包分析来看,我觉得原因大致是
在找到/boot/pxe/menu.lst/default后,去读取该文件时,读成了/boot/pxe/boot/pxe/menu.lst/default文件
大致可能是:找到的/boot/pxe/menu.lst/default为一个字符串变量,在前面加了(pd),便成了(pd)/boot/pxe/menu.lst/default
而(pd)本身是(tftproot)/boot/pxe,所以就成了(tftproot)/boot/pxe/boot/pxe/menu.lst/default,
不知我有没有猜对。
如果猜对,只需将/boot/pxe/menu.lst/default这个字符串变量前面截去pxe basedir长度或长度-1个字符就可以了,
或者,此时将pxe basedir改为tftp根目录。
[ 本帖最后由 2011exuejiao 于 2011-5-22 21:38 编辑 ] |
-
-
引导过程.rar
77.84 KB, 下载次数: 10, 下载积分: 无忧币 -2
引导过程界面与抓包
|