一 、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";
} //此处不加分号结尾
******内存改为2G,CD/DVD为自动检测(目的让新虚拟机自动获取IP及NETMASK地址)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章