PXE + Kickstart 无人值守批量部署系统(legacy启动)
先认识两台机器整个部署过程涉及两台机器角色 它是谁 它有什么PXE 服务器 我们搭建的那台 CentOS 7IP 固定为 192.168.145.21 上面跑了三个服务DHCP、TFTP、HTTP还存着 CentOS 的 ISO 安装镜像和一份 ks.cfg 应答文件客户机 需要被安装系统的那台空白机器 什么都没有——没有系统、没有 IP。只有一块网卡支持从网络启动1.2 PXE 服务器上的三个服务分别干什么PXE 服务器本质上是把一张 CentOS 安装光盘ISO通过网络喂给客户机。这个过程中用到了三个服务服务 端口 它提供给客户机的东西 类比DHCP UDP 67 分配给客户机的 IP 地址 告诉客户机引导文件在 TFTP 那里 前台告诉你工位在哪、去哪领资料TFTP UDP 69 启动内核 vmlinuz 初始化内存盘 initrd.img PXE 引导程序 pxelinux.0 传达室你领走第一个包裹HTTP TCP 80 完整安装镜像ISO 里的全部 RPM 包 无人值守应答文件 ks.cfg 仓库你后续大量物资都从这拿DHCP 和 TFTP 只负责启动阶段传的文件很小内核几十 MB。HTTP 负责安装阶段传的文件很大几 GB 的 RPM 包。1.3 客户机从开机到装完的完整过程以下是客户机从一片空白到安装完成的全部对话过程。每一步都标注了谁跟谁说话、“说了什么”第 1 步客户机向 DHCP 要一个 IP客户机开机BIOS 选择网络启动。客户机的网卡在局域网里广播一条消息“有人在吗我是 00:0c:29:16:b6:37请给我一个 IP 地址和启动文件”PXE 服务器上的 DHCP 服务 收到后回复“给你 IP 192.168.145.100你要的引导文件叫 pxelinux.0它在 TFTP 服务器 192.168.145.21 上。”至此客户机有了自己的 IP还知道了下一步该找谁、要什么文件。第 2 步客户机通过 TFTP 下载引导程序和内核客户机拿着 DHCP 给的信息向 PXE 服务器的 TFTP 服务发起请求依次下载三个文件文件 是什么pxelinux.0 引导程序约 27KB。它负责在屏幕上显示Install PXEKickstart菜单然后启动后面的内核vmlinuz Linux 内核约 6MB。这就是最终要装到客户机上的 CentOS 内核initrd.img 初始化内存盘约 40MB。内核启动时需要的一个临时小文件系统里面装着驱动网卡驱动、硬盘驱动等和安装引导工具这三个文件下载完成后pxelinux.0 把控制权交给 vmlinuz内核并把 PXE 菜单里 append 行上写的所有参数一起传给内核。第 3 步内核启动dracut 解析内核参数内核 vmlinuz 在客户机内存中启动后第一个运行的程序叫 dracut。dracut 的工作是在这个临时的小系统里把网卡驱动起来连上网然后去下载真正的安装程序。dracut 会读取 PXE 菜单 append 行上的参数。其中有两条最关键inst.repohttp://192.168.145.21/pub/kshttp://192.168.145.21/ks/ks.cfginst.repo → dracut 自己用。它告诉 dracut“安装源在 HTTP 服务器 192.168.145.21 的 /pub/ 目录下去那里下载 LiveOS/squashfs.img。”ks → dracut 先记下来不自己用留给后面的 Anaconda。dracut 根据 inst.repo 的指示通过 HTTP 下载 LiveOS/squashfs.img约 400MB。这个文件叫 stage2 镜像里面就是 Anaconda 安装程序本体。第 4 步Anaconda 启动解析 ks.cfgstage2 下载完成后AnacondaCentOS 的安装程序启动。Anaconda 读取 dracut 留给它的 ks 参数通过 HTTP 向 http://192.168.145.21/ks/ks.cfg 发起请求下载应答文件。ks.cfg 里写了安装源在哪url --urlhttp://192.168.145.21/pub/— 从这里下载所有 RPM 包要清除哪块磁盘clearpart— 对 nvme0n1 操作怎么分区part /boot、logvol /…root 密码是什么rootpw --plaintext 1装哪些软件%packages 段落装完要不要重启rebootAnaconda 逐行执行 ks.cfg 里的指令清磁盘 → 分区 → 从 HTTP 下载 RPM 包 → 安装 → 设置 root 密码 → 重启第 5 步重启安装完成Anaconda 执行完所有步骤后客户机自动重启。此时客户机的硬盘上已经有了一套完整的 CentOS 7 系统root 密码是 1root 可以直接登录。1.4 最容易踩的坑inst.repo 和 ks.cfg 里的 url --url 不是一回事很多人认为只要 ks.cfg 里写了 url --urlhttp://…dracut 就知道从哪下载 stage2。这是错的。原因很简单——看时间顺序第 3 步dracut 需要 inst.repo 来找安装源下载 stage2↑此时 Anaconda 还没启动ks.cfg 文件还没被读取↑第 4 步Anaconda 启动后才解析 ks.cfg 里的 url --urldracut 阶段Anaconda 不存在。内核参数是唯一的信息来源。所以必须在 PXE 菜单的 append 行写上 inst.repo。Anaconda 阶段Anaconda 已经启动了它会解析 ks.cfg这时候 url --url 才生效。参数 谁读 什么时候读 用来干什么 写在哪inst.repo dracut 内核刚启动时第 3 步 下载 stage2 安装程序镜像 LiveOS/squashfs.img PXE 菜单 append 行ks Anaconda 安装程序启动后第 4 步 获取 ks.cfg 应答文件 PXE 菜单 append 行url --url Anaconda ks.cfg 被解析后第 4 步内部 获取 RPM 安装包 ks.cfg 文件内两者都必须写各管各的阶段不可互相替代。第二部分搭建步骤环境项目 值PXE 服务器 IP 192.168.145.21网段 192.168.145.0/24 (VMware NAT)操作系统 CentOS 7.9.2009ISO 路径 /home/pxe/iso/CentOS-7-x86_64-DVD-2009.iso步骤 1关闭防火墙和 SELinux这一步在干什么CentOS 默认开启的防火墙和 SELinux 会拦截外来网络请求。PXE 服务器需要对外提供 DHCP、TFTP、HTTP 三个服务客户机会主动连接这些端口。如果不关客户机的 DHCP 请求、TFTP 下载、HTTP 访问都可能被拦截导致 PXE 启动流程在第一步就失败。影响谁PXE 服务器自身的安全策略。systemctl stop firewalldsystemctl disable firewalldsetenforce 0sed -i ‘s/SELINUXenforcing/SELINUXdisabled/g’ /etc/selinux/config步骤 2挂载 ISO 并配置本地 yum 源这一步在干什么ISO 文件就像一个压缩包只有挂载之后里面的文件才能被系统访问。挂载后 ISO 的内容出现在 /mnt/cdrom 目录下CentOS 安装光盘里的所有 RPM 包都在这里。然后配置 yum 源告诉 yum安装软件的时候从这个本地目录找不要上网找。因为这台 PXE 服务器可能连不上外网如果不禁用 base/extras/updates 三个联网源yum 会反复尝试连接外网镜像站然后超时导致后续安装 DHCP/TFTP/HTTP 时每步都卡很久。影响谁PXE 服务器自己装软件后面步骤 3 需要 yum 安装 dhcp、tftp-server、syslinux、httpd。注意yum repo 的 [development] 这个名字不能乱改——如果用 system-config-kickstart GUI 工具它硬编码了只认这个 repo 名。

