一 、PXE 简介
PXE:Pre-boot Excution Environment,预启动执行环境
PXE 是由 Intel 公司开发的网络引导技术,工作在 Client/Server 模式,允许客户机通过网
络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。
若要搭建 PXE 网络体系,必须要满足以下条件:
*客户机的网卡支持 PXE 协议(集成 BOOTROM 芯片),且主板支持网络引导。
*网络中有一台 DHCP 服务器,以便为客户机分配地址、指定引导文件位置
服务器通过 TFTP(Trivial File Transfer Protocol)简单文件传输协议提供引导镜像文件的
下载。

一、原理

PXE client在网卡的ROM中,被安装的机器从自己的PXE网卡启动,向网络中的DHCP服务器请求ip,并搜寻引导文件(bootstrap文件,在centos中,叫pxelinux.0),DHCP server返回给client端ip以及引导文件的位置(一般放在ftp server上),client端向TFTP server索取引导文件,引导程序读取配置文件pxelinux.cfg,获取系统初始化信息。PXE client在工作过程中需要三个二进制文件:pxelinux.0,linux内核,linux根文件系统initrd,这三个文件都放在tftp服务器目录中,最后,系统启动开始安装。

1:部署FTP服务

[root@localhost~]#systemctl stop firewalld             //关闭防火墙

[root@localhost~]#setenforce 0                             //关闭安全机制

[root@localhost~]#iptables -F                                //清除规则

[root@localhost ~]# yum -y install vsftpd

[root@localhost ~]# rpm -q vsftpd                                 
vsftpd-3.0.2-25.el7.x86_64

[root@localhost ~]# mkdir /var/ftp/centos7

[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7/

[root@localhost ~]# du /var/ftp/centos7/

2508 /var/ftp/centos7/EFI/BOOT/fonts
8464 /var/ftp/centos7/EFI/BOOT
8468 /var/ftp/centos7/EFI
57848 /var/ftp/centos7/images/pxeboot
66556 /var/ftp/centos7/images
58232 /var/ftp/centos7/isolinux
442744 /var/ftp/centos7/LiveOS
3892616 /var/ftp/centos7/Packages
14660 /var/ftp/centos7/repodata
4483316 /var/ftp/centos7/

2:启动FTP服务、并设置为开机自启动

[root@localhost ~]# systemctl start vsftpd               //启动vsftpd服务
[root@localhost ~]# systemctl enable vsftpd           //开机自动vsftpd服务
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost ~]# echo $?                                   //检测上一步命令是否成功为0成功非0出错
0

3:部署TFTP服务

[root@localhost ~]# yum -y install tftp-server              //安装tftp服务

[root@localhost ~]# rpm -q tftp-server

[root@localhost ~]# vim /etc/xinetd.d/tftp                   //修改配置文件开启TFTP服务

[root@localhost ~]# systemctl start tftp           //启动TFTP服务
[root@localhost ~]# systemctl enable tftp       //开机自启TFTP服务
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
[root@localhost ~]# echo $?

0

[root@localhost ~]# netstat -anput | grep 69        //检测端口号
udp6        0      0       :::69     :::*      1/systemd

4:准备相关文件以及PXE引导程序

[root@localhost ~]# cd /var/ftp/centos7/isolinux/                //准备linux内核,初始化镜像文件
[root@localhost isolinux]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost isolinux]# ll /var/lib/tftpboot/
总用量 57844
-rw-r--r--. 1 root root 52584760 8月 21 15:41 initrd.img
-rwxr-xr-x. 1 root root 6639904 8月 21 15:41 vmlinuz

5:准备lickstart配置文件
[root@localhost isolinux]# cd /root
[root@localhost ~]# cp /root/anaconda-ks.cfg  /var/ftp/ks.cfg
[root@localhost ~]# chmod 777  /var/ftp/ks.cfg

[root@localhost ~]# ll /var/ftp/ks.cfg
-rwxrwxrwx. 1 root root 1569 8月 21 15:41  /var/ftp/ks.cfg

[root@localhost ~]# vim  /var/ftp/ks.cfg

