Chinaunix首页 | 论坛 | 博客
  • 博客访问: 608427
  • 博文数量: 142
  • 博客积分: 116
  • 博客等级: 入伍新兵
  • 技术积分: 1445
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-28 08:37
文章分类

全部博文(142)

文章存档

2017年(7)

2016年(57)

2015年(48)

2014年(30)

我的朋友

分类: LINUX

2016-02-10 20:37:23

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,
  1. 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,适当修改内容如下:
  1. label linux2
      menu label ^Install CentOS 7 with http repo
      kernel ./kernel/centos7/vmlinuz
      append initrd=./kernel/centos7/initrd.img method= devfs=nomount

阅读(3267) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~