linux系统PXE自动装机无人值守

2023-11-09

PXE高效批量网络装机

PXE服务允许客户机通过网络从远程服务器下载引导镜像,并安装文件或整个操作系统

必须满足的前提条件:
客户机的网卡支持PXE协议,且主板支持网络引导
网络中有一台DHCP服务器为客户机分配地址,指定引导文件位置
服务器通过TFTP提供引导镜像文件

搭建PXE远程安装服务器
此次PXE服务器集成了CentOS7安装源,TFTP服务,DHCP服务,能过向客户机裸机发送PXE引导程序,Linux内核,启动菜单等数据。
步骤大纲
准备centos安装源
安装并启用TFTP服务
准备linux内核,初始化镜像文件
PXE引导程序,启动菜单文件
安装并启用DHCP服务

① 准备centos安装源
在服务上部署以个yum软件仓库(ftp,http,file三种方式)
mkdir /var/ftp/centos7				//(创建yum仓库目录)
mount /dev/sr0 /var/ftp/centos7		//(临时)
systemctl status vsftpd				//(启动ftp服务)

② 安装并启用TFTP服务	
TFTP服务是由tftp-server提供,配置文件为/etc/xinetd.d/tftp,配置时只需将“disable=yes”改为“disable=no”然后启动
yum -y install tftp-server.x86_64		//安装TFTP服务
vim /etc/xinetd.d/tftp				//进入配置文件

protocol               = udp		//udp传输协议
wait                   = yes	
server_args             = -s /var/lib/tftpboot	//TFTP根目录
disable                 = no			
③ 准备linux内核,初始化镜像文件
用于PXE网络安装的linux内核,初始化镜像文件可以从centos系统光盘获得。分别为vmlinuz和initrd.img,位于文件夹“images/pxeboot”下。将两文件复制到tftp根目录下(/var/lib/tftpboot)
cd var/ftp/centos7/images/pxeboot		//切换到images/pxeboot目录
cp vmlinuz initrd.img /var/lib/tftpboot	//复制到tftp根目录
④ 准备PXE引导程序,启动菜单文件
安装syslinux,pxelinux.0为引导程序,复制到tftp根目录
yum -y install syslinux					//安装引导程序软件包
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot	 //复制引导程序到tftp

启动菜单用来指导客户机的引导过程,默认的启动菜单文件为default,应放置在tftp根目录(/var/lib/tftpboot)的pxelinux.cfg下。都需要自己创建
mkdir /var/lib/tftpboot/pxelinux.cfg		//创建pxelinux.cfg目录
vim /var/lib/tftpboot/pxelinux.cfg/default	//创建并配置default文件

default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img repo=ftp://192.168.11.136/centos7 
systemctl restart tftp						//重启tftp服务

⑤ 安装并启用DHCP服务
yum -y install dhcp			//安装DHCP服务
vim /etc/dhcp/dhcpd.con	//进入dhcp配置文件

subnet 192.168.11.0 netmask 255.255.255.0 {
                range 192.168.11.100 192.168.11.200;
                option routers 192.168.11.1;
                next-server 192.168.11.136;	//指定TFTP服务器地址
                filename "pxelinux.0";			//指定PXE引导文件名
}
systemctl start dhcpd			//启动DHCP服务

验证PXE网络安装
搭建好PXE远程安装服务器后,就可以测试客户机进行安装了。
进入BIOS设置,将“Boot First”设置为“NETWORK”或“LAN”然后重启

在提示字串“boot”后
直接按Eenter建(或执行“auto”命令)将会进入图形安装
执行linux text 进入文本安装
执行linux rescue进入救援模式

**

实现Kicks tart无人值守安装

**
PXE远程安装的方法,安装介质不再受限光盘,移动硬盘。但在安装过程仍需手动一些操作。加上kick start工具配置应答文件,就能自动完成安装中的各种设置。
准备安装应答文件(有两种方法)
创建应答文件,预先定义好各种安装设置
① 可以将root/anaconda-ks.cfg 复制到/var/ftp并命名为ks.cfg
② 安装system-config-kickstart工具,通过图形化界面配置应答文件

