目录
一、PXE概述
回顾一下Linux系统的启动过程
加电自检----MBR引导----GRUB菜单----加载内核----initi进程初始化
PXE是由intel公司开发的网络引导技术,工作再C/S模式下,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个系统。
PEX严格来说并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE Client。 PXE协议使计算机可以通过网络启动。
协议分为client和server端,PEX client 在网卡的ROM中,当计算机引导,BIOS把PXE client调入内存执行,由PXE client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器用来给PXE client分配一个IP,由于是给PXE client分配地址,所以在配置DHCP服务器时需要增加想要的PXE设置。
二、PXE服务的构建过程
1、PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。
2、DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftoboot下
3、PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
4、TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
5、PXE客户机通过网络来启动到系统安装主界面
6、PXE客户机向文件共享服务器(ftp、http、nfs)发起获取centos系统或windows系统安装文件的请求。
7、vsftp文件共享服务响应PXE请求,将共享额系统安装文件传输给PXE客户机。
8、PXE客户机进入到安装提示向导界面,用户需要手动完成系统安装的操作
三、配置PXE
1 关闭防火墙和核心防火墙
2 下载安装dhcp服务
3 复制模板 cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf #-p连带文件属性一起复制
4 vim /etc/dhcp/dhcpd.conf #进入配置文件
5 添加一张网卡
6 把ens33网卡复制到本地 并命名为ens37
7 vim ens37 编辑网卡
8 重启网卡 并查看
9启动dhcp服务 并加入开机自启动
安装并配置tftp服务
配置前先简单说一下什么是tftp,tftp是一个小并且易于实现的文件传输协议,tftp是基于UDP数据报,需要有自己的差错改正措施。tftp只支持文件传输,不支持交互,没有庞大的命令集。安全性低,不支持身份验证
10 先下载需要的服务软件
11 配置tftp
主要改disable这行,开启tftp服务
12 mount /dev/cdrom /mnt #挂载镜像文件
进入内核文件 将内核初始化镜像文件复制到 /var/lib/tftpboot
cd /mnt/images/pxeboot
cp initrd.img vmlinuz /var/lib/tftpboot #复制内核初始化文件
vmlinuz:是可引导的、压缩的内核
initrd.img:系统初始化文件
13 开启服务
以上就是为了将镜像中的内核文件+系统的初始化文件,丢到tftp的默认共享目录中,以便客户端来下载使用。
准备PXE引导镜像文件pxelinux.0
pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统
14 yum provides /pxelinux.0
#查找这个文件是哪个安装包安装的,当不是一个路径和一个软件包时用
15 yum -y install syslinux
16 rpm -ql syslinux | grep pxelinux.0 #查找pxe引导程序的位置
17 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot #拷贝tftp的根目录下,系统引导文件
配置default菜单文件
18 mkdir /var/lib/tftpboot/pxelinux.cfg/
touch default
19 vim /var/lib/tftpboot/pxelinux.cfg/default #配置菜单文件
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto //指定默认入口名称 ,对应下面的label auto
prompt 1 //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式
label auto //默认的图形安装
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.111.100/centos7 //method必须指定网络路径
label linux text //文本安装模式,出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.111.100/centos7
label linux rescue //救援模式,出现boot:时输入linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.111.100/centos7
安装ftp服务,准备centos7安装源
yum -y install vsftpd #安装ftp服务
mount /dev/cdroom /mnt #如果前面挂载了可以省略
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7 #将镜像复制到其中
启动
四、配置kickstart无人值守安装
yum -y install system-config-kickstart #安装system-config-kickstart工具
打开无人值守配置程序开始配置
vim anaconda-ks.cfg
将里面的下图内容,复制到var/ftp/ks.cfg中
vim /var/lib/tftpboot/pxelinux.cfg/default
#进入菜单文件进行优化,将ks引导参数至引导菜单文件
重启新创建的虚拟机