一、PXE简介
PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。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,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。
二、PXE工作流程
① PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
② DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上)
③ PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件
④ PXE Client 取得pxelinux.0 文件后之执行该文件
⑤ 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统
⑥ 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装
详细工作流程,请参考下面这幅图:
若要搭建PXE网络体系,必须满足以下几个前提条件
- 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
- 网络中有一台DHCP服务器以便为客户机自动分配地址、指定引导文件位置。
- 服务器通过TFTP (Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
三、搭建PXE远程安装服务器
1、准备CentOS 7安装源
2、安装并启用TFTP服务
# yum -y install tftp-server tftp xinetd net-tools
bash -c 'cat >/etc/xinetd.d/tftp << EOF
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
#默认disable是yes的,把它改为no即可
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
EOF'
# systemctl start tftp
# systemctl enable tftp
3、准备Linux内核、初始化镜像文件
拷贝文件
OS_distribution=CentOS && \
OS_version=7.9.2009 && \
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ && \
cp /mnt/cdrom/$OS_distribution/$OS_version/images/pxeboot/vmlinuz /var/lib/tftpboot/vmlinuz-${OS_version%.*} && \
cp /mnt/cdrom/$OS_distribution/$OS_version/images/pxeboot/initrd.img /var/lib/tftpboot/initrd-${OS_version%.*}.img && \
cp /mnt/cdrom/$OS_distribution/$OS_version/isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/ && \
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/ && \
mkdir /var/lib/tftpboot/pxelinux.cfg
4、准备PXE引导程序、启动菜单文件
# yum -y install syslinux
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# mkdir /var/lib/tftpboot/pxelinux.cfg
# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
timeout 60
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.1.10/centos7
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.1.10/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://l92.l68.1.10/centos7
引导配置文件参数详解
参数 | 说明 |
---|---|
default | 默认启动的启动内核 |
prompt | 显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容 |
timeout | 在用户输入之前的超时时间,单位为 1/10 秒 |
display | 显示某个文件的内容,注意文件的路径。默认是在/var/lib/tftpboot/ 目录下。也可以指定位类似 '/install/boot.msg'这样的,路径+文件名 |
F1 | 按下 'F1' 这样的键后显示的文件 |
label | label' 指定你在 'boot:' 提示符下输入的关键字,比如boot: linux[ENTER],这个会启动'label linux' 下标记的kernel 和initrd.img 文件 |
kernel | kernel 参数指定要启动的内核 |
append | append 指定追加给内核的参数,能够在grub 里使用的追加给内核的参数,在这里也都可以使用 |
6、安装并启用DHCP服务
# yum -y install dhcp
Local_ip=$(ip -4 addr | grep inet | grep -E '192(\.[0-9]{1,3}){3}' | cut -d '/' -f 1 | grep -oE '[0-9]{1,3}(\.[0-9]{1,3}){3}') && \
bash -c 'cat >/etc/dhcp/dhcpd.conf << EOF
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1; # 给 client 的默认网关
option subnet-mask 255.255.255.0; # 给 client 的子网掩码
option domain-name "example.com"; # 给 client 的搜索域
option domain-name-servers 192.168.1.1; # 给 client 的域名服务器
range dynamic-bootp 192.168.1.100 192.168.1.120; # 可供分配的IP范围
default-lease-time 21600;
max-lease-time 43200;
next-server '$Local_ip'; # TFTP Server 的IP地址
filename "pxelinux.0"; # pxelinux启动文件位置;
}
EOF'
# systemctl start dhcpd
# systemctl enable dhcpd
四、验证PXE网络安装
使用虚拟机时,虚拟机内存至少需要2GB,否则在启动安装时会报错
修改BIOS设置
在提示字串"boot:"后直接按Enter键(或执行"auto"命令),将会进入默认的图形安装入口; 若执行linux text”命令,则进入文本安装入口;若执行"linux rescue"命令,则进入救援模式
进入图形化安装配置程序
评论区