相关新闻

Mac Mouse Fix终极指南:让普通鼠标在macOS上媲美触控板的完整方案

Mac Mouse Fix终极指南:让普通鼠标在macOS上媲美触控板的完整方案

Mac Mouse Fix终极指南:让普通鼠标在macOS上媲美触控板的完整方案 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否曾经在macO…

2026/7/19 2:57:51 阅读更多 →
深入解析:C盘飘红?这篇超全清理指南,帮你高效释放百GB空间!

深入解析:C盘飘红?这篇超全清理指南,帮你高效释放百GB空间!

你的C盘是不是也飘红了。“C盘空间不足”是Windows用户常见的平台提示,该困难常伴随开机卡顿、软件异常退出甚至系统崩溃等现象,因此C盘的定期清理优化至关重要。多数用户在清理过程中面临两大痛点:担心误删系统核心文件导致故障,…

2026/7/19 2:57:51 阅读更多 →
深入解析AM62L DDR控制器:从时序配置到DQS振荡器高级调优

深入解析AM62L DDR控制器:从时序配置到DQS振荡器高级调优

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于TI AM62L这类高性能Sitara™处理器的项目中,内存子系统的稳定性和性能调优往往是决定项目成败的关键一环。很多工程师在拿到芯片和官方SDK后,能够快速搭建起基础运行环境,但一旦…

