PXE网络引导和pxelinux.cfg文件配置详解 (pxe pxelinux.cfg)

PXE(Preboot Execution Environment)是可以在没有本地硬盘的情况下启动计算机的一种无盘启动技术。PXE技术可以使计算机在没有本地硬盘、内存中没有操作系统和磁盘驱动等情况下,通过局域网和服务器进行启动。

在进行PXE网络引导时,需要配置pxelinux.cfg文件,这个文件对于PXE网络引导起着非常关键的作用。所以在本文中,我们将对PXE网络引导和pxelinux.cfg文件配置进行详细的介绍和解析,让读者更好地理解和掌握这项技术。

一、PXE网络引导的原理

在进行PXE网络引导时,首先需要将要启动的计算机连接到局域网上,然后在网络中的一个服务器上设置PXE Server。当启动计算机时,计算机会通过网络请求PXE Server,查看PXE Server中是否有可用的启动镜像。如果有,计算机就会下载并运行这个镜像。

PXE网络引导的核心技术是DHCP和TFTP。DHCP(Dynamic Host Configuration Protocol)协议用于给计算机动态分配IP地址、网关、域名服务器等信息,以便计算机和PXE Server之间进行通信。而TFTP(Trivial File Transfer Protocol)协议则用于网络传输启动镜像、配置文件等数据。

二、PXE网络引导的使用场景

PXE网络引导非常适合在大型网络环境下进行系统安装、维护和管理。比如,在企业中进行批量部署操作系统、软件安装、驱动程序的更新等工作时,PXE网络引导可以大幅提高工作效率。

另外,PXE网络引导也广泛应用于一些特定的场景,比如在云计算、虚拟化环境下,可以使用PXE网络引导来快速创建和部署虚拟机。在无盘终端中也经常使用PXE网络引导技术。

三、PXE网络引导的优点和缺点

相比于传统的光盘或U盘安装操作系统等方式,PXE网络引导有以下优点:

1、减轻维护成本:PXE网络引导可以避免因频繁更换光盘或U盘而带来的维护成本。

2、快速部署:利用PXE网络引导,可以实现多台计算机同时安装、配置操作系统,提高部署效率。

3、可靠性高:PXE网络引导可以在网络环境下进行,可以大幅提高系统安装和部署的可靠性,同时也能降低人为操作引起的错误风险。

但是,PXE网络引导也存在一些不足之处:

1、依赖网络环境:PXE网络引导需要计算机与服务器之间进行通信,如果网络环境不好或者出现了丢包等问题,就会影响到PXE网络引导的正常使用。

2、传输效率低:相比于光盘或U盘,PXE网络引导传输文件的速度较慢,尤其是在传输大体积的系统镜像时,会耗费较长的时间。

四、pxelinux.cfg文件的意义和作用

在进行PXE网络引导时,pxelinux.cfg文件是不可缺少的。这个文件是PXE引导时首先读取的配置文件,会告诉PXE Server需要启动哪个Linux内核以及如何启动。

文件位置在TFTProot目录下的pxelinux.cfg目录,pxelinux.cfg目录中存储的是每一种启动应用程序的配置文件,每种启动应用程序都有一个对应的配置文件。

通过编辑pxelinux.cfg文件,可以自定义启动选项、操作系统镜像、内核、内存大小等信息,为计算机的启动提供更多的选择和灵活性。

五、pxelinux.cfg文件的配置和样例

下面以CentOS7操作系统为例,介绍如何配置pxelinux.cfg文件。

1、需要在TFTP服务器上下载CentOS7的ISO镜像,并将该镜像解压到/home/tftproot文件夹下。

2、然后在/home/tftproot/pxelinux.cfg目录下创建一个新的文件centos7.cfg。

3、在centos7.cfg文件中添加如下内容:

default vesamenu.c32

timeout 6000

menu title ####### PXE Boot Menu #######

label 1

menu label ^1) Install CentOS7

menu default

kernel images/centos7/vmlinuz

append initrd=images/centos7/initrd.img

ip=dhcp

vnc

vncpassword=redhat

root=live:http://192.168.11.201/centos.iso

label 2

menu label ^2) Boot from Hard disk

localboot 0

4、关于centos7.cfg文件中各个参数的含义,简单解释一下:

timeout 6000:表示计算机等待用户选择启动项的时间,单位为毫秒。

menu title ####### PXE Boot Menu #######:用来设置菜单的标题。

label 1:用来指定这个启动项的标签名称,其后跟的数字表示它在菜单中的顺序。

menu label ^1) Install CentOS7:用来设置菜单中显示的名称。

