PXE自動化安裝CentOS7和CentOS6

PXE介紹

Preboot Excution Environment 預啓動執行環境,是由Intel公司研發的,目前的網卡都支持此功能,基於Client/Server的網絡模式,支持遠程主機經過網絡從遠端服務器下載映像,並由此支持經過網絡啓動操做系統,PXE能夠引導和安裝Windows,linux等多種操做系統。工做原理以下:html

  • 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版本:CentOS7linux

關閉防火牆和SELINUX,DHCP服務器靜態IPvim

getenforce:Disabledcentos

systemctl stop iptables.service服務器

systemctl status firewalld網絡

systemctl disable firewalldapp

安裝軟件包

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

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

systemctl enable dhcpd httpd tftp.socketcentos7

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

相關文章
相關標籤/搜索