PXE无人值守

news2024/11/22 19:22:49

PXE介绍

预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

PXE过程

  1. 开机:计算机开机后,BIOS(基本输入输出系统)开始运行
    • BIOS 会检查计算机的硬件设备,包括网络接口卡(NIC)
  2. 网络请求:NIC 被初始化后,会发送一个 DHCP(动态主机配置协议)发现请求
    • 这个请求的目的是获取一个 IP 地址以及其他网络配置信息,例如子网掩码、网关和 DNS 服务器的地址
  3. DHCP 响应:网络中的 DHCP 服务器接收到请求后,会为计算机分配一个可用的 IP 地址,并提供其他相关的网络配置信息
    • 此外,DHCP 服务器还会向计算机提供有关 PXE 服务器的位置信息,例如 PXE 服务器的 IP 地址和引导文件名
  4. TFTP 连接:计算机使用从 DHCP 服务器获取到的 PXE 服务器信息,通过 TFTP(简单文件传输协议)与 PXE 服务器建立连接
    • 请求下载引导文件,这个文件可能包含启动操作系统所需的内核、初始化脚本等
  5. 引导文件下载:PXE 服务器响应请求,将引导文件传输给计算机
  6. 启动操作系统:计算机接收到引导文件后,开始加载并执行其中的指令,从而启动操作系统
  7. 后续配置:在操作系统启动过程中,可能会根据预定义的配置脚本进行进一步的设置和配置,例如安装特定的应用程序、配置网络设置等

PXE服务器

配置环境

虚拟机版本

hostnamectl
Operating System: Red Hat Enterprise Linux Server 7.9

启用图形界面

yum group install "Server with GUI" -y
systemctl set-default graphical.target
reboot

关闭SELinux

grubby --update-kernel ALL--args selinux=0

关闭防火墙

systemctl stop firewalld
systemctl mask firewalld

挂载系统镜像,配置好本地源仓库

mkdir /rhel7
mount /dev/cdrom /rhel7

保证网络通畅

配置DHCP分配IP给客户机

