【Linux网络】从原理到实操,感受PXE无人值守自动化高效批量网络安装系统

一、PXE网络批量装机的介绍

1、常见的三种系统安装方式

2、回顾系统安装的过程,了解系统安装的必要条件

3、什么是pxe

4、搭建pxe的原理

5、Linux的光盘镜像中的isolinux中的相关文件学习

二、关于实现PXE无人值守装机的四大文件与五个软件的对应关系详解

5个程序的使用原因:

 1、DHCP服务器:

2、TFTP服务器:

3、syslinux程序:

4、FTP服务器:

5、kickstart程序:

三、实操PXE批量安装详解

做任何动作之前先关闭selinux和防火墙,以及安装五个软件

第一步:dhcp服务器搭建

第二步:准备好vsftpd服务,挂载光盘镜像

第三步:开启tftp开机自启,配置好tftp传输的文件,内核和驱动

第四步:找到grub小程序——也就是syslinux提供的pxelinux.0程序

第五步:手写grub.cfg配置文件——default文件

第六步:生成ks.cfg配置文件

第七步:启动所有服务,见证奇迹

第八步:实现自动化装机过程

四、总结


一、PXE网络批量装机的介绍

1、常见的三种系统安装方式

第一种:u启动安装,在优盘中下载相关的安装系统和镜像文件,优盘插入即可安装,将想要的操作系统安装进自己的硬盘(需要将优盘设置u启动或者把镜像烧录进去)

第二种:光驱安装,将相关的安装系统镜像放入光盘,插入电脑服务器中,即可按照引导进行装机,将操作系统安装进自己的硬盘

第三种:网卡安装,需要通过网络下载,在网上的某个服务器上去下载相关镜像系统,来进行安装

2、回顾系统安装的过程,了解系统安装的必要条件

这是硬盘启动的过程:开机自检(bios主板)——mbr引导(主要是去找grub菜单)——找到grub配置文件(找到内核的位置)——加载内核到内存——初始化启动

光驱安装系统的过程:bios引导选择光驱——boot.cat引导(通过isolinux.bin程序找到配置文件)——读取isolinux.cfg配置文件知道内核和光驱的位置——加载光驱里面的内核vmlinuz和驱动initrd.img到内存——再通过光驱里面找到各种初始化程序安装包,启动进程并开机

那么我们想要裸机通过网络来能够完成这样的过程,那么得有哪些必要条件呢?

①裸机主板需要支持网络引导(现在大多数的服务器主机都支持,需要在bios设置中可以允许network或者lan启动)

②需要有一个引导程序能找到grub配置文件(类似mbr引导)

③需要有一个类似grub配置文件指引找到内核(类似于grub.cfg)

④需要有vmlinuz内核程序和initrd.img驱动,加载到内存中(类似于vmlinuz-3.10.0-693.el7.x86_64和initramfs-3.10.0-693.el7.x86_64.img)

3、什么是pxe

PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

pxe是通过网卡引导启动需要的条件:

1.BIOS支持

2.网卡支持(现在基本都已支持)

3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置,网卡自带DHCP功能,dhcp 指明分配的ip地址

4、搭建pxe的原理

第一步网卡需要查找相关的dhcp服务器,来获取ip地址和时间;
第二步dhcp服务器,通过offer报文传给裸机客户端,不仅提供了ip地址,还提供了引导程序(boot loader,这里是pxelinux.0)的地址,以及tftp-server的地址(指向dhcp服务器自己);
第三步客户机通过tftp服务器获取引导程序pxelinux.0,将其加载到内存中;
第四步引导程序pxelinux.0通过tftp服务器获取pxelinux.cfg中的default配置文件;
第五步配置文件指明内核和驱动的位置,通过tftp服务器获取vmlinuz和initrd.img;
最后启动内核;

5、Linux的光盘镜像中的isolinux中的相关文件学习

boot.cat相当于grub的第一阶段 
isolinux.bin光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件(相当于boot里面的grub.cfg)
vesamenu.c32是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单(指明背景图位置)
memtest内存检测程序
splash.png光盘启动菜单界面的背景图(这是一张图片)
vmlinuz是内核映像
initrd.imgramfs文件(精简版的linux系统,文件系统驱动等)

二、关于实现PXE无人值守装机的四大文件与五个软件的对应关系详解

TFTP服务器的家目录/var/lib/tftpboot的四大文件一定是这样,标点符号都要一模一样:

 ​​​​​​

5个程序的使用原因:

 1、DHCP服务器:

在这里DHCP服务器是用来动态分配客户端ip地址以及指明TFTP服务器的ip地址和引导程序“pxelinux.0”的位置

DHCP服务端是udp的67端口,客户端是udp的68端口

2、TFTP服务器:

这是网卡自带的功能,基于udp协议实现客户机和服务端之间进行简单的文件传输协议,适用于小型文件传输。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

这里的TFTP服务器是用来提供传输四大文件,一共52M

3、syslinux程序:

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

这里的syslinux提供pxelinux.0程序

4、FTP服务器(使用HTTP也是一样的功能):

