openwrt上配置pxe网络启动服务

新买了个带USB接口的无线路由器(中兴H118B),终于可以尝试把PXE网络启动服务全装在路由器上了,以前只是路由器上配置dhcp指向局域网的一台TFTP,现在可以完全跑在路由器上了。
方法很简单,刷机成openwrt,这个就不说了,太简单了,我刷的是http://downloads.openwrt.org/backfire/10.03/brcm-2.4/openwrt-brcm-2.4-squashfs.trx
如果只需要传统的pxe,也就是dhcp+tftp的话,openwrt全都自带,ssh登录进路由器,输入以下指令即可

1
2
3
4
uci set dhcp.@dnsmasq[0].enable_tftp=1
uci set dhcp.@dnsmasq[0].tftp_root=/mnt/usb/tftp
uci set dhcp.@dnsmasq[0].dhcp_boot=/mnt/usb/tftp/gpxelinux.0
uci commit dhcp

注:/mnt/usb/目录是我U盘的位置
由于我用gpxe,所以还加入了ftp的配置,这样可以网络启动通过ftp来传输引导文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 #opkg install pure-ftpd
#vi /etc/config/pure-ftpd #按下面进行修改
config pure-ftpd
option port "21"
option noanonymous "0"
option chrooteveryone "0"
option maxclientsperip "5"
option maxclientsnumber "4"
option peruserlimits "3:4"
option umask "133:022"
option authentication "unix"
option enabled "1"
#vi /etc/passwd #增加下面一行创建ftp匿名访问的账户
ftp:x:500:500:Linux User,,,:/mnt/usb/tftp:/bin/false

注:这里配置的ftp为开发匿名访问,如果不需要匿名把option的noanonymous改成1就可以了

更多uci命令请参考http://wiki.openwrt.org/zh-cn/doc/uci