PXE-kickstart无人值守安装操作系统

news2024/9/27 19:24:26

PXE的概念:

PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于C/S的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动的过程中,终端要求服务器分配IP地址,再用TFTP或者MTFTP协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件的设置,从而引导预先安装在服务器中的终端操作系统。

严格来说,PXE并不是一种安装方式,而是一种引导方式。进行PXE安装的必要条件是在要安装的计算机中必须包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE Client。PXE协议可以通使计算机通过网络启动。此协议分为Client端和Server端,而PXE Client则在网卡的ROM中。当计算机引导时,BIOS把PXE Client调入内存中执行,然后由PXE Client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器。DHCP服务器会给PXE Client分配一个IP地址,由于是给PXE Client分配IP地址,所以在配置DHCP服务器时需要增加相应的PXE设置。此外,在PXE Client的ROM中,已经存在了TFTP Client,那么它就可以通过TFTP协议到TFTP Server上下载所需要的文件了。

PXE的工作流程:

1、PXE Client从自己的PXE网卡启动,向本网络的DHCP服务器索取IP;

2、DHCP服务器返回分配给客户端IP以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上。)

3、PXE Client向本网络中的TFTP服务器索取pxelinux.0文件。

4、PXE Client取得pxelinux.0文件后执行该文件。

5、根据pxelinux.0的执行结果,通过TFTP服务器加载内核和文件系统。

6、进入安装画面,此时可以通过选择HTTP、FTP和NFS方式之一进行安装。

什么是Kickstart

Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg文件。如果在安装的过程中出现要填写的数据的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取得ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序就根据ks.cfg的设置重启系统,并结束安装。

PXE+Kickstart无人值守安装操作系统完整过程如下:

 PXE Client 开机启动->DHCP(pxelinux.0; next-server: tftp-server)

TFTP:

syslinux: 引导linux启动的安装程序

vmlinuz:内核的启动镜像

initrd.img:加载系统时的驱动程序

ks.cfg:  kickstart配置文件

系统环境:

1、关闭防火墙和SELinux:

systemctl stop firewalld
systemctl disable firewalld

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

2、环境准备:

需要配置双网卡,一个作用是dhcp,一个使用网络源安装环境包。

dhcp自动分配IP的网卡得是net1仅主机模式。

然后我们检查网卡信息:

cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens36

[root@vm1 network-scripts]# cat ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.182.100
NETMASK=255.255.255.0
DNS1=114.114.114.114

说明:

1)特别要注意的一点是不要配置GATEWAY,网络配置文件,在一台服务器上只能有一个网络接口的配置文件有GATEWAY,如果有多个,网络就无法访问外网。

2)UUID要删除,不然相同的UUID会发生冲突;

3)当然,配置文件中的NAME和DEVICE的名称都是要进行修改的。

在改之前,我们需要查看一下net1网卡得网段。

 说明:“在使用本地DHCP服务器IP地址分配给虚拟机”这项不要勾选。

配置完后,重新启动网卡。

systemctl restart network

3、安装和配置DHCP服务器:

yum install -y dhcp

然后进入到主配置文件:

cat /etc/dhcp/dhcpd.conf

根据文件里的信息,我们可以复制一个模板文件。

cp -p /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcp.conf

-p:  连带文件属性一起拷贝

然后我们编辑dhcpd.conf主配置文件。

说明:禁止动态更新。

 说明:

range:地址池

option routers:网关

dns:dns地址

next-server:  指定tftp服务器地址

filename:指定pxe引导程序的文件名

配置完毕,重新启动dhcp服务,并设置开机自启动。

systemctl start dhcp
systemctl enable dhcp

 另外,我们也可以参考下这段配置:

4、安装和配置TFTP服务程序:

tftp是一个小而且容易实现的文件传输协议,tftp是基于UDP数据报,需要有自己的差错纠正机制。

tftp只支持文件传输,不支持交互,没有庞大的命令集。安全性低,不支持身份验证。

yum install -y tftp-server xinetd