TFTP用来传输小文件,这里的FTP用来传输大文件,提供镜像和安装包,以及存放传输ks.cfg文件,能够让系统自动化安装完以后重启并开机直接使用

5、kickstart程序:

通过图形化配置记录想要安装的方式,生成ks.cfg配置文件,放入在FTP服务器中(/var/ftp)

三、实操PXE批量安装详解

做任何动作之前先关闭selinux和防火墙,以及安装五个软件

第一步:dhcp服务器搭建

 40 subnet 192.168.20.0 netmask 255.255.255.0 {
 41   range 192.168.20.80 192.168.20.100;
 42   option routers 192.168.20.2;
 43  next-server 192.168.20.18;
 44  filename "pxelinux.0";
 45 }

 

第二步:准备好vsftpd服务,挂载光盘镜像

[root@localhost isolinux]#cd /var/ftp/
[root@localhost ftp]#ls
ks.cfg  pub
[root@localhost ftp]#mkdir centos7
[root@localhost ftp]#mount /dev/sr0 centos7/

第三步:开启tftp开机自启,配置好tftp传输的文件,内核和驱动

[root@localhost boot]#rpm -qc tftp-server 
/etc/xinetd.d/tftp
[root@localhost boot]#vim /etc/xinetd.d/tftp
 14         disable                 = no  ##改为no,改为不关闭

[root@localhost isolinux]#ll -h
总用量 53M
-r--r--r-- 1 root root 2.0K 9月   6 2017 boot.cat
-rw-r--r-- 1 root root   84 9月   5 2017 boot.msg
-rw-r--r-- 1 root root  281 9月   5 2017 grub.conf
-rw-r--r-- 1 root root  47M 9月   5 2017 initrd.img
-rw-r--r-- 1 root root  24K 9月   5 2017 isolinux.bin
-rw-r--r-- 1 root root 3.0K 9月   5 2017 isolinux.cfg
-rw-r--r-- 1 root root 187K 11月  6 2016 memtest
-rw-r--r-- 1 root root  186 10月  1 2015 splash.png
-r--r--r-- 1 root root 2.2K 9月   6 2017 TRANS.TBL
-rw-r--r-- 1 root root 150K 11月  6 2016 vesamenu.c32
-rwxr-xr-x 1 root root 5.7M 8月  23 2017 vmlinuz
[root@localhost isolinux]#cp initrd.img vmlinuz /var/lib/tftpboot/

第四步:找到grub小程序——也就是syslinux提供的pxelinux.0程序

第五步:手写grub.cfg配置文件——default文件

第六步:生成ks.cfg配置文件

 

 

 

 

第七步:启动所有服务,见证奇迹

[root@localhost centos7]#systemctl restart dhcpd
[root@localhost ftp]#systemctl restart tftp
[root@localhost ftp]#systemctl restart vsftpd

第八步:实现自动化装机过程

 

 

四、总结

这一章有很多关于硬件的知识点,如果不理解就先放弃,明白pxe和kickstart的原理即可。

还有个优化方向:可以直接将DNS也一起放在DHCP的服务器上,让其自动获取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV图像处理、计算机视觉实战应用

OpenCV图像处理、计算机视觉实战应用 专栏简介一、基于差异模型模板匹配缺陷检测二、基于NCC多角度多目标匹配三、基于zxing多二维码识别四、基于tesseract OCR字符识别 专栏简介 基于OpenCV C分享一些图像处理、计算机视觉实战项目。不定期持续更新,干货满满&…

vulnhub靶机Momentum

下载地址:https://download.vulnhub.com/momentum/Momentum.ova 主机发现 目标192.168.21.129 端口扫描 端口版本扫描 漏洞扫描 扫出来点目录简单看看 发现js里面有一点东西 这里面告诉了我们了web文件有id传值,而且有aes加密还有密钥 跟二没有啥区别&…

庖丁解牛:NIO核心概念与机制详解

文章目录 Pre输入/输出Why NIO流与块的比较通道和缓冲区概述什么是缓冲区?缓冲区类型什么是通道?通道类型 NIO 中的读和写概述Demo : 从文件中读取1. 从FileInputStream中获取Channel2. 创建ByteBuffer缓冲区3. 将数据从Channle读取到Buffer中 Demo : 写…

Redis维护缓存的方案选择

Redis中间件常常被用作缓存,而当使用了缓存的时候,缓存中数据的维护,往往是需要重点关注的,尤其是重点考虑的是数据一致性问题。以下是维护数据库缓存的一些常用方案。 1、先删除缓存,再更新数据库 导致数据不一致的…

LLM大模型4位量化实战【GPTQ】

权重量化方面的最新进展使我们能够在消费类硬件上运行大量大型语言模型,例如 RTX 3090 GPU 上的 LLaMA-30B 模型。 这要归功于性能下降最小的新型 4 位量化技术,例如 GPTQ、GGML 和 NF4。 在上一篇文章中,我们介绍了简单的 8 位量化技术和出…

算法通关村第十关-青铜挑战快速排序

