a. 根据您头一帖的描述,您目前的tftp虽然设置了,但是没有连接上,检查一下是否被pf给阻挡了?
b. 检查一下pxeboot文件的属性是否可读。
c. 您没有严格按照教程走,规则有问题,filename "pxeboot" 的前面不能有注释符“#”。
d. 另外检查一下是否有多余的网卡连接到了其它的路由器上,也就是说您的OpenBSD的DHCP服务器主机并非唯一的DHCP服务器,其它机器是否也提供了DHCP服务,而没有提供tftp?
e. 此外建议您尽量描述的详细一些,例如:是否DHCP和tftp服务器在同一台主机上?内容越详细越清晰则越便于分析问题,这在FAQ的例子里也提到了,不是没有道理的。我现在仅能假设您是这种情况,但我不能确认,如果您的网络不是这种情况则需要更改设置。
我把我的步骤也列在这里供您参考:
1.设置DHCP服务器上连接dhcp客户端的网卡,我这里是re0,为了避免冲突,您最好手动设置,我将内网IP段设为192.168.2.X,re0的IP设置为192.168.2.1,所以编辑/etc/hostname.re0文件,将内容设置为:
代码: 全选
inet 192.168.2.1 255.255.255.0 NONE
2. 设置DHCP服务器,编辑 /etc/rc.conf.local文件,下面是我的文件:
代码: 全选
[code]inetd=YES
[color=black]pf=NO[/color]
pf_rules=/etc/pfnew.conf
[color=red]dhcpd_flags="re0"[/color]
[color=red]dhcpd=YES[/color]
[/code]上面红色的部分是添加的内容,目的是启用dhcp服务器,其中re0为连接dhcp客户端的网络接口。注意我在这里为了简化操作步骤,仅简单地关闭了pf,如果您在实际应用里不愿意这样,请在PF规则里放行内网和DHCP服务器之间的全部通讯,或者开启对内网的相应端口及协议以便放行DHCP及tftp的相应通讯,为了说明主要问题——pxe启动,我们就不在这里展开讨论了。
3. 启用tftp服务器,这里请注意:按照FAQ的说明,您不能禁用inetd,因为启用tftp需要它;编辑/etc/inetd.conf文件,将tftpd前面的注释符去掉:
代码: 全选
.......
tftp dgram udp wait root /usr/libexec/tftpd tftpd -$
tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -$
#127.0.0.1:comsat dgram udp wait......
4. 创建 /tftpboot目录,这是pxe默认使用的目录:
5. 将启动所需文件拷贝至 /tftpboot目录
代码: 全选
[code]# cp /usr/mdec/pxeboot /tftpboot/pxeboot
# cp /bsd.rd /tftpboot/bsd.rd
[/code]
因为启动时您可以指定内核文件,所以不用再单独拷贝boot.conf了,如果您想这样做也可以,将boot.conf的内容修改为:
6. 修改系统默认的 /etc/dhcpd.conf文件,加入如下红色内容,下面是我的文件:
代码: 全选
# $OpenBSD: dhcpd.conf,v 1.2 2008/10/03 11:41:21 sthen Exp $
#
# DHCP server options.
# See dhcpd.conf(5) and dhcpd(8) for more information.
#
# Network: 192.168.1.0/255.255.255.0
# Domain name: my.domain
# Name servers: 192.168.1.3 and 192.168.1.5
# Default router: 192.168.1.1
# Addresses: 192.168.1.32 - 192.168.1.127
#
option domain-name "my.domain";
option domain-name-servers 192.168.1.3, 192.168.1.5;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
range 192.168.1.32 192.168.1.127;
host static-client {
hardware ethernet 22:33:44:55:66:77;
fixed-address 192.168.1.200;
}
host pxe-client {
hardware ethernet 02:03:04:05:06:07;
filename "pxeboot";
next-server 192.168.1.1;
}
}
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
range 192.168.2.32 192.168.2.127;
filename "pxeboot"; <-------------------这行决不能有注释符
host static-client {
hardware ethernet 22:33:44:55:66:77;
fixed-address 192.168.2.200;
}
host pxe-client {
hardware ethernet 02:03:04:05:06:07;
next-server 192.168.2.1;
}
}
7. 重新启动DHCP服务器所在主机。
8. 启动客户端计算机(必须具有PXE的能力,否则我前面说的就全是废话了。),出现boot提示符后键入bsd.rd就开始安装了。下面是FAQ里面的示例,是4.5的,很抱歉,我在测试时并未截图,不过没有关系,大同小异罢了:
代码: 全选
[code]>> OpenBSD/i386 PXEBOOT 2.03
boot> bsd.rd
booting tftp:bsd.rd: 4375152+733120 [58+122112+105468]=0x516d04
entry point at 0x100120
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2008 OpenBSD. All rights reserved. [URL]http://www.OpenBSD.org[/URL]
OpenBSD 4.5 (RAMDISK_CD) #1112: Sat Feb 28 15:06:26 MST 2009
[/code]不知道我的描述您能明白吗?
如果您成功了,请根据自己的情况修改该主题的前缀,也就是将前缀修改为【部分解决】或【完全解决】,如果不清楚怎样修改,我来改也可以。
如果您愿意,请在下面回贴说明当初详细的配置情况及失败原因,这样以后遇到同样问题的朋友会非常感激您。