PXE为客户机提供了网络启动功能。
相关说明可以参考""
搭建PXE服务器主要需要以下3种组件。
1 dhcp server -- 为客户机分配IP,并指引客户机通过tftp从next-server上获取bootfile。
2 tftp server -- 让客户机下载boot file。
3 pxe linux 引导文件 -- 这个就是boot file了,客户机加载此文件完成启动。
安装dhcp server:
debian上用apt-cache search dhcp能搜索到几个,我选用了udhcpd(从属于busybox)
安装后,
修改/etc/default/udhcpd,改为DHCPD_ENABLED="yes";
修改/etc/udhcpd.conf,修改start,end为dhcp池的IP地址范围,
siaddr 为tftp服务器的IP,boot_file 为pxelinux.0。
(siaddr相当于dhcpd里的next-server,boot_file相当于dhcpd里的filename)
安装tftp server:
apt-get install tftpd
tftpd不是单独服务进程,而是通过inet接受客户端请求。
修改/etc/inetd.conf,
-
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
其中,最后面的/tftpboot是tftp服务的根目录。
pxelinux引导文件属于syslinux软件包,需要安装:
apt-get install syslinux-common
mkdir -m 777 /tftpboot
cp -r /usr/lib/syslinux/pxelinux.0 /tftpboot/
cp -r /usr/lib/syslinux/menu.c32 /tftpboot/
cp -r /usr/lib/syslinux/vesamenu.c32 /tftpboot/
mkdir /tftpboot/pxelinux.cfg
pxelinux.0会引导客户机到/tftpboot/pxelinux.cfg目录下读取名为default的菜单文件。
menu和vesamenu是以图形方式显示开机菜单所需要的文件。
可以使用tftp客户端测试一下tftp服务器。
tftp host -c get pxelinux.0
注意:dhcp使用udp69,tftpd使用udp67,要保持防火墙开放。
iptables -I INPUT 3 -p udp --dport 67 -j ACCEPT
iptables -I INPUT 3 -p udp --dport 69 -j ACCEPT
另外,客户机的防火墙也要注意,tftp应答时使用其它端口通信,如果客户机没开放防火墙,
syslog里会发生tftpd: read: No route to host
复制DVD光盘里isolinux里的vmlinuz,initrd.img,isolinux.cfg到tftp的目录下,
把isolinux.cfg改名为default,
适当修改内容如下:
-
label linux2
menu label ^Install CentOS 7 with http repo
kernel ./kernel/centos7/vmlinuz
append initrd=./kernel/centos7/initrd.img method= devfs=nomount
阅读(3392) | 评论(0) | 转发(0) |