PXE自动化安装CentOS7和CentOS6

PXE介绍

Preboot Excution Environment 预启动执行环境,是由Intel公司研发的,目前的网卡都支持此功能,基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,PXE可以引导和安装Windows,linux等多种操作系统。工作原理如下:

  • Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
  • Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
  • Client执行接收到的pxelinux.0文件
  • Client向TFTP Server发送针对本机的配置信息文件(在TFTP 服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
  • Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
  • Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统
  • Client启动Linux内核
  • Client下载安装源文件,读取自动化安装脚本

PXE自动化安装CentOS7和6

安装前准备:

服务器Linux版本:CentOS7

关闭防火墙和SELINUX,DHCP服务器静态IP

getenforce:Disabled

systemctl stop iptables.service

systemctl status firewalld

systemctl disable firewalld

安装软件包

配置yum repository,同时支持OS和EPEL源

yum install httpd tftp-server dhcp syslinux system-config-kickstart

systemctl enable dhcpd httpd tftp.socket

systemctl start httpd 

systemctl start tftp.socket

准备YUM源

mkdir /var/www/html/centos/{6,7}/ -pv

vim /etc/fstab()

/dev/sr0 /var/www/html/centos/6 iso9660 defaults 0 0
/dev/sr1 /var/www/html/centos/7 iso9660 defaults 0 0

mount -a

df 

/dev/sr0 6049912 6049912 0 100% /var/www/html/centos/6
/dev/sr1 9176232 9176232 0 100% /var/www/html/centos/7

准备ks文件

mkdir /var/www/html/ksdir/{6,7} -pv

分别准备CentOS7和centOS6的ks.cfg,并且copy到相应目录下

chmod +r /var/www/html/ksdir/7/ks7_desktop.cfg

chmod +r /var/www/html/ksdir/6/ks6_mini.cfg

配置dhcp服务

subnet 192.168.30.0 netmask 255.255.255.0 {
range 192.168.30.0 192.168.30.10;
option routers 192.168.30.254;
option domain-name-servers 223.6.6.6;
next-server 192.168.30.44;
filename "pxelinux.0";
}

systemctl start dhcp

准备PXE相关文件

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/

mkdir /var/lib/tftpboot/centos{6,7}

cp /var/www/html/centos/7/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos7/
cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/centos6/

cp /var/www/html/centos/7/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default

vim /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
timeout 600

menu title Evan'sCentOS 7

label linux
menu label ^Install Desktop CentOS 7
kernel centos7/vmlinuz
append initrd=centos7/initrd.img ks=http://192.168.30.44/ksdir/7/ks7_desktop.cfg

label check
menu label install ^Mini CentOS 6
menu default
kernel centos6/vmlinuz
append initrd=centos6/initrd.img ks=http://192.168.30.44/ksdir/6/ks6_mini.cfg

label local
menu label Boot from ^local drive
localboot 0xffff

menu end

 

 

 

猜你喜欢

转载自www.cnblogs.com/liangjindong/p/9090590.html