|
楼主 |
发表于 2011-6-20 13:10
|
显示全部楼层
都没人知道啊????
自己找了点资料
MSS和dd-wrt配合实现PXE启动服务(原创)
MSS和dd-wrt配合实现PXE环境
背景知识:
PXE(Preboot Execution Environment,远程引导技术)是一种网络引导服务,可以实现从网络启动,进而可以实现无盘运行等。
PXELinux是SYSLinux的一个分支,可以从PXE环境启动Linux。
TFTP(Trivial File Transfer Protocol)是简单文件传输协议,广泛用于不需要复杂验证的环境,如启动环境。
DHCP是Dynamic Host Configuration Protocol的缩写,它是TCP/IP协议簇中的一种,主要是用来给网络客户机分配动态的IP地址及指定某些选项。
MSS是一个网络硬盘,通过破解的固件,可以运行Linux许多工具,作为一个嵌入式Linux系统,同样可以实现Linux系统的许多功能,如PXE服务器。
DD-WRT是一个可以运行在很多路由器上的软件,同样是一个嵌入式Linux系统。
正文:
我家的环境是这样的,运行DD-WRT V24的Linksys Wrt-54GV2,运行Openmss.cn2.6.6的MSS硬盘盒,根据各负其责的思想,DHCP服务在DD-WRT实现,文件服务在MSS实现。
1、DHCP服务设置
我的DHCP采用Dnsmasq实现,为了告诉客户机从哪里获得PXE文件,在“管理”“Services”中“附加的DNSMasq选项”写入“dhcp-boot=pxelinux.0,,192.168.1.100”,这里告诉客户端,PXE引导文件是pxelinux.0,服务器地址是192.168.1.100,这是我的MSS的地址,你需要修改为你自己的地址。
2、TFTP服务设置
接下来需要在MSS上运行TFTP服务,我选择的是atftpd,运行ipkg update;ipkg install atftpd,你可能看到一些错误,不用管它,只要安装完毕就好。
默认的atftpd采用xinetd启动,但是我发现xinetd不能正常运行,需要采用独立进程方式运行,为此,我编写了一个启动脚本。
cat /opt/etc/init.d/S66atftpd
#!/bin/sh
[ -e /opt/etc/default/atftpd ] && . /opt/etc/default/atftpd
if [ "$ATFTPD_ENABLE" = "no" ]; then
exit
fi
if [ -n "`pidof /opt/sbin/atftpd`" ]; then
killall /opt/sbin/atftpd 2>/dev/null
fi
/opt/sbin/atftpd --user $ATFTPD_USER --group $ATFTPD_GROUP --port $ATFTPD_PORT \
--bind-address $BIND_ADDRESS --daemon $TFTPDROOT
为了设置参数,你需要另一个文件,也附在下方
cat /opt/etc/default/atftpd
ATFTPD_ENABLE=yes
ATFTPD_PORT=69
ATFTPD_USER=root
ATFTPD_GROUP=root
BIND_ADDRESS=192.168.1.100
TFTPDROOT=/opt/tftpboot/
有了这两个文件,你就可以自动启动atftpd了
3、PXE环境准备
到现在为止,客户机已经可以知道到哪里取启动文件(通过DHCP),也可以取文件(通过TFTP),但是pxelinux.0文件还没有,这个文件可以从http://www.kernel.org/pub/linux/utils/boot/syslinux/下,目前最新版本是3.63,我用的就是这个。
将pxelinux.o放在/opt/tftpboot/下,在/opt/tftpboot/下建立pxelinux.cfg目录,基本启动环境就已经搭好了,你只需要实际的pxe启动系统了。
4、PXE环境例子
从Fedora9光盘拷贝isolinux目录下除boot.cat,grub.conf,isolinux.bin,TRANS.TBL外所有文件到/opt/tftpboot/,将isolinux.cfg改名为default,放在/opt/tftpboot/pxelinux.cfg/下。
一切准备就绪,你的客户机可以从PXE环境启动安装Fedora9了。当然在此之前还需要设置NFS共享等,这是PXE启动安装Fedora的内容了。
白丁原创,允许自由转贴,但不得擅自改动其中内容。 |
|