云计算 3月12号 (PEX)

什么是PXE?

PXE,全名Pre-boot Execution Environment,预启动执行环境; 通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统; 由Intel和Systemsoft公司于1999年9月20日公布的技术; Client/Server的工作模式; PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议; PXE客户端(client)这个术语是指机器在PXE启动过程中的角色。一个PXE客户端可以是一台服务器、笔记本电脑或者其他装有PXE启动代码的机器(我们电脑的网卡)

pxe+kickstart 全自动安装操作系统,(不包括win) pxe是网卡上的芯片 kickstart软件   pylickstart  用来配置操作系统安装过程的配置文件ks.cfg

initrd初始化磁盘影像文件

图中的vmlinux应该为vmliuz

PXE工作原理示意图说明

1. Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client。
​
2. Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0。
​
3. Client执行接收到的pxelinux.0文件。
​
4. Client向TFTP发送针对本机的配置信息(记录在TFTP的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
​
5. Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发 送给Client。
​
6. Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件 系统。
​
7. Client启动Linux内核(启动参数已经在4中的配置文件中设置好了)。
​
8. Client通过NFS下载镜像文件,读取autoyast自动化安装脚本。 至此,Client正式进入自动化安装模式开始安装系统直到完成

一、环境

名称
软件vmware
系统centos7.5
网络桥接
ip地址10.20.157.100

二、安装前准备

# 关闭防火墙、selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
​
# 配置ip地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPADDR=10.20.157.100
PREFIX=24
GATEWAY=10.20.157.1
DNS1=114.114.114.114
DNS2=8.8.8.8
DEVICE="ens33"
ONBOOT="yes"
​
[root@localhost ~]# systemctl restart network
​
# 配置yum源并按章软件包
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@localhost ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache fast
[root@localhost ~]# yum install -y dhcp tftp tftp-server syslinux wget vsftpd pykickstart

三、dhcp服务器配置

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
#确保配置文件内容如下
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;# A slightly different configuration for an internal subnet.subnet 10.20.157.0 netmask 255.255.255.0 
{range 10.20.157.110 10.20.157.200;option domain-name-servers 10.20.157.1;option domain-name "server1.example.com";option routers 10.20.157.1;option broadcast-address 10.20.157.255;default-lease-time 600;max-lease-time 7200;# PXE SERVER IPnext-server 10.20.157.100;     # DHCP server ipfilename "pxelinux.0";}
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
#确保配置文件内容如下
ddns-update-style interim;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
allow unknown-clients;# A slightly different configuration for an internal subnet.subnet 10.20.157.0 netmask 255.255.255.0 
{range 10.20.157.110 10.20.157.200;option domain-name-servers 10.20.157.1;option domain-name "server1.example.com";option routers 10.20.157.1;option broadcast-address 10.20.157.255;default-lease-time 600;max-lease-time 7200;# PXE SERVER IPnext-server 10.20.157.100;     # DHCP server ipfilename "pxelinux.0";}

四、TFTP服务准备

[root@localhost ~]# vim /etc/xinetd.d/tftp
#修改内容如下
service tftp
{socket_type          = dgramprotocol                = udpwait                      = yesuser                    = rootserver                  = /usr/sbin/in.tftpdserver_args             = -s /var/lib/tftpbootdisable                 = noper_source              = 11cps                     = 100 2flags                   = IPv4}
​
[root@localhost ~]# cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# mkdir /var/lib/tftpboot/netboot

五、VSftpd服务准备

在VMware中将cd驱动器链接

[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cp -rf /mnt/* /var/ftp/pub/
​
# 拷贝系统启动时需要的镜像文件
[root@localhost ~]# cp /var/ftp/pub/images/pxeboot/vmlinuz /var/lib/tftpboot/netboot/
[root@localhost ~]# cp /var/ftp/pub/images/pxeboot/initrd.img /var/lib/tftpboot/netboot/
​
# 创建ks.cfg 文件
[root@localhost ~]# vim /var/ftp/pub/ks.cfg
#platform=x86, AMD64, or Intel EM64T#version=DEVEL# Firewall configurationfirewall --disabled# Install OS instead of upgradeinstall# Use NFS installation mediaurl --url="ftp://10.20.157.100/pub/"rootpw --plaintext 123456
#root的密码设为123456# Use graphical installgraphicalfirstboot disable# System keyboardkeyboard us# System languagelang en_US# SELinux configurationselinux disabled# Installation logging levellogging level=info
# System timezonetimezone Asia/Shanghai# System bootloader configurationbootloader location=mbrclearpart --all --initlabelpart swap --asprimary --fstype="swap" --size=1024part /boot --fstype xfs --size=200part pv.01 --size=1 --growvolgroup rootvg01 pv.01logvol / --fstype xfs --name=lv01 --vgname=rootvg01 --size=1 --growreboot
​
%packages@corewget%end
​
%post%end
​
# 检查语法是否有错误
[root@localhost ~]# ksvalidator /var/ftp/pub/ks.cfg

六、PXE菜单

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/defaultdefault menu.c32prompt 0timeout 30MENU TITLE Togogo.net Linux Training
​LABEL centos7_x64MENU LABEL CentOS 7 X64 for newrainKERNEL /netboot/vmlinuzAPPEND  initrd=/netboot/initrd.img inst.repo=ftp://10.20.157.100/pub ks=ftp://10.20.157.100/pub/ks.cfg

七、重启服务

[root@localhost ~]# systemctl enable dhcpd vsftpd tftp
[root@localhost ~]# systemctl restart dhcpd vsftpd tftp

八、创建虚拟机-自动安装系统

注意:内存必须大于2G

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

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

相关文章

DEAP 自定义交叉操作

在遗传算法中,使用DEAP库来实现自定义的交叉操作可以非常灵活。如果你想模拟多个染色体的情况,通过在染色体的特定区间进行交叉,你需要自定义一个交叉函数。以下是一个示例,展示如何实现一个自定义的交叉函数,该函数允…

libigl 网格面片随机赋色

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 libigl的赋色方式非常简单,它统一由一个Eigen矩阵来进行管理,我们在进行赋色等操作时,只需要修改该矩阵即可(法向量等特征也是类似的操作)。 二、实现代码 //igl #include <igl/readOBJ.h> #include &l…

JVM简单调优

jdk自带了许多对jvm进行监控的程序&#xff0c;例如JVisualVM、jstack等等。 现在进行一些简单的对jvm的监控。 我们可以使用JVisualVM来对堆区进行图形化监控。 我们可以在命令行输入jvisualvm&#xff0c;然后就进入了jvisualvm的图形化界面。 然后我们随便执行一个主方法…

CDQ分治+树状数组,LOJ6270. 数据结构板子题

一、题目 1、题目描述 有 n 个区间&#xff0c;第 i 个区间是 [l_i,r_i]&#xff0c;它的长度是 r_i-l_i。 有 q 个询问&#xff0c;每个询问给定 L,R,K&#xff0c;询问被 [L,R] 包含的且长度不小于 K 的区间数量。 你想&#xff0c;像这种板子题&#xff0c;你随手写&#x…

gen_arrow_contour_xld

生成一个箭头轮廓算子 gen_arrow_contour_xld( : Arrow : Row1, Column1, Row2, Column2, HeadLength, HeadWidth : ) 该算子一般配合 area_center (region, Area, Row, Column) orientation_region (region, Phi) 算子使用&#xff0c;生成一个箭头轮廓。 area_center_xld…

C#+datax实现定时增量同步

要使用C#和DataX实现定时增量同步&#xff0c;你可以使用以下步骤&#xff1a; 1. 安装DataX&#xff1a;首先&#xff0c;确保你已经安装了DataX。你可以从DataX的官方仓库中获取最新版本。 2. 配置DataX 任务&#xff1a;创建一个DataX任务&#xff0c;定义源&#xff08;sou…

springcloud gateway网关动态配置限流

上一篇记录了gateway网关的基础功能和配置&#xff0c;并且使用了默认的限流功能。 springcloud gateway网关-CSDN博客 这里简单记录一下gateway网关集成mybatisPlus实现动态限流。gateway网关默认的限流方式各项限流参数都是在配置文件中配置&#xff0c;不够灵活&#xff0…

【LLMs+小羊驼】23.03.Vicuna: 类似GPT4的开源聊天机器人( 90%* ChatGPT Quality)

官方在线demo: https://chat.lmsys.org/ Github项目代码&#xff1a;https://github.com/lm-sys/FastChat 官方博客&#xff1a;Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90% ChatGPT Quality 模型下载: https://huggingface.co/lmsys/vicuna-7b-v1.5 | 所有的模…

STM32输入捕获频率和占空比proteus仿真失败

这次用了两天的时间来验证这个功能&#xff0c;虽然实验没有成功&#xff0c;但是也要记录一下&#xff0c;后面能解决了&#xff0c;回来再写上解决的办法&#xff1a; 这个程序最后的实验结果是读取到的CCR1和CCR2的值都是0&#xff0c;所以没有办法算出来频率和占空比。 还…

如何创建Gitflow图表

如何创建Gitflow图表 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址drawon.cn或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现了云端存储…

排序算法之快速排序算法介绍

目录 快速排序介绍 时间复杂度和稳定性 代码实现 C语言实现 c实现 java实现 快速排序介绍 快速排序(Quick Sort)使用分治法策略。 它的基本思想是&#xff1a;选择一个基准数&#xff0c;通过一趟排序将要排序的数据分割成独立的两部分&#xff1b;其中一部分的所有数据…

确定比赛名次-拓扑排序

题目链接&#xff1a;https://vjudge.net/problem/HDU-1285 邻接矩阵存储版 #include<iostream> #include<queue> #include<cstring> #include<functional> #include<vector> using namespace std; const int N 510; int n, m;int g[N][N], i…

CSS 面试题及答案

CSS 面试题及答案 问题&#xff1a;什么是盒模型&#xff08;Box Model&#xff09;&#xff1f; 答案&#xff1a; 盒模型是指在网页布局时&#xff0c;每个元素都被看作一个矩形盒子&#xff0c;包括内容区域、内边距、边框和外边距。这些部分组合在一起构成了元素的盒模型。…

C++Qt学习——添加资源文件

目录 1、创建好了文件之后&#xff0c;在左边空白处按下CtrlN&#xff0c;创建Qt 以及Qt Resource File 2、写入名称&#xff0c;点击下一步 3、可以发现已经创建好啦。 4、点击Add Prefix 5、写上前缀&#xff0c;最好加上斜杠 6、选择提前放好的图片或者icon 7、发…

安卓Java面试题 91- 100

91. 请描述一下Intent 和 IntentFilter ?Intent是组件的通讯使者,可以在组件间传递消息和数据。 IntentFilter是intent的筛选器,可以对intent的action,data,catgory,uri这些属性进行筛选,确定符合的目标组件🚀🚀🚀🚀🚀🚀92. 阐述什么是IntentService?有何优…

Python异步编程探究:深入理解asyncio的使用和原理【第130篇—asyncio】

Python异步编程探究&#xff1a;深入理解asyncio的使用和原理 随着计算机应用程序的复杂性不断增加&#xff0c;对于高效处理I/O密集型任务的需求也越来越迫切。在Python中&#xff0c;asyncio模块提供了一种强大的异步编程方式&#xff0c;使得开发者能够轻松地处理并发任务&…

Vulnhub - DC-1

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog DC-1 靶机下载地址&#xff1a;DC: 1 ~ VulnHub 0x01 信息收集 Nmap扫描目标主机&#xff0c;发现开…

Springboot 使用【过滤器】实现在请求到达 Controller 之前修改请求体参数和在结果返回之前修改响应体

文章目录 前情提要解决方案自定义 HttpServletRequest 包装类 RequestWrapper自定义 HttpServletResponse 包装类 ResponseWrapper自定义过滤器 MiddlewareFilter配置过滤器注解配置类 编写 Controller 测试 前情提要 在项目中需要使用过滤器 在请求调用 Controller 方法前修改…

Linux-轻量级数据库sqlite-015

1【sqlite】安装 1.让虚拟机能够上网 2.【apt-get】工具集配置好 3.【sudo apt-get install sqlite3】 4.启动【sqlite3】 【sqlite3】 5.输入【.quit】退出2数据库简介 2.1常见的几种数据结构及数据库 1.数组、链表、文件、数据库&#xff08;1&#xff09;存储位置及存储…

volatile关键字用处和场景?

什么是volatile关键字 在C语言和Java中&#xff0c;它是一种特殊的类型修饰符&#xff0c;用来告诉编译器该变量可能会被意外地改变。这样&#xff0c;每次存取该变量时&#xff0c;编译器都不会对其进行缓存优化&#xff0c;而是直接从内存中读取或写入&#xff0c;提供了对特…