基本步骤:(基于PXE的配置)
(1)安装system-config-kickstart工具
yum -y install system-config-kickstart
(2)修改本地yum源CentOS-Media.repo仓库标识为develoment
vim /etc/yum.repos.d/CentOS-Media.repo //进入文件配置

mount /dev/sr0 /media/cdrom //挂载镜像
yum repolist //查看yum源
system-config-kickstart //启动工具

到这儿就进入了图形化页面配置,配置完后将文件保存文件名为ks.cfg
将文件拷贝到/var/ftp下

(3)配置启动菜单
vim var/lib/tftpboot/pxelinux.cfg/default //进入文件配置
ks=ftp://192.168.11.133/ks.cfg //指定ks.cfg路径
(4)启动dhcpd,vsftpd,tftp服务,关闭防火墙

bye——bye

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux系统PXE自动装机无人值守 的相关文章

  • 无法在 Linux 中阻止从命名管道 (FIFO) 读取

    很奇怪 我似乎无法完成这项工作 这是我的架构 我有一个命名管道 它将在永远运行 root读取器进程和多个应用程序编写器进程 读者进程必须是blocking当作家们在nonblocking 因此 这就是我在阅读器进程中所做的 该进程将运行ro
  • 如果从 Java 启动,子进程将忽略 SIGQUIT

    举这个简单的例子 public class Main public static void main String args throws Exception Runtime getRuntime exec sleep 1000 This
  • Python 在打开套接字时可以选择哪个网络适配器吗?

    运行 python 应用程序的目标计算机将具有三个可用的网络接口 一般来说 所有三个网络都会有很大不同 但是三个网络中的两个可能位于相似的网络上 在下面的示例中 我无法控制 ETH 2 上的目标地址 因为它是预先配置的系统 因此我被迫以编程
  • 修改文本文件而不读入内存

    我试图找出一种修改文本文件 特别是删除特定行 的方法 而无需将文件的大部分读取到内存中或重写整个文件 这里讨论的是大于主内存约 15 50 Gigs 的文件 附 我正在使用Linux 你不会逃避创建一个新文件 所以就硬着头皮去做吧 使用gr
  • 如何在 ssh 命令中使用长输入参数正确转义 qsub 命令?

    我有一个复杂的 qsub 命令可以远程运行 PROJECT NAME TEXT TEST PROJECT PACK ORGANIZATION source organization MY ORGANIZATION CONTACT NAME
  • 编写 AMD64 SysV 程序集时使用哪些寄存器作为临时寄存器?

    我正在使用实现一个功能cpuid根据 AMD64 SysV ABI 进行组装 我需要在函数本身中使用 2 个临时寄存器 第一个用于累积返回值 第二个用作计数器 我的功能目前如下所示 zero argument function some c
  • Linux下对多个文件进行排序

    我有多个 很多 文件 每个都非常大 file0 txt file1 txt file2 txt 我不想将它们合并到一个文件中 因为生成的文件将超过 10 场演出 每个文件中的每一行都包含一个 40 字节的字符串 现在字符串的排序相当好 大约
  • Bash:更新文件中的变量

    我知道这是一个简单的答案 在找到答案之前我可能可以继续在谷歌上进行挖掘 但我的日程很紧 我希望能得到一个轻松的答复 我需要在安装时更新 ifcfg eth0 中的变量 换句话说 这就是需要发生的事情 以下变量需要更改 ONBOOT no B
  • 将管道输入转储到文件的简单方法是什么? (Linux)

    我正在寻找一个小 shell 脚本 它可以将任何内容通过管道传输到其中 并将其转储到文件中 用于电子邮件调试目的 有任何想法吗 unix 命令 tee 可以做到这一点 man tee
  • 为什么我的 Linux 应用程序引入了错误的 .so 库?

    我正在构建一个使用 NetCDF C 库的应用程序 并且 NetCDF 正在引入 HDF 4 库 然而 它正在拉动wrongHDF 4 库 我的应用程序的链接方式如下 apps1 intel bin icpc gxx name apps1
  • 如何尽可能快地输出固定缓冲区?

    示例代码 include
  • x86-64 上这个语句有什么问题?

    该函数的目的是获取堆栈的起始地址 unsigned long find start void asm movq rsp eax 当我编译它时 出现错误 Error suffix or operands invalid for movq mo
  • 您可以bind()和connect() UDP连接的两端吗

    我正在编写一个点对点消息队列系统 它必须能够通过 UDP 运行 我可以任意选择一侧或另一侧作为 服务器 但这似乎不太正确 因为两端都从另一端发送和接收相同类型的数据 是否可以绑定 和连接 两端 以便它们只能彼此发送 接收 这似乎是一种非常对
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一
  • 即使退出命令后,Shell 脚本仍继续运行

    我的shell脚本如下所示 bin bash Make sure only root can run our script EUID ne 0 echo This script must be run as root 1 gt 2 exit
  • PHP exec - 检查是否启用或禁用

    有没有办法检查 php 脚本是否exec 在服务器上启用还是禁用 这将检查该功能是否确实有效 权限 权利等 if exec echo EXEC EXEC echo exec works
  • POSIX:FreeBSD 与 Linux 中的管道系统调用

    在 Linux 2 6 35 22 generic 中 man pipe指出 pipeline 创建一个管道 一个可用于进程间通信的单向数据通道 在 FreeBSD 6 3 RELEASE p5 中 man pipe指出 pipeline
  • 查找系统日志最大消息长度

    大多数 Unix 程序员都会习惯由syslog h 并且许多实现 例如 glibc 对发送给它的 syslog 消息的大小没有真正的限制 但通常对侦听的应用程序有限制 dev log 我想知道是否有人知道如何找到系统日志的最大消息大小 或者
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该
  • Kubernetes Pod 已终止 - 退出代码 137

    我需要一些关于 k8s 1 14 和在其上运行 gitlab 管道所面临的问题的建议 许多作业都会抛出退出代码 137 错误 我发现这意味着容器突然终止 集群信息 库伯内特版本 1 14 使用的云 AWS EKS 节点 C5 4xLarge