此处只添加如下命令什么都不删除

url --url=ftp://192.168.200.112/centos7             //指定安装源
#cdrom

6:准备PXE引导程序,启动菜单文件

[root@pxe ~]# yum -y install syslinux

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0  /var/lib//tftpboot/
[root@localhost ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 vmlinuz
[root@localhost ~]# cp /var/ftp/centos7/isolinux//isolinux.cfg  /var/lib/tftpboot/
[root@localhost ~]# chmod 664 /var/lib/tftpboot/isolinux.cfg
[root@localhost ~]# ll /var/lib/tftpboot/
总用量 57876
-rw-r--r--. 1 root root 52584760 8月 21 15:41 initrd.img
-rw-rw-r--. 1 root root 3032 8月 21 15:52 isolinux.cfg
-rw-r--r--. 1 root root 26759 8月 21 15:49 pxelinux.0
-rwxr-xr-x. 1 root root 6639904 8月 21 15:41 vmlinuz

7:创建PXE启动菜单
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot//pxelinux.cfg/default

[root@localhost ~]# ll -R /var/lib/tftpboot/
/var/lib/tftpboot/:
总用量 57872
-rw-r--r--. 1 root root 52584760 8月 21 15:41 initrd.img
-rw-r--r--. 1 root root 26759 8月 21 15:49 pxelinux.0
drwxr-xr-x. 2 root root 21 8月 21 15:54 pxelinux.cfg
-rwxr-xr-x. 1 root root 6639904 8月 21 15:41 vmlinuz

/var/lib/tftpboot/pxelinux.cfg:
总用量 4
-rw-rw-r--. 1 root root 3032 8月 21 15:52 default

8:修改PXE启动菜单,指定安装源位置PXE和ks.fg文件位置

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

此处只修改与添加不删任何东西

第一行修改:default linux

第二行添加:prompt 0

第三行修改:timeout 600

label linux
menu label ^Install CentOS 7
kernel vmlinuz
第六十五行修改:append initrd=initrd.img ks=ftp://192.168.200.112/ks.cfg

9:部署DHCP服务

9.1:安装DHCP服务

[root@localhost ~]# yum -y install dhcp

[root@localhost ~]# rpm -q dhcp
dhcp-4.2.5-68.el7.centos.1.x86_64

9.2:修改DHCP配置文件

[root@localhost ~]# cat /usr/share/doc/dhcp*/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

内容只剩如图所示其余全部删除

ption domain-name "pxe.yunban.cn";
option domain-name-servers 192.168.200.112;        //此处填写本机ip default-lease-time 21600;                          //默认租约6小时
max-lease-time 43200;                              //最长租约12小时
subnet 192.168.200.0 netmask 255.255.255.0 {
range 192.168.200.120 192.168.200.200;             //ip池120到200,新建虚拟机在ip池中随机选择
next-server 192.168.200.112;
filename "pxelinux.0";
}                                                  //此处不加分号结尾

[root@bogon ~]# systemctl restart dhcpd

开启客户端测试

******内存改为2G,CD/DVD为自动检测(目的让新虚拟机自动获取IP及NETMASK地址)

Linux批量装机(PXE)!的更多相关文章

  1. 记一次ARM服务器(鲲鹏920)的PXE批量装机遇到的坑

    由于近期项目需要,在对一批华为鲲鹏920的ARM服务器(型号为天宫TG225 B1)进行批量装机的过程中,遇到了各种各样千奇百怪的bug(换个高情商的说法就是遇到了各种各样和x86服务器不一样的地方) ...

  2. PXE-kickstart无人值守批量装机

    服务器的批量部署: 规模化:同时装配多台服务器 自动化:安装系统.配置各种服务 远程实现:不需要光盘.U盘等安装介质 PXE,Pre-boot eXcution Environment 预启动执行环境 ...

  3. 网络装机pxe服务器的配置过程

    网络装机pxe服务器的配置过程 背景: 针对于Linux运维工作中遇到的需要大批量安装Linux系统的情况,通过网络装机的方式实现无人值守安装Linux操作系统,现需要配置一台pxe服务器用于pxe批 ...

  4. 批量装机工具cobbler简介及其安装使用

    前言:如果仅有几台机器的话,使用U盘或者光盘装起来还不是很费事,一旦数量到了一定程度,使用手动方法就是一件费时费力的事,PXE+kistart就可以解决这个问题,降低难度,加快速度,而cobbler更 ...

  5. Linux批量重命名文件

    五种方法实现Linux批量重命名文件 Linux批量重命名文件是指对某些特定的文件统一进行重新命名,以改变原来一批文件的名称,这里介绍五种方法来实现. Linux批量重命名文件会涉及到改变一个字母.改 ...

  6. linux批量压缩当前目录中文件后,删除原文件

    linux批量压缩当前目录中文件后,删除原文件 for i in `ls|awk -F " " '{print $NF}'`; do tar -zcvf $i.tar.gz $i ...

  7. Ansible-Zabbix-基础agent批量装机

    ansible 批量装机-Zabbix篇 ############################# 小错误区:特此警示,问题要全面化,不要单纯想着你这边的问题,有可能也是对面的问题,反则亦此,学会深 ...

  8. linux 批量文件查找并替换

    linux 批量文件查找并替换 sed -i "s/oldstring/newstring/g" `grep oldstring -rl path` 如: sed -i " ...

  9. Linux批量查询替换字符串

    Linux 批量查询替换文本文件中的字符串: 1.批量查找某个目下文件的包含的内容,例如: #   grep -rn "要找查找的文本" ./ 2.批量查找并替换文件内容. #   ...

随机推荐

  1. 微信小程序 (全局配置和页面配置)

    全局配置 app.json 文件用来对微信小程序进行全局配置. 一.配置页面路径 二.window 配置全局默认的窗口 navigationBarTextStyle:导航栏的标题颜色 navigati ...

  2. 【转载】C++面试题(51-100)

    转自:http://www.jobui.com/mianshiti/it/cpp/5018/ 51.  引用与指针有什么区别? 答 .1) 引用必须被初始化,指针不必. 2) 引用初始化以后不能被改变 ...

  3. 378. 有序矩阵中第K小的元素

    Q: A: //O(NK) class Solution { public: int kthSmallest(vector<vector<int>>& matrix, ...

  4. 公有IP和私有IP的区别

    什么是IP? 在网络中,每台计算机都有一个唯一的地址,方便别人找到它,这个地址称为IP地址 IP地址是一个网络编码,用来确定网络中的一个节点,是由32位的二进制组成 IP地址的组成? IP地址由网络部 ...

  5. Windows引用opencv静态库

    参考博客:https://www.cnblogs.com/sysuzyq/p/6183568.html

  6. 【python】anaconda中打开IDLE(python 自带编辑器)

    最近要参加蓝桥杯了,发现 python 的编辑器是使用 python 自带的 IDLE,电脑上只用 Anaconda,就来找一下 打开 .\Anaconda3\Scripts\idel.exe 打开 ...

  7. RAID 5+备份硬盘实验:mdadm

    *独立冗余磁盘阵列---RAID5* RAID5+备份盘: 把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中.  RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中, 而是存储 ...

  8. jmeter实现SMTP邮件协议压测

    实现目的 通过jmeter的SMTP取样器,调用SMTP协议,批量进行邮件的发送,已达到压测的目的. 脚本实现 User Defined Variables定义用户变量 编辑SMTP Sampler取 ...

  9. 金中宝POS

    金中宝POS机刷卡到账时间:9:00-22:00 现代金控自选商户POS机注意事项 选择: 1 消费 T+1到账(下一个工作日到账) 选择: 2 订单支付 是实时到账! 一.金中宝POS机秒到时间:2 ...

  10. Bug搬运工-CSCvn51483:AP datasheet should contain info if the AP contains or not temperature sensor

    目前在老一些的思科AP上,应该都没有温度传感器的功能(例如AP1600,wave 1 AP1700...),但是在思科官方没有明确的文档去说明这个问题. 在Outdoor AP(室外AP,例如AP15 ...