无忧启动论坛

标题: 无盘计算机从LINUX服务器上PXE启动碰到的问题 [打印本页]

作者: 2012fastdie    时间: 2012-4-27 12:28
标题: 无盘计算机从LINUX服务器上PXE启动碰到的问题
我在一台UBUNTU服务器上安装了DHCP服务与TFTP服务,将grldr、menu.lst、0pe.iso这三个文件放入tftp根目录内,并赋予777文件属性,如下图一:



我编辑DHCP服务的配置文件,使其配置如下图二:



在确认DHCP服务与TFTP服务都正确启动后,我用一个未挂载硬盘的虚拟机测试PXE启动,虚拟机顺利连接上UBUNTU服务器并加载grldr文件,如图三:



接下来,我希望在GRUB4DOS环境下,加载服务器“/tftpboot”目录下面的0pe.iso,我的启动项如下图四:



我卡在引导服务器上的0pe.iso镜像的部分,grldr返回“error 15:file not found”的错误提示,如下图五:



我不知道是我的命令还是服务器路径有问题,请大家帮忙看看,谢谢了。

[ 本帖最后由 2012fastdie 于 2012-4-27 12:57 编辑 ]
作者: xianglang    时间: 2012-4-27 13:26
如果不是文件名大小写问题,试试将 PXE KEEP放到TITLE前面看看。
作者: 2012fastdie    时间: 2012-4-27 14:12
原帖由 xianglang 于 2012-4-27 13:26 发表
如果不是文件名大小写问题,试试将 PXE KEEP放到TITLE前面看看。


感谢关注,已经尝试调整"PXE KEEP"语句位置到TITLE前,但是问题没有解决。
作者: 2012fastdie    时间: 2012-4-27 14:22
将图四的代码添加到本机硬盘的grldr引导文件中,重新启动后选择用该段代码引导,grldr返回“error 23”的错误提示,受条件限制无法截图。

我下载最新的0.45C版本grldr文件来执行操作,错误依旧;查看grub4dos相关文档,只找到了启动软盘镜像的例子。

请有PXE启动经验的朋友赐教,谢谢了。
作者: zhaohj    时间: 2012-4-27 14:59
把"pxe basedir /tftpboot“去掉就可以了。

如果你一定要写,也是相对tftp设置的目录而言的,改成pxe basedir /
作者: 2012fastdie    时间: 2012-4-27 16:26
原帖由 zhaohj 于 2012-4-27 14:59 发表
把"pxe basedir /tftpboot“去掉就可以了。

如果你一定要写,也是相对tftp设置的目录而言的,改成pxe basedir /


我重命名了ISO文件,并且按照你的方式修改了menu.lst,并且重新上传了grldr文件及menu.lst文件,下图是我的菜单截图:



做完以上工作之后,我使用虚拟机测试,结果虚拟机启动后就一直在滚屏,不能进入grub菜单,错误截图如下:



百思不得其解,继续求指导。
作者: zhaohj    时间: 2012-4-27 16:58
不能进入grub菜单,那我还是怀疑你的TFTP有问题,或者网络环境不好。
1楼的图至少能出菜单,6楼怎么菜单也出不了?
”cannot open bootflile“,这句话明显是dhcp或tftp配置出现问题。
作者: 不点    时间: 2012-4-27 19:22
属于 “ 自扰 ” 的结果。抱歉,这话不是贬义,不要多心。

pxe detect 语句通常只用在 preset menu 中,不可以随意滥用。

遇到这条命令,都会再次查找和执行服务器端的 menu 文件。

所以你遇到了无限循环。这就是 pxe detect 语句 “ 自扰 ” 的结果。

menu.lst 中不要带上 pxe detect。实在想用它的话,也不要用在 title 之前。

[ 本帖最后由 不点 于 2012-4-27 20:23 编辑 ]
作者: pseudo    时间: 2012-4-27 20:11
下载官方发布的grub4dos压缩包,里面有grldr和样例menu.lst。可直接用这两个现成文件。
这个menu.lst中假定iso是在0PE目录的,自己移动iso位置或修改menu.lst里面的目录使之与iso位置对应即可。
作者: 2012fastdie    时间: 2012-4-28 12:55
原帖由 不点 于 2012-4-27 19:22 发表
属于 “ 自扰 ” 的结果。抱歉,这话不是贬义,不要多心。

pxe detect 语句通常只用在 preset menu 中,不可以随意滥用。

遇到这条命令,都会再次查找和执行服务器端的 menu 文件。

所以你遇到了无限循 ...


感谢回复。我重新调整了服务器上的menu.lst文件,如下图:



启动虚拟机测试之后,虚拟机PXE启动并从服务器上的grldr文件引导载入menu.lst,并顺利载入ISO镜像文件,结果停止在下面这个情况:



重新用物理机测试了一下,发现这个是虚拟机的问题;物理机设置网卡PXE启动之后顺利地加载启动了0pe.iso 。稍晚一些时候,我多换几个硬件平台测试PXE启动。

简单总结:

一、 把grldr、menu.lst、ISO文件放到UBUNTU服务器的tftp服务的根目录下;
二、 在UBUNTU服务器的DHCP配置文件中指定pxe远程启动文件;
三、 编辑服务器上的menu.lst文件如上图;
四、 用物理机测试。

[ 本帖最后由 2012fastdie 于 2012-4-28 13:31 编辑 ]
作者: 2012fastdie    时间: 2012-4-28 13:33
原帖由 pseudo 于 2012-4-27 20:11 发表
下载官方发布的grub4dos压缩包,里面有grldr和样例menu.lst。可直接用这两个现成文件。
这个menu.lst中假定iso是在0PE目录的,自己移动iso位置或修改menu.lst里面的目录使之与iso位置对应即可。


感谢回复,问题已解决。晚一些时候我会将帖子整理出一个教程,希望能够帮助到更多刚刚接触grub4dos与pxe启动的朋友。




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