千家信息网

CentOS 7系统部署PXE远程安装服务及Kickstart无人值守安装

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,前言:相信很多人都有过装系统的经历,以前是用光盘,现在基本都是用U盘来装系统。我们只需要制作一个U盘驱动即可,安装起来方便快捷。但如果是企业需要同时安装大量的系统时,U盘很显然不适合,它会耗费大量的时
千家信息网最后更新 2026年11月02日CentOS 7系统部署PXE远程安装服务及Kickstart无人值守安装

前言:

相信很多人都有过装系统的经历,以前是用光盘,现在基本都是用U盘来装系统。我们只需要制作一个U盘驱动即可,安装起来方便快捷。但如果是企业需要同时安装大量的系统时,U盘很显然不适合,它会耗费大量的时间。这时我们就可以用到PXE远程安装服务了,它可以提供大量的客户机同时安装系统。但是,同时安装的客户机数量是受到带宽的限制的。而且在安装系统时,还需要手动进行部分设置。这时我们就会用到Kickstart无人值守安装。

简介:

PXE:预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。 工作于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 上下载所需的文件了。


Kickstart:是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。

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 方式之一进行安装(我用的是FTP)。

实验环境:

用VMware14 虚拟机来进行本次实验:

1.首先为了方便实验,需要一台CentOS7同时部署DHCP、TFTP、FTP服务来作为PXE服务端。服务端需要配置双网卡,一块为NAT模式,用来联网安装所需程序,一块为仅主机模式,配置一个固定IP用来与局域网互通。
2.新建一台虚拟机用来作为PXE客户端,用来进行远程安装,安装的系统也为CentOS7。

实验操作:

1.给客户端添加一块网卡,并将网络模式改为仅主机模式。

2.进入"/network-scripts/"目录下,复制一份"ifcfg-ens33"配置文件,命名为"ifcfg-ens36"。"-p"为保留原有权限。

输入:cd /etc/sysconfig/network-scripts/输入:cp -p ifcfg-ens33 ifcfg-ens36

3.用vim编辑器对配置文件"ifcfg-ens36"进行编辑,将"dhcp"改为"static","ens33"改为"ens36",删除"UUID",同时添加IP地址、子网掩码、网关。

TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=7bdb3fdc-0c3b-4a92-918d-3815b0816b02DEVICE=ens33ONBOOT=yesIPADDR=192.168.100.100NETMASK=255.255.255.0GATEWAY=192.168.100.1

4.重启网络服务,再查看一下网络配置。"ens36"网卡的固定IP已经设置成功。

输入:systemctl restart network输入:ifconfig

5.安装DHCP服务所需软件包。

输入:yum install dhcp -y

6.复制一份DHCP主配置文件的模板,覆盖DHCP的主配置文件。

输入:cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

7.用vim编辑器对DHCP服务主配置文件进行编辑,添加一个"192.168.100.0"网段的配置文件,地址池可根据具体情况自己决定,主要是下一个TFTP服务器的路径和引导程序的位置。

添加:subnet 192.168.100.0 netmask 255.255.255.0 {        range 192.168.100.20 192.168.100.30;        option routers 192.168.100.100;        option domain-name-servers 114.114.114.114;        next-server 192.168.100.100;        filename "pxelinux.0";}

8.安装"syslinux"软件包和"tftp-server"软件包。

输入:yum install syslinux -y输入:yum install tftp-server -y


9.查看一下"syslinux"和"tftp-server"软件包的配置文件,我将重要的配置文件标了出来。

输入:rpm -ql syslinux |grep pxelinux.0输入:rpm -ql tftp-server

10.复制一份"pxelinux.0"文件到"/var/lib/tftpboot/"目录下,并查看是否复制成功。

输入:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/输入:ls /var/lib/tftpboot/

11.用vim编辑器对TFTP服务的配置文件进行编辑,将"disable"后的"yes"改为"no",开启TFTP服务。

输入:vim /etc/xinetd.d/tftp


12.安装FTP服务所需软件包。

输入:yum install vsftpd -y

13.进入到FTP服务的站点目录下,新建一个centos7目录。

输入:cd /var/ftp/输入:mkdir centos7

14.将PXE客户端所需要的光盘镜像挂载到刚才创建的centos7目录下,并查看挂载信息(你也可以直接复制过去)。

输入:mount /dev/sr0 /var/ftp/centos7/输入:df -h

15.进入到"centos7/images/pxeboot/"目录下(可以一步直接进入),将文件"initrd.img"和"vmlinuz"复制到"/var/lib/tftpboot/"目录下。

输入:cd centos7/images/pxeboot/输入:cp initrd.img vmlinuz /var/lib/tftpboot/

16.查看一下" /var/lib/tftpboot/"目录,已经有了三个文件了,其中"pxelinux.0"是引导程序文件,"vmlinuz"是压缩内核文件,"initrd.img"是系统初始化文件。现在还差一个默认的启动菜单文件,所以我们直接进入"/var/lib/tftpboot/"目录,创建一个目录"pxelinux.cfg",然后在目录"pxelinux.cfg"内新建一个文件"default"。