menu default:表示默认选中这个启动项。

kernel images/centos7/vmlinuz:用来指定内核的路径和文件名。

initrd=images/centos7/initrd.img:用来指定initramfs的路径和文件名。

ip=dhcp:表示计算机可获得IP地址的方式为DHCP。

vnc:表示在安装时开启VNC图形化安装。

vncpassword=redhat:VNC的密码,可以自定义。

root=live:http://192.168.11.201/centos.iso:表示在PXE引导时,加载的是一个live环境,将ISO文件挂载到一个Web服务器上。

label 2:代表的是“Boot from Hard disk”这个启动项。

localboot 0:表示直接启动本地硬盘中的操作系统。

通过本文的学习,我们可以知道PXE网络引导技术可以让计算机在没有本地硬盘的情况下启动,有效地节省了维护成本,提高了部署效率。同时也说明,Pxelinux.cfg文件是PXE网络引导中的关键环节,其作用和功能非常重要。

能够熟练掌握PXE网络引导和Pxelinux.cfg文件配置,有利于我们在实践中更好地应用这项技术,并为企业快速进行系统部署、升级、维护等工作提供更好的技术支持。

相关问题拓展阅读:

centos网络安装 pxe(DHCP+TFTP+NFS+kickstart) 客户端pxe启动时出现could not find kernel image :linu

肯定是你的配置文件的问题,估计是你的配置文件中指向的img的路径与你存放粗掘枯的文件的位置有差异导致的,你按网上的散猛教程重新一步步装岩洞一遍吧

如何网络安装系统centos 7

第行拍19章 使用PXE+Kickstart部署无人值守安装

19.1 无人值档辩羡守系统

坦白来讲,使用光盘或U盘这种传统物理方式安装系统效率真的很低,尤其当需要批量部署系统时更是明显。

一般的机房设备都会在数百台以上,即便购买了数百张系统光盘,那您也必需对每台设备初始化安装向导,免不了会有选错的参数,更灶升何况如此多的设备没有几天肯定装不完吧。

其实我们可以用PXE+DHCP+TFTP+VSftpd+Kickstart部署出无人值守安装系统,这种系统能够实现自动化运维、避免了重复性劳动,帮助提升工作效率,对于DHCP已经是咱们学习过的了,所以这里就不再多说,小伙伴们如果忘记了可以翻去前面章节复习下。

PXE(Preboot execute environment)是一种能够让计算机通过网络启动的引导方式,只要网卡支持PXE协议即可使用。

Kickstart是一种无人值守的安装方式,工作原理就是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中出现需要填写参数时则自动匹配Kickstart生成的文件,所以只要Kickstart文件包含了安装过程中所有需要人工填写的参数,那么运维人员就完全不需要干预,等待安装完毕即可。

简单文件传输协议TFTP(Trivial File Transfer Protocol)是一种基于UDP协议的传输协议,其与前面学习的vsftpd服务程序的FTP协议有很大不同,TFTP协议不具备FTP的许多功能(例如列出目录,密码认证等等),但TFTP协议配置非常简单,而且资源消耗更低,非常适合传输不敏感的文件。

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(满),B群:340829(推荐),C群:463590(推荐),点此查看全国群。

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

19.2 部署相关服务程序

咱们需要依次部署DHCP、TFTP、SYSLinux、VSFtpd与Kickstart服务,在这之前请先准备两台虚拟机并配置好网卡参数:

编辑

主机名称 操作系统 IP地址

无人值守系统 红帽RHEL7操作系统.168.10.10

客户端 未安装操作系统

并确保您的虚拟机软件自带DHCP服务功能已经关闭:

19.2.1 配置DHCP服务程序

安装dhcpd服务程序:

# yum install dhcp

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分安装过程………………

Installing:

dhcpx86_:4.2.5-27.elrhel k

………………省略部分安装过程………………

Complete!

配置dhcpd服务程序(将下面的内容复制进去即可,具体参数含义请回顾dhcpd服务章节):

# vim /etc/dhcp/dhcpd.conf

allow booting;

allow bootp;

ddns-update-style interim;

ignore client-updates;

subnet 192.168.10.0 netmask 255.255.255.0 {

option subnet-mask.255.255.0;

option domain-name-servers 192.168.10.10;

range dynamic-bootp 192.168.10..168.10.200;

default-lease-time;

max-lease-time0;

next-server92.168.10.10;

filename “pxelinux.0”;

}

重启dhcpd服务并添加到开机启动项:

# systemctl restart dhcpd

# systemctl enable dhcpd

