PXE是由intel公司开发的网络引导技术,工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装或整个操作系统。
PXE严格来说并不是一种安装方式,而是一种引导的方式,进行PXE安装的必要条件是要安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE Clinet。PXE(pre-boot Execution Environment)协议使计算机可以通过网络启动。
解释: 在配置PXE的时候,为了联网不将以前的网卡删除,可以添加一个新的网卡,在该网卡的ip地址网段中,需要由存在client 客户端(需要安装系统的主机)。
PXE协议分为Client端和server端
运行PXE协议需要设置DHCP服务和TFTP服务
DHCP服务用来给 PXE clinet 分配一个ip地址,由于是给PXE client分配IP地址,所以在配置DHCP服务时需要增加相应的PXE设置。
在PXE client的ROM中,已存在了TFTP client ,PXE client通过TFTP协议到TFTP Server上下载所需的文件。
规模化: 同时装配多台服务器
自动化: 安装系统、配置各种服务
远程实现: 不需要光盘、U盘等安装介质
客户机的网卡需要支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
目前绝大多数服务器和大多数的PC 都能够提供此支持,只需要在BIOS设置中允许从Net work 或LAN(局域网) 启动即可。
网络中有一台DHCP服务器以便为客户机自动分配、指定引导文件位置。
服务器通过TFTP(简单文件传输协议),提供引导镜像文件的下载。
ickstart 是一种无人值守安装方式。
kickstart 的工作原理
通过记录典型的安装过程中所需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件,在其后的安装过程中(不只局限于生成kickstart安装文件的及其)当出现要求添加参数的情况时,安装程序会首先去查找kickstart生成的文件,当找到合适的参数,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果kickstart 文件涵盖了安装过程中的出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处去ks.cfg文件,然后去忙自己的事情,等待安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
①PXE客户机向DHCP请求,向DHCP服务器申请IP 地址
②DHCP服务器响应PXE客户机的请求,自动从IP 地址池中分配一个IP地址给PXE客户机,并告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0 ,默认在TFTP共享目录/var/lib、tftpboot/下。
③PXE客户机向TFTP服务器发起获取pxelinux.0 引导程序文件的请求。
④TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0 文件传输给PXE客户机。
⑤PXE客户机通过网络来启动到系统安装主界面
⑥PXE客户机向文件共享服务器(“ftp”、“http”、“nfs”等)发起获取centos或windows系统安装文件的请求。
⑦文件共享服务(vsftp服务)响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机
⑧PXE客户机进入到安装提示界面,用户需要手动来完成系统安装的操作。
小结解释:
①DHCP分配给新建机器IP地址,然后告知客户机的网卡中的PXE客户机的TFTP的位置
②PXE客户端向TFTP请求下载操作系统镜像的引导文件
③PXE通过网络向vsftp请求下载操作系统安装文件
④直接通过TFTP获得的引导文件+从vsftp获得的操作系统安装文件来进行引导、加载,然后到达安装向导界面
⑤通过kickstart设置无人值守安装。
所需要的安装包
vsftpd //用来放置安装镜像,通过ftp访问镜像安装
dhcp.x86_64 12:4.2.5-7pd-3.0.2-27.el7.x86_64.r9.el7.centos //用来给客户机分配ip
syslinux-4.05-15.el7.x86_64.rpm //用来提供pxe的引导程序
tftp-server.x86_64 0:5.2-22.el7.rpm //用来提供引导镜像文件的下载
xinetd.x86_64 2:2.3.15-14.el7 //用来托管tftp
system-config-kickstart.noarch 0:2.9.7-1.el7.rpm //用来无人值守安装
一台作为PXE服务器,一台作为裸金属客户机(没有操作系统的机器),绑定的同一块网络适配器网关,裸金属客户机vmnet1网卡,取消勾选dhcp配置,关闭selinux和防火墙。
服务端介绍
主机服务器地址:20.0.0.55 主机名:ydq1
配置双网卡
一个作用为可联网,进行下载服务(网络配置NAT:20.0.0.55)
一个作用为dhcp(192.168.158.100)
dhcp部署
- tftp-server 服务器通过 TFTP(简单文件传输协议)提供引导镜像文件的下载(默认共享目录/var/lib/tftpboot)。
- syslinux //用来提供pxe的引导程序
- xinetd //用来托管tftp
- vsftpd //用来放置安装镜像,通过ftp获取镜像安装文件
- kickstart //用来无人值守安装 (定义模板-应答文件 白屏点点点定义安装向导中选择的模板)
客户机介绍
将网络设置成vmware 1 即可
在服务器上添加网卡,设置成仅主机模式
在需要安装的客户机上,设置成仅主机模式
查看网卡是否添加完成
重启网卡,查看配置
关闭防火墙核心防护
安装dhcp服务
将模板配置文件拷贝到dhcp默认执行的配置文件中
编辑DHCP服务器的配置文件(/etc/dhcp/dhcpd.conf)
开启dhcp服务
TFTP(简单文件传输协议)是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合小文件传输的应用场合。
安装出现问题位置错误
关闭en35网卡并重新安装
开启ens35服务
在xinetd服务中开启tftp服务
将镜像文件中的 内核文件 和 系统的初始化文件 复制到tftp默认共享的目录中,以便后续客户端下载
用于PXE网络安装的linux内核,驱动文件可以从centos系统光盘镜像中获得,分别为vmlinuz 和 initrd ,位于光盘目录/mnt/images/pxeboot 目录下,找到这两个文件复制到tftp 服务的根目录下
将镜像挂在到本地
将镜像中的文件拷贝的TFTP默认的共享目录中
vmlinuz :是可引导的,压缩的内核。vm 代表 “virtual Memory” 。
linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。
Linux能够使用磁盘空间作为细腻内存,因此得名“VM”。vmlinuz是可执行的linux内核,
它位于/boot/vmlinuz,它一般是一个软链接。
initrd :是“inital ramdisk” 的简写(系统初始化文件),
initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。
initrd.img主要是用于加载ext4等文件系统及sisi设备的驱动,
比如,使用的scsi银盘,而内核vmlinuz并没有这个scsi硬件的驱动,那么装入scsi模块之前,
内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modulesz下,
为了解决这个问题,可以引导一个能够读史记内核的initrd内核并用initrd修正scsi引导问题。
开启 xinetd 和 tftp 服务
pxelinux.0 是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统
查找这个文件是由哪个软件包安装的,当不是一个路径和一个软件时用 " / " 表示文件
安装pxelinux.0的软件包
查看pxelinux.0文件的位置
复制pxelinux.0引导程序文件到TFTP共享目录中
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为:default,应放置在tftp根目录的pxelinux.cfg子目录下,典型的启动菜单配置可参考以下自动或手动建立。
至于为什么要是/var/lin/tftpboot/pxelinux.cfg/default 文件,因为时由pxelinux.0这个文件决定好的。
创建启动菜单文件
编辑引导文件中的内容
文件内容介绍
default auto //指定默认入口名称 ,对应下面的label auto
prompt 1 //设置是否等待用户选择,1 表示等待用户控制,0表示不等待用户控制,安装时会出现boot:如果按回车表示选择auto模式
label auto //默认的图形安装
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.158.100/centos7 //method必须指定网络路径
label linux text //文本安装模式,出现boot:时输入linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.158.100/centos7
label linux rescue //救援模式,出现boot:时输入linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.158.100/centos7
进行编辑
ftp 服务的安装包为 vsftpd,前面的tftp服务主要用于传输一些小文件,比如引导文件、引导内核文件,使用ftp传输一些重要文件,因为ftp传输时加密的,tftp是明文传输,不够安全。
安装ftp软件包
将镜像文件拷贝到ftp默认的共享目录中
在前面拷贝内核文件和系统初始化的文件已经挂载了镜像,现在只需要进行拷贝过去就行
在ftp共享目录中创建一个centos 7 目录用来装系统镜像 ,然后进行拷贝过去
开启FTP服务
下载kickstart软件包(system-config-kickstart)
进入linux系统进行配置
可在/var/ftp 目录下查看到保存的文件
在本地用户的家目录下有一个文件anaconda-ks.cfg 文件,这个文件中存在许多需要开机安装的软件包,需要将他们复制到前面新创建的ks.cfg文件中
将上面的文件内容复制到下面的文件中去
再次编辑defaulst引导文件
开启一台裸金属客户机(注意网络的设置)
然后等待自动安装最后进入系统界面即可完成所有的安装
总体来说步骤
配置双网卡----> 使用DHCP服务获取IP地址—>使用tftp服务共享内核文件和初始化文件----> 配置引导程序-----> 配置菜单文件 ---->使用FTP服务共享镜像文件-----> 实现无人值守安装步骤。
使用PXE安装的步骤
1、配置双网卡、一块网卡作为NAT,用来下载,一块网卡作为仅主机模式,连接PXE客户机
2、安装DHCP服务,给客户机分配ip地址,并告诉客户机tftp服务器的位置和pxelinux.0的位置
3、安装TFTP服务,安装TFTP服务必须要安装 xinetd 服务,因为被他托管,然后再安装tftp服务(安装包:tftp-server)
4、将 pxelinux.0 引导程序文件复制到 tftp共享目录 /var/lib/tftpboot 目录下,pxelinux.0 文件需要使用安装包 syslinux 进行安装,安装后将配置文件复制过去,配置文件的位置使用 rpm -ql | grep pxelinux.0 进行查找
5、 配置启动菜单文件,在tftp共享目录下 /var/lib/tftpboot 目录下创建一个目录 pxelinux.cfg 然后再在该目录下创建一个文件 default 文件,设置 default 文件中的内容(如何调用内核、加载驱动)
6、 安装FTP服务, 安装包为:vsftp ,将系统镜像文件全部拷贝到FTP默认的镜像文件中 /var/ftp/centos
7、实现 kickstart 无人值守安装步骤,安装软件包名称:system-config-kickstart,配置好后在 /var/ftp/ 目录下,可以查看到文件 ck.cfg 文件,然后将家目录下文件 ~/anaconda-ks.cfg 文件中一些需要安装的引导参数加入到 /var/ftp/ck.cfg 文件中。
8、进入 /var/lib/tftpboot/pxelinux.cfg/default 更新 default 文件,加入 ks.cfg 文件位置。