大家好我是苏麟,今天带来快速排序 . 快速排序 单边快速排序(lomuto 洛穆托分区方案) 单边循环 (lomuto分区) 要点 : 选择最右侧元素作为基准点j 找比基准点小的,i 找比基准点大的,一旦找到,二者进行交换。 交换时机: 找到小的&#xff0c…

魔术《4 Kings 折纸》的三重境界(四)——魔术效果的突破

‍ ‍早点关注我,精彩不错过! 在前三篇文章里,我们解释清楚了分别基于奇偶性,集合和群论来解释《4 Kings 折纸》这个魔术的过程,详情请戳: 魔术《4 Kings 折纸》的三重境界(三)——群…

【限时免费】20天拿下华为OD笔试之 【前缀和】2023B-最大子矩阵和【欧弟算法】全网注释最详细分类最全的华为OD真题题解

文章目录 题目描述与示例题目描述输入描述输出描述示例输入输出说明 解题思路如何表示一个子矩阵暴力解法二维前缀和优化二维前缀和矩阵的构建 代码解法一:二维前缀和PythonJavaC时空复杂度 解法二:暴力解法(不推荐)PythonJavaC时…

Springboot 项目启动类放置位置

文章目录 Springboot 项目启动类放置位置springboot 默认包扫描机制启动类放在特定位置springboot 启动注解理解配置启动类扫描特定的包1、 ComponentScan2、利用 SpringBootApplication 注解的 scanBasePackages 属性 Springboot 项目启动类放置位置 如果我们使用 IDEA 或者 …

常见面试题-MySQL的Explain执行计划

了解 Explain 执行计划吗? 答: explain 语句可以帮助我们查看查询语句的具体执行计划。 explain 查出来的各列含义如下: id:在一个大的查询语句中,每个 select 关键字都对应一个唯一的 id select_type:…

jdk1.8配置tomcat9教程

文章目录 前言报错&尝试解决运行 前言 最近在学习SpringMVC框架,但是里面需要用到Tocmat服务器。作为0基础Java选手,直接找了个视频里面的tomcat包下载。 里面的版本是apache-tomcat-8.5.68-windows-x64.zip的,然后就开始疯狂的各种博客…

巧用SqlServer数据库实现邮件自动发送功能

使用数据库发送邮件需要三个步骤,配置数据库的邮件服务、编写存储过程、设置SQL作业,接下来开始逐步分享: 配置数据库邮件: 在SqlServer左侧菜单栏中,找到管理页签中数据库邮件选项: 接下来开始配置数据库…

wpf devexpress自定义编辑器

打开前一个例子 步骤1-自定义FirstName和LastName编辑器字段 如果运行程序,会通知编辑器是空。对于例子,这两个未命名编辑器在第一个LayoutItem(Name)。和最终用户有一个访客左右编辑器查阅到First Name和Last Name字段,分别。如果你看到Go…

验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)

🧸欢迎来到dream_ready的博客,📜相信你对这篇博客也感兴趣o (ˉ▽ˉ;) 📜表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手…

力扣每日一题-数位和相等数对的最大和-2023.11.18

力扣每日一题:数位和相等数对的最大和 开篇 这道每日一题还是挺需要思考的,我绕晕了好久,根据题解的提示才写出来。 题目链接:2342.数位和相等数对的最大和 题目描述 代码思路 1.创建一个数组存储每个数位的数的最大值,创建一…

OpenShift 4 - 就地调整 Pod 资源使用量

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.14 的环境中验证 文章目录 为什么需要就地调整 Pod 资源启动 InPlacePodVerticalScaling 特性实现就地调整 Pod 资源参考 为什么需要就地调整 Pod 资源 以往在 Kubernetes 中调整 Pod 的 …

CentOS 7搭建Gitlab流程

目录 1、查询docker镜像gitlab-ce 2、拉取镜像 3、查询已下载的镜像 4、新建gitlab文件夹 5、在gitlab文件夹下新建相关文件夹 6、创建运行gitlab的容器 7、查看docker容器 8、根据Linux地址访问gitlab 9、进入docker容器,设置用户名的和密码 10、登录git…

如何从回收站恢复已删除的文件

我们在各个领域都使用计算机。无论是专业工作还是个人工作,我们在生活中总能找到计算机的用途。因此,我们在很大程度上依赖于我们的计算机。计算机是办公室和企业部门使用的高效机器。 人们使用个人计算机发送电子邮件、创建文档、听音乐和观看视频等等…

企业要做大模型落地?建议进来看看这个榜单

机器幻觉问题,可能是未来相当长一段时间内悬浮在大模型领域上方的两片乌云之一。遥记半年前,LeCun 就曾断言:“单纯根据概率生成自回归的大语言模型,根本解决不了幻觉、错误的问题,GPT模型活不过5年”。 当然&#xff…

红队攻防之特殊场景上线cs和msf

倘见玉皇先跪奏:他生永不落红尘 本文首发于先知社区,原创作者即是本人 网络拓扑图 一、msf正向木马拿不出网域控shell msf生成木马 msfvenom -p windows/x64/meterpreter/bind_tcp lport4444 -f raw -o msf1.bin用msfvenom生成一个正向马传进去&…