文章目录

  • 一、PXE 原理和概念
  • 二、搭建 PXE 远程安装服务器
  • 三、KickStart 概述
  • 四、实现Kickstart无人值守安装

一、PXE 原理和概念

概念:PXE是由 Intel 公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
       PXE 严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。

原理:

服务端

  • 运行DHCP服务,用来分配地址、定位引导程序
  • 运行TFTP服务,提供引导程序下载

客户端

  • 网卡支持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。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

pxe服务器的构建过程
1.PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。
2.DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录 /var/lib/tftpboot/ 下
3.PXE客户机向TFTP服务器发起获取 pxelinux.0 引导程序文件的请求。
4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5.PXE客户机通过网络来启动到系统安装主界面
6.PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。
7.文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。
8.PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作

二、搭建 PXE 远程安装服务器

1.配置双网卡
一个作用是dhcp,一个是使用网络源安装环境包
绑定同一块网卡,裸客户机vmnet1网卡取消勾选dhcp配置

[root@c7-1 ~]# cd /etc/sysconfig/network-scripts/
[root@c7-1 ~]# cp -p ifcfg-ens33 ifcfg-ens37           //复制ens33的模板
[root@c7-1 ~]# vim ifcfg-ens37                         //编辑ens37TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.139.10
NETMASK=255.255.255.0
GATEWAY=192.168.139.1
#DNS1=114.114.114.114[root@c7-1 ~]# systemctl restart network             //重启网卡

2.安装并启用DHCP服务

