玩转OurBMC第十四期:PXE技术详解
【栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、理念及特色,增进开发者对BMC全栈技术的理解。
欢迎各位关注“玩转OurBMC”栏目,共同探索OurBMC社区的精彩世界。同时,我们诚挚地邀请各位开发者向“玩转OurBMC”栏目投稿,共同学习进步,将栏目打造成为汇聚智慧、激发创意的知识园地。】
在 BMC 对服务器的监控与管理过程中,为了实现对服务器的更优化管理,往往需要与其它工具紧密协同工作,以增强监控的全面性、提高管理的灵活性,并促进问题的快速解决。本期内容,我们将对 PXE 技术安装操作系统方法 进行介绍。通过全面阐述 PXE 的基本概念,并结合实际应用案例的深入分析,以帮助读者熟练掌握 PXE 技术的使用方法,从而在实际操作中游刃有余。
PXE 基本介绍
PXE(Preboot Execution Environment)是一种网络引导技术,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。PXE 的主要优点包括规模化、自动化和远程实现,可以同时装配多台服务器,自动化安装系统,并且不需要光盘、U盘等安装介质。
以下是 PXE 安装操作系统的环境准备:
1、DHCP 服务器:提供客户端 IP 地址和 PXE 引导文件的路径。
2、TFTP 服务器:用于传输 PXE 引导文件(例如,引导加载程序、内核和初始 RAM 磁盘)。
3、HTTP/FTP/NFS 服务器:用于存储操作系统安装文件。
4、PXE 支持的客户端:客户端计算机需要支持 PXE 引导。
PXE 应用实例分析
使用 PXE 安装操作系统至少需要两台设备,一台作为 PXE 服务端提供安装镜像,另一台作为 PXE 客户端执行系统安装。两个机器通过一根网线直连(前提网络功能正常)。这里以 CentOS 作为服务端系统为例:
1、在 PXE 服务器上安装 DHCP、TFTP 和 HTTP/FTP 服务
#安装 DHCP 服务器
# sudo yum install -y dhcp*
#安装 TFTP 服务器
# sudo yum install -y tftp-server
#安装 HTTP 服务器
# sudo yum install -y httpd
2、 在 PXE 服务器上配置 DHCP、TFTP 和 HTTP/FTP 服务
(1)配置DHCP服务:
编辑 DHCP 服务端的配置文件 /etc/dhcp/dhcpd.conf,以下是配置实例,请注意,您需要根据自己的实际环境替换其中的IP地址和其他参数:
- subnet 192.168.188.0 netmask 255.255.255.0 声明了一个子网,其IP地址为192.168.188.0,子网掩码为255.255.255.0
- range 192.168.188.140 192.168.188.240 指定了客户端可以获取的IP地址范围
- next-server 192.168.188.136 指定了TFTP服务器的IP地址,需要根据自己的环境替换这个值
- filename "grubaa64.efi" 指定了PXE启动文件,该文件用于加载grub.cfg
(2)配置 HTTP 服务
① 下载并挂载镜像:从https://vault.centos.org/8.2.2004/isos/aarch64/下载镜像CentOS-8.2.2004-aarch64-dvd1.iso并放到/opt下,挂载该镜像到/mnt。
#mount /opt/CentOS-8.2.2004-aarch64-dvd1.iso /mnt
#cd /mnt
② 准备Web服务器,并在Web服务器默认访问路径下创建文件夹用于存放安装源。
#cd /var/www/html
#mkdir centos
#cp -rf /mnt/* centos
③ 准备Kickstart文件:创建一个文件夹用于存放Kickstart(ks)文件,复制/root目录下的anaconda-ks.cfg文件到这个新目录下,并为ks配置文件加读权限。
#mkdir ksdir
#cp /root/anaconda-ks.cfg ks8.cfg ksdir
#chmod +r ks8.cfg
ks8.cfg为自动安装的配置文件,修改ks文件如下图所示:
上图所示的ks文件的参数详解如下:
- url --url=http://192.168.188.136/centos/8/isos/aarch64/ 配置网络安装源,此处的其他配置选项为cdrom(以本地CD-ROM为源安装系统)。
- keyboard --vckeymap=cn --xlayouts='cn' 配置键盘样式。
- lang zh_CN.UTF-8 配置系统语言为中文,编码方式utf-8。
- network --bootproto=dhcp --device=enp5s0 --onboot=on --ipv6=auto --no-activate 配置网络信息。其中 --bootproto=dhcp指定ip获取方式为dhcp(默认值),--device=xxx设置客户端安装时使用的网卡为enp5s0,--onboot=on 系统启动时自启动网卡。
- network --hostname=localhost.localdomain 设置安装的系统的主机名。
- reboot 安装完成后自动重启(该选项可缺省)。
- rootpw --iscrypted $6$9LFQG/EX.saU/Lhe$Yl/e1PVwdoBoOBNs.NL4JRWmMT.L49B3.bJo/uXQgWy6OCG5yme.Ww5D0TtBsRt02ZY9OMRFXtpopeX/4roLl/ 设置root账户密码。
- xconfig --startxonboot 安装时显示可视化界面,修改此行为skipx则不显示可视化界面。
- services --disabled="chronyd" 可选参数,设置禁用或允许列出的服务,--disabled 设置服务为禁用,--enabled 启动服务。
- timezone Asia/Shanghai --isUtc --nontp 设置时区信息。
- bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda 系统引导配置,其中 --append 指定内核参数.要指定多个参数,使用空格分隔它们。--location指定引导记录被写入的位置.有效的值如下:mbr(缺省),partition,none。--boot-drive 指定在BIOS引导顺序中居首的驱动器。
- autopart --type=lvm 可选参数,自动创建分区,大于1GB的根分区(/),交换分区和适合于不同体系结构的引导分区.一个或多个缺省分区的大小可以用part指令重新定义。--type=lvm指定逻辑卷管理。
- clearpart --none --initlabel 从系统中不清除分区(修改--none为--all会清除所有分区),--initlable 是初始化磁盘标签。
- part / --fstype="ext4" --ondisk=sda --size=10240 是磁盘分区信息,其中--fstype为分区设置文件系统类型.有效的类型为ext2,ext3,swap, xfs和vfat。--ondisk=sda 设置分区所在的磁盘为一个具体的磁盘sda。--size以MB为单位的分区最小值.在此处指定一个整数值,如10240不加MB。
- %packages是指定自定义安装的包(一行一个)以%end结束,@^graphical-server-environment表示安装的是带图形化界面的服务器,此处可选@core进行最小安装、net-tools安装网络工具。
注意autopart参数和part/partition参数不能同时出现,否则会在安装过程中报错中止。
④ 验证配置:
打开Web浏览器并访问您的HTTP服务器的地址(例如,http://your-server-ip/centos/ 应该列出CentOS安装源的文件)。同样,http://your-server-ip/ksdir/ks8.cfg 应该能够下载Kickstart文件。
⑤ 调整防火墙:
如果您的服务器有防火墙运行,请确保HTTP(端口80)和HTTPS(端口443,如果适用)是开放的。
(3)配置 TFTP 服务
复制启动相关文件到/var/lib/tftpboot/中。
#cd /mnt
#cp -r images/pxeboot/* /var/lib/tftpboot/
#cp EFI/BOOT/grubaa64.efi /var/lib/tftpboot/
#cp EFI/BOOT/grub.cfg /var/lib/tftpboot/
修改启动菜单,执行命令:
#vim /var/lib/tftpboot/grub.cfg
修改后的菜单配置文件如下图所示:
其中192.168.188.136是服务端的IP地址。
3、启动 PXE 服务端
服务端确保所有服务已启动并运行:
#systemctl disable firewalld
#systemctl stop firewalld.service
#systemctl start NetworkManager
#systemctl start dhcpd
#systemctl start tftp
#systemctl start httpd
#systemctl stop NetworkManager
4、系统安装
将需要安装 CentOS 的客户端设置为从网络启动(PXE 启动),通常在 BIOS/UEFI 中设置网络启动为第一启动项。
注意事项:
(1)防火墙配置:确保防火墙允许 DHCP、TFTP 和 HTTP/FTP 服务的端口。
(2)网络配置:确保 PXE 服务器和客户端在同一个子网内,或者 DHCP 服务器能够正确地传递 next-server 和 filename 选项。
(3)镜像版本:根据需要安装的 CentOS 版本,调整相应的配置文件路径。
本期内容以 PXE 技术为核心,通过理论讲解与实践案例相结合的方式,全面展示了其在操作系统部署领域的强大功能与广泛应用前景。希望帮主读者更好利用 PXE 技术实现计算机通过网络从远程服务器下载并安装操作系统,从而极大地提升运维效率与灵活性。
欢迎大家关注OurBMC社区,了解更多BMC技术干货。
OurBMC社区官方网站:
https://www.ourbmc.cn/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
benchANT 性能榜单技术解读 Part 1:写入吞吐
近期,国际权威数据库性能测试榜单 benchANT 更新了 Time Series: Devops(时序数据库)场景排名,KaiwuDB 数据库在 xsmall 和 small 两类规格下的时序数据写入吞吐、查询吞吐、查询延迟、成本效益等多项指标刷新榜单原有数据纪录。在这些性能提升的背后,KaiwuDB 究竟都做了哪些技术创新?小 K 将逐一为你揭秘! KaiwuDB 在 xsmall 和 small 两类规格下的时序数据写入吞吐数据 今天,我们先来了解 KaiwuDB 写入吞吐背后的 3 大核心技术 空间预分配 在传统的数据存储模式中,锁机制在多线程并发写入时往往会引发频繁的锁竞争开销。线程在获取锁和释放锁的过程中,需要进行上下文切换,这一过程涉及到保存当前线程状态、恢复被阻塞线程状态等操作,会消耗大量的 CPU 时间。同时,等待锁释放的线程处于阻塞状态,无法执行其他任务,导致整体资源利用率降低,严重影响写入效率。 空间预分配是一项针对数据文件管理的优化技术,它通过在数据写入前预先分配空间,减少数据写入时文件的动态扩容以提升写入性能。在 KaiwuDB 中,Segment 是构成数据...
- 下一篇
「AI 为伍 重启征程」2024 OSC 源创会年终盛典在珠海圆满落幕
12 月 28 日, 「 AI 为伍 重启征程」2024 OSC 源创会年终盛典在珠海嘉远世纪酒店圆满落下帷幕。本次活动由开源中国、Gitee主办,华为联合主办,珠海市香洲区科技和工业信息化局、广东省科学院珠海产业技术研究院、珠海市软件行业协会、珠海市科技发展促进会、澳门亚太 IT 协会提供支持。 本次活动秉承“自由、开放、分享”的宗旨,自开启报名后就受到了全国各地开发者和 IT 企业的关注,吸引到行业内的顶尖专家、技术领袖和一线开发者积极报名, 现场观众达400 余人,会场座无虚席,参会人数再创新高。 2024 年,源创会走过不同城市,举办了 8 场城市沙龙,1 场年终盛典,汇聚上千位开发者、近 70 位优秀讲师。与此同时,开源中国和 Gitee AI 社区生态的发展也离不开业界专家与合作伙伴的支持。为了感谢各位合作伙伴的支持与贡献,本次大会组委会特别颁发 “源创会 2024 年度技术领航者” 、 “开源中国 2024 年度突出贡献专家” 、 “ Gitee AI 年度最佳合作伙伴”三大奖项。 大会现场巧妙设置了一系列精彩纷呈、趣味盎然的活动,如“可乐滚滚乐”、“展台互动集章”...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程