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自动装机无人值守 的相关文章

  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • 来自守护程序的错误响应:加入会话密钥环:创建会话密钥:超出磁盘配额

    我尝试在我的服务器上安装 docker 使用本教程 https docs docker com install linux docker ce ubuntu 我想远程运行 docker 镜像并使用 portainer Web 界面来管理一切
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它

随机推荐

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

    文章目录 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服务器为客户机分配地址 指定引导文件位置 服务器