[root@c7-1 ~]# yum install dhcp -y                      //安装dhcp
[root@c7-1 ~]# cp -rfp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf    //拷贝模板[root@c7-1 ~]# vim /etc/dhcp/dhcpd.conf                 //编辑配置文件ddns-update-style none;                                 //禁止动态更新
subnet 192.168.139.0 netmask 255.255.255.0 {            //配置网段
range 192.168.139.40 192.168.139.50;                    //配置地址池
option routers 192.168.139.10;                          //配置网关
next-server 192.168.139.10;                             //指定tftp服务器的地址(*)
filename "pxelinux.0";                                    //指定pxe引导程序的文件名(*)[root@c7-1 ~]# systemctl start dhcpd                   //开启dhcpd服务
[root@c7-1 ~]# systemctl enable dhcpd                  //设置为开启自启

3.安装并启用 TFTP 服务
       TFTP:是一个小而易于实现的文件传送协议。TFTP是基于UDP数据报,需要有自己的差错改正措施。TFTP只支持文件传输,不支持交互,没有庞大的命令集。也没有目录列表功能,以及不能对用户进行身份鉴别。但它的代码所占内存较小,不需要硬盘就可以固化TFTP代码,很适合较小的计算机和特殊用途的设备。

TFTP和FTP一个主要的区别就是它没有交互式,且不进行身份验证。TFTP一般用于传输小文件

[root@c7-1 ~]# yum install tftp-server -y               //安装tftp
[root@c7-1 ~]# vim /etc/xinetd.d/tftp                  //tftp被xinet所托管,xinetd默认没有安装,配置文件xinetd即extended internet daemon,xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全service tftp
{socket_type             = dgramprotocol                = udpwait                    = yes                   //wait no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则需要等待user                    = rootserver                  = /usr/sbin/in.tftpdserver_args             = -s /var/lib/tftpboot    //指定TFTP根目录(引导文件的存储路径) -c允许上传disable                 = no                    //disable no表示开启TFTP服务 per_source              = 11                    //通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个cps                     = 100 2                 //表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求flags                   = IPv4[root@c7-1 ~]# mount /dev/sr0 /mnt/                  //挂载
[root@c7-1 ~]# cd /mnt/images/pxeboot/
[root@c7-1 pxeboot]# lsinitrd.img  TRANS.TBL  vmlinuz#用于 PXE 网络安装的 Linux 内核、驱动文件可以从 CentOS 7 系统光盘获得,
#分别为 vmlinuz 和 initrd.img,位于光盘目录 images/pxeboot 下。
#找到这两个文件并将其复制到 tftp 服务的根目录下[root@c7-1 pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
#复制到 tftp 服务的根目录下[root@c7-1 pxeboot]# systemctl start tftp                 //开启服务
[root@c7-1 pxeboot]# systemctl status tftp                 //查看服务状态
[root@c7-1 pxeboot]# systemctl enable tftp                 //设置开机自启

4.准备 PXE 引导程序pxelinux.0
       pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统

[root@c7-1 ~]# yum provides */pxelinux.0                //查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件包时用*/
[root@c7-1 ~]# yum install syslinux -y                     //安装syslinux
[root@c7-1 ~]# rpm -ql syslinux | grep pxelinux        //查找pxe引导程序的位置
[root@c7-1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#拷贝到tftp的根目录下,系统引导文件
#只有安装了 system-config-kickstart 软件包,才会有/usr/share/syslinux/目录及目录中的文件

5.安装ftp服务,准备 CentOS 7 安装源

[root@c7-1 ~]# yum install vsftpd -y                    //安装ftp
[root@c7-1 ~]# mkdir /var/ftp/centos7
[root@c7-1 ~]# cp -rf /mnt/ * /var/ftp/centos7/
[root@c7-1 ~]# systemctl start vsftpd                  //开启服务
[root@c7-1 ~]# systemctl enable vsftpd                     //开机自启

6.配置启动菜单文件
       启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default ,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。
       至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由 pxelinux.0 这个文件决定好的

[root@c7-1 ~]# cd /var/lib/tftpboot/
[root@c7-1 tftpboot]# mkdir pxelinux.cfg
#默认pxelinux.cfg是没有的需要手动创建,注意它是一个目录而非文件虽然是以.cfg结尾[root@c7-1 tftpboot]# vim pxelinux.cfg/default          //编辑defaultdefault auto                                             //指定默认入口名称 ,对应下面的label auto
prompt 1                                                //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式label auto                                                //默认的图形安装kernel vmlinuzappend initrd=initrd.img method=ftp://192.168.139.10/centos7 ks=ftp://192.168.139.10/ks.cfg
#method必须指定网络路径        label linux text                                         //文本安装模式,出现boot:时输入linux textkernel vmlinuzappend text initrd=initrd.img method=ftp://192.168.139.10/centos7 ks=ftp://192.168.139.10/ks.cfglabel linux rescue                                      //救援模式,出现boot:时输入linux rescuekernel vmlinuzappend rescue initrd=initrd.img method=ftp://192.168.139.10/centos7 ks=ftp://192.168.139.10/ks.cfg
[root@c7-1 ~]# systemctl restart vsftpd
[root@c7-1 ~]# systemctl restart tftp
[root@c7-1 ~]# systemctl restart dhcpd

三、KickStart 概述

KickStart 是一种无人职守安装方式。
       KickStart 的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件;在其后的安装过程中(不只局限于生成 KickStart 安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart 生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
       如果 KickStart 文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中设置的启选项来重启系统,并结束安装。

四、实现Kickstart无人值守安装

1.安装 Kickstart 工具

[root@c7-1 ~]# yum install system-config-kickstart -y
#在 CentOS 7 系统中安装 system-config-kickstart 工具之后,
#即可通过图形化向导工具来配置安装应答文件。
#如果用户对自动应答文件的配置比较熟悉,
#也可以直接编辑 CentOS 7 安装后自动创建的应答文件(/root/anaconda-ks.cfg),
#根据需要适当修订后使用。

2.打开 “Kickstart 配置程序” 窗口

3.基本配置
4.安装方法

5.引导装在程序选项

6.分区信息

  • 分区总览

除 / ,/boot ,swap 这三个分区外,其余分区按需配置。

7.网络配置
8.防火墙配置

9.保存配置


10.配置需要安装的软件包

[root@localhost ~]#cd /var/ftp/
[root@localhost ftp]#ls
centos7  ks.cfg  pub
[root@localhost ftp]#vim ks.cfg                          //在行末复制
#可以在[root@localhost ~]#vim anaconda-ks.cfg 文件下复制
%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools%end                                                 //wq保存退出[root@localhost ftp]#cd /var/lib/tftpboot/
[root@localhost tftpboot]#ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]#cd pxelinux.cfg/
[root@localhost pxelinux.cfg]#vim default
label autokernel vmlinuzappend initrd=initrd.img method=ftp://192.168.139.10/centos7 ks=ftp://192.168.139.10/ks.cfg  //在后面添加ks

11验证无人值守

重启服务端服务:

systemctl restart vsftpd && systemctl restart dhcpd && systemctl restart tftp

重启pxe系统后若自动安装则为成功。

PXE高效网络装机与Kickstart无人值守相关推荐

  1. Linux PXE批量网络装机与Kickstart 无人值守安装

    Linux PXE批量网络装机与Kickstart 无人值守安装 一.PXE批量网络装机 二.PXE的三个优点 三.搭建PXE的先前条件 四.配置PXE装机服务器 1.安装并启用 TFTP 服务 2. ...

  2. PXE高效批量安装和Kickstart无人值守安装——真正完成批量自动安装

    PXE高效批量安装和Kickstart无人值守安装--真正完成批量自动安装 一.PXE概述 二.PXE的优点 三.搭建PXE的前提 四.部署PXE远程安装服务 1.安装TFTP服务 2.修改TFTP服 ...

  3. Linux——轻松学会PXE高效网络装机

    PXW高效装机和Kickstart无人值守装机 一.PXE 1.1 PXE的优势 1.2 搭建网络体系前提条件 1.3 PXE工作过程 1.4 安装包 二.部署PXE远程安装服务 2.1 前期准备 2 ...

  4. PXE高效批量网络装机实现Kickstart无人值守安装

    目录 1,什么是PXE 2, PXE批量部署的优点 3,部署要求 4, 搭建PXE远程安装服务器 5,等待用户控制的方式实现PXE启动菜单安装 6,PXE客户机自动安装---俗称无人值守(以上系统环境 ...

  5. rhel6 PXE网络装机和Kickstart无人值守安

    ################################PXE################################## pxe-server ifconfig(192.168.2. ...

  6. 图文操作--PXE批量网络装机项目

    文章目录 PXE批量网络装机 1.系统装机的三种引导方式 2.系统安装过程: 3.什么是PXE? 4.实现过程: PXE批量装机项目实验: 1.添加一块网卡,设置双网卡,网卡ens33 为NAT模式, ...

  7. 自动服务器批量装机,PXE高效批量网络装机

    在大规模的Linux应用环境中,利用传统的光驱.U盘安装操作系统方式过于缓慢,如web群集,分布式计算等,需要为数十乃至上百台服务器裸机快速安装系统,这里就需要用到PXE网络装机以及实现无人值守自动安 ...

  8. shell脚本一键装机(pxe配合kickstart无人值守)

    shell脚本一键装机(pxe配合kickstart无人值守) shell脚本实现无人值守安装 图文详细步骤可以参前期博文: PXE批量网络装机(超详细实验教程)教会你自动化批量安装linux 系统 ...

  9. Linux网络服务:PXE高效批量网络装机

    目录 一.理论 1.PXE批量网络装机概述 2.搭建 PXE 远程安装服务器 3.实现Kickstart无人值守安装 二.实验 1.搭建PXE远程安装服务器 2.安装Kickstart无人值守安装 3 ...

最新文章

  1. .net framework 4中SpinLock和lock的区别
  2. 有三AILab成立 | 寻找合适的你
  3. Linux下安装Oracle遇到的错误
  4. BUPT 2012复试机考 4T
  5. vs2010中moc文件生成方法
  6. redis——持久化
  7. 开心的金明(洛谷-P1060)
  8. android 触摸事件 控制,Android笔记:触摸事件的分析与总结----TouchEvent处理机制
  9. 2.nginx 配置
  10. html扩展名用于保存清单文件,html5 – HTML 5缓存清单是否也适用于ajax请求?
  11. 第一届中国iPhone技术开发者交流大会-----chinapub技术沙龙第一期
  12. 深山红叶PE系统工具箱V32
  13. Java 高并发编程详解:多线程与架构设计
  14. 计算机网卡不连接网络连接怎么办,台式机无线网卡连接不上网络怎么办
  15. 重学 statistics, Cha10 Inference About Means and Proportions with Two Populations
  16. 基于vue-simple-uploader 实现大文件分片上传(一)
  17. 方舟破解版自建服务器,方舟生存进化自建服务器教程
  18. C++获取、设置鼠标坐标并移动鼠标
  19. 动手学Docker-第二弹-基本操作
  20. Android调用聚 合 API

热门文章

  1. 主键约束、主键自增约束、唯一约束、非空约束、外键约束
  2. mysql视图view 自增id_MySQL学习笔记之MySQL视图(view)
  3. 微信小程序抓包教程:Burpsuite版 附所需工具
  4. 定时器实验循环彩灯C语言,单片机实验三-定时器实验
  5. 13.清洗网址中的垃圾字符
  6. 关于H5、CSS3新增的一些元素及属性
  7. 第三章 产品数据 第3节 物料清单BOM
  8. isPrime 判断素数的函数
  9. BatchNorm和LayerNorm的比较
  10. 九十年代 计算机课,九十年代的计算机体系结构