tftp的运行和关闭是由xinet网络守护进程服务来管理的。xinet服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来相应用户的请求。

vim /etc/xinetd.d/tftp

 说明:需要将disable的yes改成no。表示开启tftp服务。

另外,我们也要注意下目录:/var/lib/tftpboot。指定tftp的根目录(引导文件的存储路径)-c是允许上传。

然后是挂载镜像文件:

[root@vm1 mnt]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@vm1 mnt]#
[root@vm1 mnt]#
[root@vm1 mnt]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        900M     0  900M   0% /dev
tmpfs           910M     0  910M   0% /dev/shm
tmpfs           910M  9.7M  900M   2% /run
tmpfs           910M     0  910M   0% /sys/fs/cgroup
/dev/sda5        16G  4.9G   11G  32% /
/dev/sda2       497M  254M  243M  52% /boot
tmpfs           182M     0  182M   0% /run/user/0
/dev/sr0        973M  973M     0 100% /mnt
[root@vm1 mnt]#

然后进入到内核文件,将内核初始化镜像文件复制到/var/lib/tftpboot

cd /mnt/images/pxeboot
cp initrd.img vmlinuz /var/lib/tftpboot # 复制内核初始化文件

vmlinuz:是可引导的,压缩的内核

initrd.img : 系统初始化文件

systemctl restart xinetd
systemctl enable xinetd
systemctl start tftp
systemctl enable tftp

以上就是为了将镜像中的内核文件+系统的初始化文件,丢到tftp的默认共享目录中,以便客户端来下载使用。   

准备PXE引导镜像文件pxelinux.0

SYSLinux是一个用于 提供引导加载的服务程序。不如说它是一个包含了很多引导文件的文件夹。

yum install -y syslinux
yum provides /pxelinux.0

yum install -y syslinux

rpm -ql syslinux | grep pxelinux.0

查找pxe引导程序的位置。

然后拷贝系统引导文件pxelinux.0到tftp的根目录下面。

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

注,只有安装了syslinux软件包,才会有/usr/share/syslinux/目录及目录中的文

然后在tftp服务程序的目录中新建pxelinux.cfg目录。虽然这个目录的名字带有后缀,但是依然是个目录,不是文件。将系统光盘中的开机选项菜单复制到该目中,并命名为default。这个default文件就是开机时的选项菜单。

mkdir pexlinux.cfg
cp /mnt/isolinux/isolinux.cfg pxelinux.cfg/default

然后我们编辑这个default文件:

说明:只要修改者两个地方。

1)default linux是选择下面label linux的这个位置。

2)prompt 0,表示没有不等待用户控制,1表示等待用户控制,设置是否等待用户选择。如果按回车则选择linux模式。

安装ftp服务,准备centos安装源:

yum install -y vsftpd
mount /dev/cdrom /mnt

