【PXE】VMware上CentOS7 .x的PXE安装

2019/7/23 21:42:30 人评论 次浏览 分类:学习教程

一、说明

什么是PXE?

PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服 务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

严格来说,PXE 并不是一种安装方式,而是一种引导方式。

进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。

运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器,DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。

部署PXE需要哪些服务?

DHCP服务,分配IP地址,定位引导程序

DNS服务,为客户机分配主机名

TFTP服务,提供引导程序下载

HTTP服务(或ftp/nfs),提供yum安装源

 

客户机应具备的哪些条件?

网卡ROM必须支持PXE协议

主板支持网络启动

 

PXE工作流程图

 

 

 

PXE+Kickstart安装过程

 

 

 

二、实验环境

操作系统:CnetOS7.3 (GNOME桌面版)

pxeServer: 192.168.2.2

 

三、设置pxeServer网络

我们配置pxe的安装网段为 192.168.2.0/24,设置在自定义网络VMnet1

 

设置VMware网络,禁用VMnet1的本地DHCP

 

配置pxeServer在VMnet1网络中的静态IP为192.168.2.2

# vim /etc/sysconfig/network-scripts/ifcfg-ens33

#############################

TYPE="Ethernet"

BOOTPROTO="static"

NAME="ens33"

ONBOOT="yes"

IPADDR="192.168.2.2"

NETMASK="255.255.255.0"

GATEWAY="192.168.2.1"

###############################

 

# systemctl restart network

# ip addr list

 

 

 

四、在pxeServer上搭建本地yum源

用CentOS7.3 镜像搭建本地yum源,如果ISO映像文件路径中没有,可自行上传搭建。

 

 

#  mount  /dev/cdrom  /mnt/

 

# mkdir  /etc/yum.repos.d/backup

# mv  /etc/yum.repos.d/*.repo  /etc/yum.repos.d/backup

 

# vim /etc/yum.repos.d/pxe.repo

#######################

[development]                 

 // 注意:此处[]内容必须为development

name=pxe

baseurl=file:///mnt

enabled=1

gpgcheck=0

#########################

# yum clean all

# yum repolist

设置开机自动挂载

#  vim  /etc/fstab

#####################################

/dev/cdrom    /mnt  iso9660    defaults    0 0

#####################################

# mount -a

 

五、在pxeServer上安装软件包

 

#  yum  -y install    dhcp  httpd  xinetd  tftp-server 

 

配置httpd,为客户端装机提供http网络yum源

#  mkdir  /var/www/html/CentOS7/ 

# cp  -r  /mnt/*  /var/www/html/CentOS7/

创建kickstarts文件目录

# mkdir  /var/www/html/kickstarts

 

配置xinetd,对服务tftp访问进行控制

# vim /etc/xinetd.d/tftp

将配置文件中 yes改成no,开启服务

 

配置DHCP,为客户端装机提供IP

# vim /etc/dhcp/dhcpd.conf

##################################

subnet 192.168.2.0 netmask 255.255.255.0 {

    range 192.168.2.110 192.168.2.150;

filename "pxelinux.0";

next-server 192.168.2.2;

}

###################################

 

配置pxe装机文件

#  yum  -y  install  syslinux 

# rpm -ql  syslinux  |grep pxe

# cp /usr/share/syslinux/pxelinux.0    /var/lib/tftpboot/

# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}  /var/lib/tftpboot

# cp /var/www/html/CentOS7/isolinux/{initrd.img,vmlinuz}    /var/lib/tftpboot/

#  ll    /var/lib/tftpboot/

在tftp的根目录下新建pxe文件夹和文件

#  mkdir  /var/lib/tftpboot/pxelinux.cfg

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

########################################################################

default menu.c32

    prompt 5

    timeout 30

    MENU TITLE CentOS7.x PXE

    LABEL linux_auto

    MENU LABEL Install CentOS7.x x86_64 Auto

    KERNEL vmlinuz

  APPEND initrd=initrd.img inst.repo=http://192.168.2.2/CentOS7/ ks=http://192.168.2.2/kickstarts/centos7.cfg

    LABEL linux

    MENU LABEL Install CentOS7.x x86_64

    KERNEL vmlinuz

    APPEND initrd=initrd.img inst.repo=http://192.168.2.2/CentOS7/

###########################################################################

 

五、生成 kickstarts应答文件

#  yum  -y  install system-config-kickstart

#  system-config-kickstart

 

 

 

 

 

 

# cp  /root/centos7.cfg  /var/www/html/kickstarts/

 

六、关闭pxeServer防火墙,启动服务

 

# setenforce 0

# sed  -i  's/^SELINUX=.*/SELINUX=permissive/g'  /etc/selinux/config

 

# systemctl  stop firewalld

# systemctl disable firewalld

 

# systemctl  start xinetd httpd dhcpd  tftp

# systemctl  enable  xinetd httpd dhcpd  tftp

# systemctl status  xinetd httpd dhcpd  tftp

 

 

 

七、创建虚拟机,启动PXE 安装

 

 

# systemctl get-default

# systemctl set-default graphical.target

#  reboot

 

 

八、参考

 

PXE 装机详解

https://blog.51cto.com/1992tao/1870431

通过PXE网络安装CentOS7操作系统

https://o-my-chenjian.com/2018/07/11/Install-CentOS7-By-Using-PXE

CentOS 7 安装大全 之 PXE网络篇

https://blog.csdn.net/sqa_star/article/details/84029965

PXE+kickstart无人值守安装CentOS 7

https://www.cnblogs.com/f-ck-need-u/p/7342919.html

PXE 和 Kickstart 部署记录

https://blog.tankywoo.com/2014/01/13/pxe-and-kickstart-deploy-operation.html

kickstart文件

https://www.jianshu.com/p/46993025012d

图形化生成kickstart文件

https://blog.51cto.com/13150617/1973002

kickstart-由于下载软件包信息失败,软件包选择被禁止

https://blog.51cto.com/zaa47/1927790

https://www.linuxidc.com/Linux/2018-07/153260.htm

基于DHCP、PXE和kickstart自动安装设置CentOS 7.3

http://hmli.ustc.edu.cn/doc/linux/centos-autoinstall.htm

KICKSTART无人值守安装

https://blog.oldboyedu.com/autoinstall-kickstart

PXE Kickstart 无人值守安装系统

http://www.opsroad.com/759.html

CentOS7安装后重启出现Initial setup of CentOS Linux 7 (core)

https://blog.csdn.net/jyusun/article/details/70231416

如何执行 KICKSTART 安装?

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/installation_guide/sect-kickstart-howto#sect-kickstart-installation-starting

相关资讯

    暂无相关的资讯...

共有访客发表了评论 网友评论

验证码: 看不清楚?
    -->