输入:ls /var/lib/tftpboot/输入:cd /var/lib/tftpboot/输入:mkdir pxelinux.cfg输入:cd pxelinux.cfg/输入:vim default

17.在"default"文件中,输入以下内容。

default auto                                                                                                                 //默认自动模式prompt 1                                                                                                                      //等待时间1slabel auto                                                                                                                    //自动模式安装        kernel vmlinuz        append initrd=initrd.img method=ftp://192.168.100.100/centos7label linux text                                                                                                           //文本模式安装        kernel vmlinuz        append text initrd=initrd.img method=ftp://192.168.100.100/centos7label linux rescue                                                                                                    //进入救援模式        kernel vmlinuz        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

18.关闭防火墙和增强性安全功能,同时开启DHCP、TFTP、FTP服务。

输入:systemctl stop firewalld.service输入:setenforce 0输入:systemctl start dhcpd输入:systemctl start tftp输入:systemctl start vsftpd

19.咱们新建一个虚拟机,具体配置如下图,注意网络为仅主机模式。

20.打开新建的虚拟机作为PXE客户机,选择网络驱动。

21.客户机会获取到DHCP服务分配的IP地址,然后启动引导程序,加载默认的启动菜单。此时需要回车才会继续。

22.在回车后,稍作等待就会进入系统安装的设置界面。

23.我们可以看到PXE远程安装服务,在安装过程中任需要人工进行设置,而我们需要的是无人值守安装,那么我们可以配置"kickstart"程序。首先安装一个"system-config-kickstart"软件包。

输入:yum install system-config-kickstart -y

24.我们进入图形化界面(可以用"init 5"命令进入),进入Kickstart的配置面板。

25.基本配置,设置好默认语言和时区,同时设置root用户密码,勾选安装后重启。

26.安装方法,选择FTP,同时输入FTP服务器的路径和存放镜像文件的目录。

27.引导装载程序选项,勾选安装引导装载程序即可。GRUB密码也可以设置,这样系统会更加安全。

28.分区信息,点击添加分别设置"/boot"、"/home"、"swap"、"/"等分区的大小。注意根分区"/"不用设置大小,直接勾选使用磁盘全部未使用空间即可。




29.网络配置,添加一块ens33网卡,网络类型默认的DHCP模式即可。

30.防火墙配置,禁用SELinux。

31.安装后脚本,选择使用解释程序,输入"/bin/bash"即可。

32.保存配置好的文件,将文件"ks.cfg"保存到FTP服务的站点目录"/var/ftp"下。


33.我们先进入root的家目录,用vim编辑器进入"anaconda-ks.cfg"文件,这是"ks.cfg"的模板文件,我们将其中的安装包命令复制,粘贴到"ks.cfg"文件中去。

输入:cd ~输入:vim anaconda-ks.cfg输入:cd /var/ftp/输入:vim ks.cfg




34.我们再进入"/var/lib/tftpboot/pxelinux.cfg/" 目录,用vim编辑器对"default"文件进行编辑,在自动模式的文件后面添加一个kickstart配置文件的路径。

default autoprompt 1label auto        kernel vmlinuz        append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfglabel linux text        kernel vmlinuz        append text initrd=initrd.img method=ftp://192.168.100.100/centos7label linux rescue        kernel vmlinuz        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

35.我们再新建一台虚拟机,配置与之前的相同。

36.启动新建的虚拟机,操作与PXE远程安装一样,不过这次不需要在手动设置了,系统会自动执行我们在"ks.cfg"文件中配置的内容。

文件 输入 服务 配置 系统 目录 网络 服务器 模式 程序 同时 软件 客户 网卡 软件包 参数 地址 过程 编辑器 计算机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 花魁咖啡 哈尔滨大商圈互联网科技有限公司 北京互联网络科技有限公司 善班互联网科技有限公司 友谊互联网络科技 广州紫鲸互联网科技 互联网科技股午盘股票涨跌 顺网科技2021年互联网排名 开启互联网科技时代小说 团飞科技与伯堂互联网服务平台 科技与互联网哪个更好 互联网科技人工智能实验室 互联网金融科技名词解释 美国互联网科技实力 卡尔迅互联网科技有限公司 艺电能源互联网科技有限公司招聘 唯美互联网科技 互联网对科技影响 保山浩联互联网科技有限公司 利用互联网等科技手段 广东万易互联网科技有限公司惠州分公司 壕鑫互联网络科技 以后互联网后是啥科技 彤创互联网科技有限公司 湖南一路畅行互联网科技 深圳艾果互联网通讯科技 无锡工业互联网科技有限公司 互联网科技实习生岗位 信承诺互联网科技有限公司 深圳互联网科技园地址
0