ln -s ‘/usr/lib/systemd/system/dhcpd.service’ ‘/etc/systemd/system/multi-user.target.wants/dhcpd.service’

添加防火墙对dhcpd服务允许的规则:

# firewall-cmd –permanent –add-service=dhcp

success

# firewall-cmd –reload

success

19.2.2 配置TFTP服务程序

安装tftp服务程序:

# yum install tftp-server

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分安装过程………………

Installing:

tftp-serverx86_ 5.2-11.el rhel4 k

Installing for dependencies:

xinetdx86_ 2:2.3.15-12.elrhel28 k

………………省略部分安装过程………………

Complete!

分析vsftpd服务程序时发现,FTP服务器为了随时能够回应客户端的请求必需运行一个长期驻扎在系统中的守护进程,但这样也意味着会有一定的资源浪费,网络守护进程服务程序xinetd便是为了解决资源浪费问题而设计的,因为xinetd服务程序会同时监听多个系统端口,依据客户端请求的端口再转发给指定的服务程序,而tftp便是由xinetd服务程序来管理的。

编辑xinetd配置文件,启动TFTP服务程序:

# vim /etc/xinetd.d/tftp

//将disable的值修改为no。

service tftp

{

socket_type= dgram

protocol = udp

wait = yes

user = root

server = /usr/in/in.tftpd

server_args= -s /var/lib/tftpboot

disable = no

per_source= 11

cps= 100 2

flags = IPv4

重启xinetd服务并添加到开机启动项中:

# systemctl restart xinetd

# systemctl enable xinetd

添加防火墙对tftp服务允许的规则:

# firewall-cmd –permanent –add-port=69/udp

success

# firewall-cmd –reload

success

19.2.3 配置SYSLinux服务程序

syslinux是用于提供引导加载的服务程序,目的是简化安装Linux系统的时间,安装syslinux服务程序:

# yum install syslinux

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分安装过程………………

Installing:

syslinuxx86_ 4.05-8.el rhel1.0 M

………………省略部分安装过程………………

Complete!

将引导相关文件复制到tftp目录以供客户端下载(请确保光盘镜像已挂载到/media/cdrom):

# cd /var/lib/tftpboot

# cp /usr/share/syslinux/pxelinux.0 .

# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .

# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .

将引导模板文件复制tftp目录:

# mkdir pxelinux.cfg

# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default

编辑引导模板文件:

# vim pxelinux.cfg/default

//将第1行修改为:

default linux

//将第64行修改为:

append initrd=initrd.img inst.stage2= ks= quiet

//将第70行修改为:

append initrd=initrd.img inst.stage2= rd.live.check ks= quiet

19.2.4 配置VSFtpd服务程序

安装vsftpd服务程序:

# yum install vsftpd

Loaded plugins: langpacks, product-id, subscription-manager

………………省略部分安装过程………………

Installing:

vsftpd x86_ 3.0.2-9.el rhelk

………………省略部分安装过程………………

Complete!

重启vsftpd服务程序并添加到开机启动项:

# systemctl restart vsftpd

# systemctl enable vsftpd

ln -s ‘/usr/lib/systemd/system/vsftpd.service’ ‘/etc/systemd/system/multi-user.target.wants/vsftpd.service’

添加防火墙对vsftpd服务允许的规则:

# firewall-cmd –permanent –add-service=ftp

success

# firewall-cmd –reload

success

将光盘镜像文件的内容复制到FTP目录中(请先确保您的光盘已经挂载到/media/cdrom目录):

# cp -r /media/cdrom/* /var/ftp

设置SELinux对于FTP协议的允许策略:

# setsebool -P ftpd_connect_all_unreserved=on

19.2.4 创建KickStart应答文件

复制一份应答文件模板并给于权限:

# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg

# chmod +r /var/ftp/pub/ks.cfg

看下《linux就该这么学》里面有网络安装的教程。。

编辑模板文件:

# vim /var/ftp/pub/ks.cfg

//将第6行的cdrom修改为:

url –url=

//将第21行的时区修改为:

timezone Asia/Shanghai –isUtc

//将第28行修改为:

pxe pxelinux.cfg的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于pxe pxelinux.cfg,PXE网络引导和pxelinux.cfg文件配置详解,centos网络安装 pxe(DHCP+TFTP+NFS+kickstart) 客户端pxe启动时出现could not find kernel image :linu,如何网络安装系统centos 7的信息别忘了在本站进行查找喔。


数据运维技术 » PXE网络引导和pxelinux.cfg文件配置详解 (pxe pxelinux.cfg)