cp -r /mnt/* /var/ftp

 然后再开启ftp服务:

systemctl start vsftpd
systemctl enable vsftpd

下面是配置kickstart无人值守安装:

yum install -y system-config-kickstart

然后打开这个软件:

 我这边也没使用这个工具来生成ks.cfg文件。

我是直接从网上找到一个centos7最小化安装的ks.cfg文件。

内容如下:

[root@vm1 pub]# cat ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext 123456
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled


# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="ftp://192.168.182.100"
# System bootloader configuration
bootloader --append="net.ifnames=0" --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part biosboot --fstype="biosboot" --ondisk=sda --size=2
part swap --fstype="swap" --ondisk=sda --size=4096
part /boot --fstype="xfs" --ondisk=sda --size=500
part / --fstype="xfs" --ondisk=sda --size=15880


%packages
@^minimal
@core
kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

注意这个文件是放到/var/ftp/pub中。

然后我们再看下这个default文件里的内容:

那我们知道这个pub路径的由来了吧。

那到这里就配置完成了。

然后我们在vmware中新创建一台机器,然后就可以实现自动安装。

操作步骤,可以参考《linuxprobe.pdf》这本书。

我们看到其中的IP是182.151。确实是地址池中的一个IP地址。

另外,这台机器还不能上网。因为我们使用的是仅主机模式。

我们可以试着解决下上网的问题。

另外,我们还可以在ks.cfg文件中增加一些需要预先安装软件的事情,另外还有解决ssh的问题。

这些都可以解决的。

我们还要注意ks.cfg等文件的权限。切记!

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

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

相关文章

leetcode 2616. 最小化数对的最大差值

在数组nums中找到p个数对,使差值绝对值的和最小。 思路: 最小差值应该是数值相近的一对数之间产生,让数值相近的数字尽量靠在一起方便计算,所以需要排序。 这里不去直接考虑一对对的数字,而是直接考虑差值的取值。 …

msvcp120.dll丢失的解决方法,哪种解决方法更实用

msvcp120.dll是Microsoft Visual C 2013库中的一个动态链接库文件。它包含了在使用Visual C 2013编译的应用程序中所需的函数和资源。这个文件通常用于在Windows操作系统上运行使用Visual C 2013编写的软件。如果缺少或损坏了msvcp120.dll文件,可能会导致相关软件无…

Wav2Lip实践

1. 安装 1.1 安装 conda以指定python版本运行环境 下载:Index of /https://repo.anaconda.com/archive/index.html 1.2 如按旧项目基于python3.6版本对话,会有很多包找不到的情况,经摸索后以python3.9构建成功, conda instal…

js代码加密,也能在vs code中进行?

在vs code中对js代码混淆加密 Vs code是常用的js代码编辑工具。本文演示如何在vs code中调用jshaman扩展,实现非常方便的js代码加密。 打开vs code: 点击左侧的“扩展”,打开后搜索“jshaman”。 (JShaman是业界很有名的JS代码…

Stable Diffusion - 底部视角 (From Below) 拍摄的图像 LoRA 与配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132192139 图像来源自 哥特风格 与 底部视角 的结合,更具有视觉冲击力。 从下面或底部 (From Below) 拍摄人物,可以创造出…

学C语言 | 位运算符<<的高级用法

前言 在上一篇文章中&#xff0c;我们介绍了~运算符的高级用法&#xff0c;本篇文章&#xff0c;我们将介绍<< 运算符的一些高级用法。 一、人物简介 第一位闪亮登场&#xff0c;有请今后会一直教我们C语言的老师 —— 自在。 第二位上场的是和我们一起学习的小白程序猿…

流量分析日志查看

一流量分析 buuctf wireshark 从题目出发&#xff0c;既然是上传登录信息&#xff0c;就直接过滤post请求&#xff0c;即搜索 http.request.methodPOST&#xff0c;因为上传用户登录信息使用的一定是http里的post方法 模式过滤 http.request.method “GET” http.request.…

数据要素市场之破四化建四化,拆墙又砌墙

摘要&#xff1a;8月8日&#xff0c;首届贵州科技节“2023数据要素流通关键技术论坛”在贵阳举行。此次论坛由贵州省科学技术协会指导&#xff0c;贵州省计算机学会主办&#xff0c;中国计算机学会贵阳会员活动中心、贵州轻工职业技术学院、贵州电子科技职业学院、贵州省大数据…

基于kubeadm部署K8S集群

目录 基于kubeadm部署K8S集群 一、环境准备 1、主机初始化配置 2、配置主机名并绑定hosts&#xff0c;不同主机名称不同 3、主机配置初始化 二、部署docker环境 1、三台主机上分别部署 Docker 环境 2、镜像加速器&#xff08;所有主机配置&#xff09; 三、部署kubern…

模拟实现消息队列

目录 1. 需求分析1.1 介绍一些核心概念核心概念1核心概念2 1.2 消息队列服务器&#xff08;Broker Server&#xff09;要提供的核心 API1.3 交换机类型1.3.1 类型介绍1.3.2 转发规则&#xff1a; 1.4 持久化1.5 关于网络通信1.5.1 客户端与服务器提供的对应方法1.5.2 客户端额外…

Android APK体积优化(瘦身)

1、基础知识&#xff1a; 1.1 apk结构 lib &#xff1a;存放so文件&#xff0c;对应不同的cpu架构 res &#xff1a;资源文件&#xff0c;layout、drawable等&#xff0c;经过aapt编译 assets &#xff1a;资源文件&#xff0c;不经过aapt编译 classes.dex &#xff1a;dx编译…

淘宝订单数据接口 淘宝订单API 获取商品订单详情 获取商品订单列表

淘宝订单数据分为&#xff1a;买家订单和卖家订单。买家订单为购买者这边的商品订单&#xff0c;卖家订单为商家店铺的商品订单。不管是买家订单还是卖家订单&#xff0c;获取订单数据都需要拿到授权。 买家订单列表详情接口 获取买家订单列表和详情数据&#xff0c;需要买家…

在线海报设计工具

今天&#xff0c;跟大家分享一个更加方便快捷的在线海报制作工具ioDraw&#xff0c;比PS更加容易操作&#xff0c;界面体验感更好。像一键制作手机或者电脑海报之类的需求&#xff0c;都能满足。 ioDraw作为一个在线制图工具&#xff0c;满足各种场景的设计需求&#xff0c;让每…

webshell免杀项目-ByPassBehinder(三)

ByPassBehinder / 冰蝎WebShell免杀生成 项目地址&#xff1a; https://github.com/Tas9er/ByPassBehinder ❌风险概述: 本工具仅限授权安全测试使用,禁止非法攻击未授权站点 ✴️文件MD5值校对 文件:ByPassBehinder.exe MD5 HASH:04caea5648786157fb65dd51d2bc061e &…

黑盒测试可不只是点点点,也需要会用各种测试工具~

对于不了解软件测试或者刚进行不久的人们来说&#xff0c;黑盒测试就是点点点&#xff0c;没有技术含量&#xff0c;但是我要说的&#xff0c;错&#xff01;黑盒测试也是一项极具技术含量的工作&#xff01; 首先说一下黑盒测试&#xff0c;从权威书籍《软件测试》的定义来说…

EPS FB 2.5S返回时延占比提升

一、 EPS FB 2.5s指标现状 3月初某区域的EPS FB返回时延占比为82.7%左右&#xff0c;离目标值83.98%还有1.2%。 二、 原因分析 EPS FB语音挂机后&#xff0c;UE在LTE恻可以通过快速返回Fast Return功能快速回到SA模式&#xff0c;4G侧快速返回功能为: 1、NR Coverage-Trigger…

【多线程系列-05】深入理解ThreadLocal的底层原理和基本使用

多线程系列整体栏目 内容链接地址【一】深入理解进程、线程和CPU之间的关系https://blog.csdn.net/zhenghuishengq/article/details/131714191【二】java创建线程的方式到底有几种&#xff1f;(详解)https://blog.csdn.net/zhenghuishengq/article/details/127968166【三】深入…

西安企业通配符https证书订购流程

通配符https证书可以保护主域名以及主域名下多个子域名的安全&#xff0c;例如*.example.com可以保护www.example.com、blog.example.com等所有以example.com结尾的子域名。这样不仅可以节省证书费用&#xff0c;也可以减少证书管理的工作量。 而企业通配符https证书是通配符ht…

实战指南:使用OpenCV 4.0+Python进行机器学习与计算机视觉

&#x1f482; 个人网站:【办公神器】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 目录 1.背景2. 安装和配…

2023河南萌新联赛第(五)场:郑州轻工业大学--买爱心气球

题目链接&#xff1a;A-买爱心气球_2023河南萌新联赛第&#xff08;五&#xff09;场&#xff1a;郑州轻工业大学 (nowcoder.com) 题目描述 Alice 和 Bob 是一对竞技编程选手&#xff0c;他们路过了一家气球店&#xff0c;发现有 m 个大爱心气球和 n 个小爱心气球。他们决定玩…