# 安装DHCP服务
yum install dhcp -y
# 复制配置文件
\cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# 修改配置文件
vim /etc/dhcp/dhcpd.conf
# 将第27,28行进行注释
# 将第36行后的全部删掉
 7 option domain-name "pxeauto.org"; # 客户端获取的域名
 8 option domain-name-servers 114.114.114.114; # 客户端获取的DNS

 32 subnet 172.25.254.0 netmask 255.255.255.0 { # 网络位 掩码
 33   range 172.25.254.30 172.25.254.40; # 地址池
 34   option routers 172.25.254.2; # 网关
 35   next-server 172.25.254.100; # TFTP服务器的IP
 36   filename "pxelinux.0"; # 获取的文件

# 重启服务
systemctl enable --now dhcpd

TFTP主机

# 安装TFTP(共享文件)
yum install tftp-server.x86_64 -y
# 启动TFTP服务
systemctl enable --now tftp
# 创建目录
mkdir -p /var/lib/tftpboot/pxelinux.cfg
# 复制、创建文件
cp /rhel7/isolinux/* /var/lib/tftpboot
cp /rhel7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
# 编写/var/lib/tftpboot/pxelinux.cfg/default文件
 61 label linux
 62   menu label ^Install Red Hat Enterprise Linux 7.9
 # 启动时默认选择
 63   menu default 
 64   kernel vmlinuz
 # 从HTTP主机上获取系统安装源和设置配置文件
 65   append initrd=initrd.img repo=http://172.25.254.100/rhel7 ks=http://172.25.254.100/ks.cfg quiet
 66 
 67 label check
 68   menu label Test this ^media & install Red Hat Enterprise Linux 7.9
 69   kernel vmlinuz
 70   append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-7.9\x20Server.x86_64 rd.live.check quiet

# 启动TFTP服务
systemctl enable --now tftp

利用kickstart生成ks.cfg文件

# 安装KickStart
yum install system-config-kickstart -y
# 图形化启动KickStart
system-config-kickstart

给root密码加密:是否在创建出的文件(ks.cfg)中加密ROOT密码
在这里插入图片描述
HTTP服务器:/var/lib/tftpboot/pxelinux.cfg/default中65行的服务器
HTTP目录:/var/lib/tftpboot/pxelinux.cfg/default中65行的repo
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

根分区选择 使用磁盘全部未用空间
在这里插入图片描述

根据不同系统对网卡的命名,填写对应的网卡名

在这里插入图片描述
在这里插入图片描述

根据个人需求选择是否安装图形界面
在这里插入图片描述
由于软件包选择不能从kick start中进行选择,需要从生成的ks.cfg文件中去添加

设置安装后脚本,观察是否遵循脚本安装,用于验证
在这里插入图片描述
快捷键:CTRL + S
在这里插入图片描述

# 查看是否保存成功,有内容则成功
tail /root/ks.cfg
# 修改ks.cfg
vim /root/ks.cfg
# 第40行后插入
%packages
@base
httpd
%end

# 检测语法是否有误
ksvalidator ks.cfg

搭建apache共享镜像

# 安装apache
yum install httpd-2.4.6-95.el7.x86_64 -y
# 创建镜像链接
ln -s /rhel7/ /var/www/html/
# 移动文件
cp /root/ks.cfg /var/www/html/
# 启动服务
systemctl enable --now httpd
# 检查是否能访问到ks.cfg和镜像资源

在这里插入图片描述在这里插入图片描述

安装PxeLinux

# 安装PxeLinux
yum install syslinux.x86_64 -y
# 移动文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
# 通过/usr/share/doc/syslinux-4.05/pxelinux.txt帮助文档
# 可知PxeLinux将引导客户机访问var/lib/tftpboot/pxelinux.cfg/default文件

客户机

实现无盘安装RHEL7.9

CTRL + N 新建虚拟机,以下设置需要注意,其他设置随意
关闭加速 3D 图形
在这里插入图片描述移除光盘,模拟无盘
在这里插入图片描述
点击编辑,点击虚拟网络编辑器,点击更改设置
在这里插入图片描述选中VMnet8,取消勾选 本地 DHCP 服务,然后点击确定
在这里插入图片描述
点击绿色旁的倒三角,选择打开电源时进入固件在这里插入图片描述通过左右键移动到Boot,通过Shift + = 键 选择 网络启动
在这里插入图片描述通过左右键,选中Exit 两次回车,进行安装系统,其中各个服务器不能关机

选中第一个,回车开始进行安装
在这里插入图片描述

进入此界面,即认为开始自动安装
在这里插入图片描述
期间,会在这里卡很久
在这里插入图片描述等到虚拟机再次进入页面,即可将虚拟机关机
在这里插入图片描述

点击绿色旁的倒三角,选择 打开电源时进入固件
通过左右键移动到Boot,通过Shift + = 键 选择 硬盘启动
通过左右键,选中Exit 两次回车,进行 安装系统
在这里插入图片描述等待一段时间,即可安装成功
在这里插入图片描述

安装后脚本同样执行成功

mkdir -p /rhel7
echo mount /dev/cdrom /rhel7 >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983845.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

支持跨设备操作,自带横向霍尔感应滚轮,雷柏MT760系列鼠标上手

日常工作中,确实很需要一只专为商务办公设计的鼠标,这类鼠标通常会有更低调的外观,同时具备静音按键之类的设计,能够为工作带来更多的方便。我最近上手了雷柏MT760和MT760 Mini。这两款鼠标虽然尺寸不同,但共享了相同的…

12.upload-labs靶场通关详解(11~17)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、Pass11(白名单:get00截断)2、Pass12(白名单:post00截断)3、Pass13(图片马绕过…

封装组件之使用vue3封装input框并显示联想数据功能

新建Input.vue 定义input框及相关事件 <inputtype"text"v-model"query"input"onInput"blur"hideSuggestions"focus"onInput"/> input输入事件、blur失去焦点、focus获取焦点 //当输入内容时才显示ul内容 const onI…

优化if-else的11种方案

优雅永不过时&#xff01; 1. 使用早返回&#xff08;Early Return&#xff09;&#xff1a;尽可能早地返回&#xff0c;避免嵌套的if-else。 优化前&#xff1a; public class NoEarlyReturnExample {public boolean hasPositiveNumber(int[] numbers) {boolean foundPositi…

自然语言常见面试题及答案(21~40)

Reply&#xff1a;面试题 获取资料下载 文章目录 21. 介绍一下信息抽取在自然语言处理中的重要性和实现方式。22. 谈谈你对预训练语言模型&#xff08;如 BERT、GPT 等&#xff09;的认识和应用经验。23. 简述一下情感分析的流程和方法。24. 对于机器翻译任务&#xff0c;你了…

自旋锁(Spinlock):轻量级锁机制

自旋锁&#xff08;Spinlock&#xff09;&#xff1a;轻量级锁机制 1、什么是自旋锁&#xff1f;2、优势3、局限4、实现与应用 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java并发编程中&#xff0c;自旋锁以其独特的非阻塞特性脱颖而…

WordPress原创插件:Category-id-list分类ID显示查看

WordPress原创插件&#xff1a;Category-id-list分类ID显示查看 插件设置位置在工具栏

STL | string C++底层实现

目录 前言 总代码 string结构框架搭建 三个成员 构造 析构 拷贝构造、赋值重载 和 swap size、c_str、operator[ ] string迭代器的简单实现 扩容 reserve insert&#xff08;插入字符和字符串&#xff09; 单字符 字符串 push_back、append、 erase 删除 find查找 …

C++计算字符串中大写、小写、数字、空格、其他字符的个数

#include <iostream> #include <array> using namespace std;int main() {cout << "请输入一个字符串:";string str;getline(cin,str);int daxie0,xiaoxie0,num0,space0,other0;int lenstr.size();for(int i0;i<len;i){if(str[i]>A&&…

Oracle认证1Z0-071线上考试注意事项

目录 一、前言二、回顾过往战绩第一次 裸考&#x1f412;第二次 背题库硬考&#xff01;&#x1f412;第三次 软件卡住&#xff0c;寄&#xff01;&#x1f648;第四次 汇总纠错&#xff0c;通过&#xff01;&#x1f31a; 三、考试流程四、考试注意事项1. 是否需要科学上网2. …

vue(vue2和vue3)项目打包去除console.log

1.Vue2去除 module.exports { configureWebpack: (config) > {// 取消console打印config.optimization.minimizer[0].options.terserOptions.compress.drop_console truereturn {name: "项目名称",resolve: {alias: {"": resolve("src")}}…

【八股文】MySQL

1.char 和 varchar的区别 char是定长的&#xff0c;varchar是可变的字符串char适合存长度差不多的或者较短的&#xff0c;例如手机号&#xff0c;身份证&#xff0c;MD4加密算法。varchar用来存备注信息&#xff0c;用户昵称等不确定长度的信息。 2.Decimal、double和float的区…

Mybatis学习-day18

Mybatis学习-day18 数据持久化是将内存中的数据模型转换为存储模型&#xff0c;以及将存储模型转换为内存中数据模型的统称。例如&#xff0c;文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作。 MyBatis 支持定制化 SQL、存储过程以及高级映射&#xff0c…

Java | Leetcode Java题解之第324题摆动排序II

题目&#xff1a; 题解&#xff1a; class Solution {Random random new Random();public void wiggleSort(int[] nums) {int n nums.length;int x (n 1) / 2;int mid x - 1;int target findKthLargest(nums, n - mid);for (int k 0, i 0, j n - 1; k < j; k) {if…

4章3节:缺失值的处理(上)

在医学科研中&#xff0c;由于失访、无应答或记录不清等各种原因&#xff0c;经常会遇到数据缺失的问题。本文将深入探讨医学科研中数据缺失的成因、分类、影响以及应对方法&#xff0c;结合R语言的实际应用&#xff0c;为医学研究人员提供全面的解决方案。 一、认识缺失数据 …

一款开源且免费的系统清理工具,绿色免安装

BleachBit是一款开源且免费的系统清理工具&#xff0c;最初设计用于Linux系统&#xff0c;但现在已经支持Windows。该工具的主要功能包括清理缓存、删除临时文件、清除浏览器历史记录、删除cookies和日志文件等。此外&#xff0c;它还能够安全地擦除文件内容&#xff0c;确保数…

【Java数据结构】---泛型

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 &#xff0c;Java 欢迎大家访问~ 创作不易&#xff0c;大佬们点赞鼓励下吧~ 文章目录 包装类装箱和拆箱泛型泛型…

HarmonyOS应用开发知识地图

HarmonyOS 应用开发旅程 HarmonyOS 应用开发旅程 PS&#xff1a;Xmind原文件可以直接跳转官方具体文档地址&#xff0c;如需要原文件请联系&#xff1a;DYZZ198 01.准备与学习 学习 HarmonyOS 的基本概念和架构,搭建好所需的开发工具和环境,了解开发规范和最佳实践 了解 H…

C语言菜鸟入门·数据结构·链表超详细解析

目录 1. 单链表 1.1 什么是单链表 1.1.1 不带头节点的单链表 1.1.2 带头结点的单链表 1.2 单链表的插入 1.2.1 按位序插入 &#xff08;1&#xff09;带头结点 &#xff08;2&#xff09;不带头结点 1.2.2 指定结点的后插操作 1.2.3 指定结点的前插操作 1.3 …

【HarmonyOS NEXT星河版开发学习】小型测试案例04-个人中心顶部导航

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;暂未发布&#xff09; 前言 主轴对齐方式在鸿蒙开发中非常重要&#xff0c;通过合理选择 justifyContent 和 alignItems 属性&#xff0c;开发者可以精确控制 Fle…