2026/7/19 2:57:51 阅读更多 →

最新新闻

电压力锅选购指南:核心参数解析与智能预约使用技巧

电压力锅选购指南:核心参数解析与智能预约使用技巧

1. 先搞清楚电压力锅到底解决了什么实际问题电压力锅不是普通高压锅的简单升级,它真正解决的是“时间规划”和“烹饪稳定性”两个核心痛点。普通高压锅需要人盯着火候和时间,而电压力锅通过程序化控制,把炖肉、煮粥、煲汤这些耗时长的菜变成了…

2026/7/19 4:59:02 阅读更多 →
C++实战问题集:编译链接、内存管理、多线程与STL陷阱解决方案

C++实战问题集:编译链接、内存管理、多线程与STL陷阱解决方案

1. 项目概述:为什么我们需要一份独立的C问题集?在C这条路上摸爬滚打了十几年,我见过太多相似的问题在不同的开发者身上反复出现。从初出茅庐的学生,到工作数年的工程师,再到偶尔需要维护遗留代码的专家,大家…

2026/7/19 4:59:02 阅读更多 →
Node.js核心价值与应用场景全解析

Node.js核心价值与应用场景全解析

1. Node.js的核心价值解析2009年诞生的Node.js彻底改变了JavaScript的运行方式,让这门原本只能在浏览器中执行的脚本语言获得了系统级能力。作为基于Chrome V8引擎的JavaScript运行时,Node.js最革命性的特性是采用了非阻塞I/O和事件驱动架构。这意味着它…

2026/7/19 4:59:02 阅读更多 →
AD0832芯片与FPGA接口设计及数据采集优化

AD0832芯片与FPGA接口设计及数据采集优化

1. AD0832芯片基础解析AD0832是National Semiconductor(现已被TI收购)推出的一款经典8位模数转换芯片,在嵌入式系统和FPGA数据采集领域有着广泛应用。这款芯片有几个关键特性让它成为入门级数据采集项目的理想选择:双通道输入&…

2026/7/19 4:59:02 阅读更多 →
Unity性能优化实战:从CPU/GPU瓶颈诊断到内存管理全解析

Unity性能优化实战:从CPU/GPU瓶颈诊断到内存管理全解析

1. 项目概述:为什么Unity性能优化是开发者的必修课做Unity开发这些年,我最大的感受是:一个项目能不能成,技术实现只是第一步,性能表现才是决定它能否“活下来”的关键。无论是上线后玩家抱怨的“手机发烫、卡成PPT”&a…

2026/7/19 4:59:02 阅读更多 →
C++编程实战宝典:从核心语法到数据结构算法的系统训练指南

C++编程实战宝典:从核心语法到数据结构算法的系统训练指南

1. 项目概述:一份值得收藏的C实战宝典最近在整理自己的技术资料库,翻到了一个压箱底的宝贝——一个名为“C编程练习题大全(带答案)”的开源项目。作为一名从C98时代一路摸爬滚打过来的老程序员,我深知对于初学者和希望巩固基础的开发者来说&a…

2026/7/19 4:58:01 阅读更多 →

日新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