pxe,kickstart

本文介绍PXE预启动执行环境的概念及其工作流程,包括如何配置PXE服务器以支持远程操作系统安装。同时,详细解析Linux PXE安装过程及所需配置文件。此外,文章还介绍了如何使用Kickstart实现Linux系统的自动化安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,PXE(Pre-boot Execution Environment,预启动执行环境)简介:
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载镜像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,所以服务器需要配置dhcp服务器,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议从服务器下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导**预先安装在服务器中的终端操作系统。**PXE可以引导多种操作系统。

PXE的工作过程:

  1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
  2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
  3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
  4. PXE Client 取得pxelinux.0 文件后之执行该文件;
  5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
  6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;

这里写图片描述

二,对linux安装过程的解析:
pxe安装是通过dhcp获取ip,并通过http获取相应的内核文件和初始化境像文件。pxe程序(pxelinux.0)会让网卡读取isolinux这个文件。

pxe程序对应的软件:(这就是为什么安装syslinux的原因咯)
这里写图片描述
[root@foundation92 isolinux]# rpm -ql syslinux
这里写图片描述
[root@foundation92 isolinux]# cd /usr/share/doc/syslinux-4.05/
这里写图片描述
查看pxelinux.txt.文件的内容,此文件中指定了pxe安装系统的做法和需要的东西:
这里写图片描述
isolinux目录内容:
这里写图片描述
可以看见isolinux中包含了安装过程中需要的内核和初始化文件等一系列东西。怪不得在使用pxe安装主机时,pxelinux.0这个程序会让网卡读取isolinux这个目录了。

解析isolinux目录下内核文件和初始化文件:
这里写图片描述

isolinux.cfg文件中记录了开机应做的动作和安装系统的一些设置和必要的东西。

三,操作步骤:
1,pxe的安装和配置

[root@server ~]#yum install -y httpd dhcp tftp-server syslinux
安装tftp-server时会安装两个包,一个是tftp-server另一个是xinetd。
[root@server ~]# vim /etc/xinetd.d/tftp

 14         disable                 = no

[root@server ~]# systemctl restart xinetd.service #xinetd是tftp的守护进程
[root@server ~]# cd /var/lib/tftpboot/ #注意要将必要的文件放在此目录下
[root@server tftpboot]# cp /usr/share/syslinux/pxelinux.0 .
[root@server tftpboot]# ls #从镜像中获取以下的安装系统所需要的东西
boot.cat initrd.img memtest splash.png vesamenu.c32 boot.msg isolinux.bin pxelinux.0 TRANS.TBL vmlinuz grub.conf isolinux.cfg pxelinux.cfg upgrade.img
[root@server tftpboot]# mkdir pxelinux.cfg
[root@server tftpboot]# cp isolinux.cfg pxelinux.cfg/default

[root@server ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf -p
[root@server tftpboot]# vim /etc/dhcp/dhcpd.conf

  1 option domain-name "example.com";
  2 option domain-name-servers 172.25.254.93;
  3 default-lease-time 600;
  4 max-lease-time 7200;
  5 log-facility local7;
  6 subnet 172.25.254.0 netmask 255.255.255.0 {
  7   range 172.25.254.95 172.25.254.99;
  8   option routers 172.25.254.93;
  9   next-server 172.25.254.93;#tftp主机的地址
 10   filename "pxelinux.0";#pxe启动程序
 11 }

systemctl stop firewalld
systemctl restart dhcpd
systemctl restart httpd
systemctl restart xinetd.service

测试:
拔掉网线,在主机上的任意一台虚拟机上选择网络启动(网卡启动)
这里写图片描述
可以看见新装的虚拟机从配置的服务器上获取ip并下载内核和初始化所需要的东西:
这里写图片描述
可以看见,新装的主机从172.25.254.93上获取到的ip为:172.25.254.95。但是到此为止还不能安装系统,因为没有在93主机上指定安装所需要的镜像。到此只能证明可以通过93 主机以pxe方式安装主机了。

[root@server tftpboot]# vim pxelinux.cfg/default
这里写图片描述

default文件部分参数解析:
[root@server tftpboot]# vim pxelinux.cfg/default

 2 timeout 50  #倒计时5秒
 10 menu background haha.png  #安装界面的背景图
 11 menu title Red Hat Enterprise Linux 7.0   #主标题
 61 label linux
 62   menu label ^Install Red Hat Enterprise Linux 7.0 
 63   menu default  #设置默认时install而不是test
 64   kernel vmlinuz  #读取内核文件
 65   append initrd=initrd.img repo=http://172.25.254.92/rhel7 ks=http://172.25.254.93/ks.cfg #此处指定了安装系统的镜像位置和自动部署所需的ks.cfg的位置

关于安装界面背景图的设置:
背景图的格式:
这里写图片描述
制作此种格式大小的方法:
yum install ImageMagick-6.7.8.9-10.el7.i686 -y
convert -resize 640x480! timg.jpg(原名) test.jpg(自取名)
mv test.jpg /var/lib/tftpboot/
然后就可以通过修改default文件中的对应位置改变背景图了。

2,ksckstart的安装和自动应答脚本的生成:

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件,此文件在安装系统时会被读取,所以就可以获得安装过程中需要的参数信息,这样就可以实现自动化安装系统了。

这里写图片描述

yum install system-config-kickstart -y
system-config-kickstart
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
保存在/var/www/html下:
这里写图片描述

中文参考:http://www.linuxidc.com/Linux/2015-09/123312.htm
ks.cfg生成后可以在文件中添加一些开机执行的脚本
这里写图片描述
安装完成后可以在浏览器访问到:
这里写图片描述

创建一个自动安装的脚本:
vim auto-installvm.sh

#!/bin/bash
virt-install \
--name $1 \
--vcpus 1 \
--ram 512 \
--file /var/lib/libvirt/images/$1.qcow2 \
--location http://172.25.254.92/rhel7 \
--extra-args "ks=http://172.25.254.91/ks.cfg" &

执行命令:sh auto-installv.sh test
就会自动安装一个名为test的虚拟机。
到此完成kickstart的半自动安装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值