随机推荐

  • 解决图像目标检测两框重叠问题

    文章目录 1 问题现象 2 解决办法 3 Non Maximum Suppression 原理 3 1 什么是非极大值抑制 3 2 为什么要用非极大值抑制 3 3 如何使用非极大值抑制 3 4 效果 4 参考资料 1 问题现象 使用yolo
  • SpringBoot注解详解:从核心到Web,从数据到测试,一网打尽

    总结的了平时学习springboot常用的一些注解 方便以后开发时可以阅览回忆 springboot的常用注解可以分为以下几类 核心注解 这些注解是springboot的基础 用于启动 配置和管理springboot应用 Web MVC注解
  • 使用SurfaceView加载多张大分辨率图片做帧动画,解决OOM问题

    项目需求 动态背景 需求很简单 只是用帧动画做一个动态的背景而已 但若是70多张图片都是1920 1080 一张485k的话 传统意义上的帧动画就很难实现了 往往加载10张就开始OOM 一般来说 常用的实现动态背景的有效方式有三种 视频 果
  • JVM系列-第12章-垃圾回收器

    垃圾回收器 GC 分类与性能指标 垃圾回收器概述 垃圾收集器没有在规范中进行过多的规定 可以由不同的厂商 不同版本的JVM来实现 由于JDK的版本处于高速迭代过程中 因此Java发展至今已经衍生了众多的GC版本 从不同角度分析垃圾收集器 可
  • Android 腾讯Bugly的应用升级&热更新

    经过去年的九月份至现在 发现自己很久没有写过比较好的文章了 今天就趁着通宵的劲 写一下对腾讯Bugly的应用升级 热更新的理解 希望对新手有所帮助 有兴趣的可以了解下 没兴趣的也可以看完之后吐槽我 Bugly 文档中心 https bugl
  • java 栈的使用

    Stack的基本使用 初始化 Stack stack new Stack 判断是否为空 stack empty 取栈顶值 不出栈 stack peek 进栈 stack push Object 出栈 stack pop 实例 public
  • USB摄像头接树莓派里GPIO是算输入还是输出

    USB摄像头接树莓派里GPIO是算输入还是输出 从程序可以看出来吗
  • Tkinter 组件详解(十一):Text

    Text 文本 组件用于显示和处理多行文本 在 Tkinter 的所有组件中 Text 组件显得异常强大和灵活 适用于多种任务 虽然该组件的主要目的是显示多行文本 但它常常也被用于作为简单的文本编辑器和网页浏览器使用 何时使用 Text 组
  • Linux安装elasticsearch(5.5.2)、head插件以及ik分词器

    Linux里安装elasticsearch 首先需要安装JDK 对于elasticsearch5版本以上的一般使用JDK1 8以上的版本 一 安装JDK 首先检查Linux系统是否安装过jdk 如果安装的是1 8以下的版本 可以删除再安装新
  • Grafana配置https

    目录 1 Yum安装Grafana 2 生成自签名证书 3 Grafana配置https使用自签名证书 4 浏览器访问测试 5 在终端查看连接情况 1 Yum安装Grafana 配置grafana yum源安装grafana最新版本 8 0
  • 51信用卡管家app产品需求文档

    文章通过使用 体验 研究等方式倒推51信用卡管家APP 通过使用axure撰写PRD文档 51信用卡业务很多 文章只撰写部分核心功能点 另外 51信用卡通过和第三方合作 开展了账单导入 办信用卡 借款 投资理财等业务 文中如有相关错误 望指
  • maven3(https://maven.aliyun.com/nexus/content/groups/public)‘ to redirect to a secure protocol (like

    Android Flutter Gradle allowInsecureProtocol 错误 A problem occurred configuring root project example gt Could not resolve
  • Postman :Tests(后置脚本)提取请求Headers的参数值

    代码详解 一 变量 Content Type 存储获取数据 var Content Type pm request headers get Content Type 二 打印提取的请求 Headers 的 Content Type 字段值
  • vue增加数据导出excel(vue-json-excel)

    1 下载安装vue json excel 相当于命令npm install save vue json excel 或者命令npm install vue json excel S 2 创建js文件引入并全局注册标签 import Vue
  • Python __name__与“__main__“是什么意思?

    前言 模块文件的底部 我们经常看见 name 与 main 的代码 如下 if name main pass 而 name main 的结果可能是True 也可能是False 这是为什么呢 name 与 main 分别是什么 name 是当
  • audio接线图解_5.1家庭影院布线之音响如何接线(图文教程)

    实物拍图 内外成色新净 二个光纤 一个同轴 国 际 电压 220V 原装安桥TX SR501功放 马来西亚产 无任何修摩史 各功能完好 功放机用料足 带1组同轴 两组光纤输入 A B两组主音箱切换 耳机输出等等 功放各个频段很平衡 低频不浑
  • Maven 学习笔记十八:Maven仓库(maven仓库介绍)

    Maven仓库 maven仓库介绍 1 何为Maven仓库 maven可以在某个位置统一存储所有maven项目共享的构件 这个统一的位置就是仓库 实际的Maven项目将不会各自存储其依赖文件 它们只需要声明这些依赖的坐标 在需要的时候 例如
  • java8 获取set值_Java8 中有趣酷炫的小技巧

    执行注释 大多数开发人员认为 注释 永远不会在程序中执行 并用于帮助代码理解 但是 它们却 可以被执行 public class Main public static void main String args System out pri
  • React小案例: 点击按钮,数字加1

    大家好 我是梅巴哥er 本次案例较为简单 但是有个核心思想 就是要拿到数字这个值 要想到用e target value 代码如下 import React Component from react export default class
  • linux系统PXE自动装机无人值守

    PXE高效批量网络装机 PXE服务允许客户机通过网络从远程服务器下载引导镜像 并安装文件或整个操作系统 必须满足的前提条件 客户机的网卡支持PXE协议 且主板支持网络引导 网络中有一台DHCP服务器为客户机分配地址 指定引导文件位置 服务器