Linux系统PXE高效批量网络装机的配置

配置环境:

服务器IP地址为192.168.1.10,所在网段为192.168.1.0/24;

一、首先需要准备系统安装源

[root@www ~]# mkdir -pv /var/ftp/centos6/
[root@www ~]# cp -rf /media/cdrom/* /var/ftp/centos6/

二、部署FTP服务

[root@www ~]# yum -y install vsftpd
[root@www ~]# service vsftpd start

三、部署TFTP服务

[root@www ~]# yum -y install tftp-server

编辑 /etc/xinetd.d/tftp配置文件,将disable=yes改为disable=no 重启xinetd服务即可。

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no   //把yes改为no  
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no     //把yes改为no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

启动服务

[root@www ~]# service xinetd start

四、准备linux内核和初始化文件。

Linux内核和初始化镜像文件可以从linux镜像中找到,位于文件夹/images/pxeboot中,将vmlinuz和initrd.img复制到tftp的根目录/var/lib/tftpboot/下

Vmlinuz:linux内核

initrd.img:初始化镜像文件

[root@www ~]# cd /media/cdrom/images/pxeboot/
[root@www pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@www pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/

五、接下来在准备PEX引导程序,启动菜单文件

Linux引导程序为pxelinux.0 该文件由syslinux软件包提供,因此我们要安装syslinux软件包,并复制到tftp根目录下

[root@www ~]# yum -y install syslinux
[root@www ~]# cd /usr/share/syslinux/
[root@www syslinux]# cp pxelinux.0 /var/lib/tftpboot/

默认的启动菜单为default,该文件应该放置在tftp根目录的pxelinux.cfg中,并重命名为default。

[root@www ~]# cd /media/cdrom/
[root@www cdrom]# ls
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6
[root@www cdrom]# cd isolinux/
[root@www isolinux]# ls
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL     vmlinuz
boot.msg  initrd.img  isolinux.cfg  splash.jpg  vesamenu.c32
[root@www isolinux]# cp isolinux.cfg /var/lib/tftpboot/
[root@www syslinux]# cd /var/lib/tftpboot/
[root@www tftpboot]# mkdir pxelinux.cfg
[root@www tftpboot]# cp isolinux.cfg pxelinux.cfg/default

修改default文件内容如下:

default linux       //名字随便起
prompt 0           //0表示自动选择,1表示等待用户确认
timeout 600       //超时时间  60s



label linux
  menu label ^Install or upgrade an existing system
  menu default
  kernel vmlinuz
  append  initrd=initrd.img
label text            //文本安装
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append text initrd=initrd.img xdriver=vesa nomodeset
label rescue        //救援模式
  menu label ^Rescue installed system
  kernel vmlinuz

六、安装部署DHCP服务

[root@www ~]# yum -y install dhcp
[root@www ~]# cd /usr/share/doc/dhcp-4.1.1/
[root@www dhcp-4.1.1]# cp dhcpd.conf.sample /etc/dhcp/dhcpd.conf 

修改配置文件如下:

只需在配置文件里添加网段声明即可;

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.10 192.168.1.20;
  option routers 192.168.1.10;
  filename "pxelinux.0";             //制定PXE引导程序名
  next-server 192.168.1.10;      //添加ftp服务器的
}
[root@www ~]# service dhcpd start

这里为了方便测试,我们把防火墙规则清空;

[root@www ~]# iptables -F
[root@www ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

最后就是新建虚拟机进行测试了,此过程略过,需要注意的是把新建的虚拟机网卡选择在同一个网卡下;

在这里,我们一起成长!!!