当前位置: 首页 > news >正文

Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统

Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统

需求

在实际生成操作过程中,一般会遇到物理服务器存在多块盘的情况。
安装过程中,磁盘的标签是随机分配的,并不是空间较小的盘,就会使用较小的磁盘标签
而需求往往需要将操作系统安装到较小的盘中作为系统盘

问题分析

  • 需要判断出当前物理机存在磁盘的数量
  • 需要选举出较小的磁盘
  • 指定较小磁盘的磁盘标签进行自动化安装

处理办法

  • Linux提供了list-harddrives变量,用于保存当前机器的磁盘情况
    • 该变量的格式为:
echo $(list-harddrives)
磁盘标签1 磁盘1大小 磁盘标签2 磁盘2大小 ...
  • 可以使kickstart提供的%per脚本输出最小的磁盘的标签,用于获取指定的磁盘
    • %per脚本:
      • kickstart中用于在安装操作系统前执行的脚本
      • 此处脚本执行过程中,是在chroot环境下,部分命令和参数无法使用,需要注意
  • 同时将创建磁盘和vg的命令输出到临时文件中
  • 使用kickstart的include功能执行命令
  • 案例如下:
# 假设 list-harddrives 命令的输出是这样的:sda 20480 sdb 10240
output=$(list-harddrives)# 初始化最小磁盘大小和名称
min_size=999999999999
min_disk=""# 遍历输出中的每个磁盘信息
# 使用 set -- $output 将输出分割为位置参数
set -- $output
while (( "$#" )); dodisk=$1shiftsize=$1size_int=${size%.*}shift# 比较大小,更新最小磁盘信息if (( size_int < min_size )); thenmin_size=$size_intmin_disk=$diskfi
done# 选举出最小的磁盘标签
# 将最小磁盘标签引用到以下的命令中
# 将命令输出到/tmp/part中echo "ignoredisk --only-use=${min_disk}" >> /tmp/part
# Partition clearing information
echo "clearpart --all --initlabel" >> /tmp/part
# Disk partitioning information
echo "part /boot --fstype="xfs" --ondisk=${min_disk} --size=1024" >> /tmp/part
echo "part /boot/efi --fstype="efi" --ondisk=${min_disk} --size=600 --fsoptions="umask=0077,shortname=winnt"" >> /tmp/part
echo "part pv.119 --fstype="lvmpv" --ondisk=${min_disk} --size=1 --grow" >> /tmp/part
echo "volgroup vg00 --pesize=4096 pv.119" >> /tmp/part
echo "logvol swap --fstype="swap" --size=32768 --name=lvswap --vgname=vg00" >> /tmp/part
echo "logvol / --fstype="xfs" --size=71676 --name=lvroot --vgname=vg00" >> /tmp/part
echo "logvol /home --fstype="xfs" --size=61440 --name=lvhome --vgname=vg00" >> /tmp/part
echo "logvol /usr --fstype="xfs" --size=71676 --name=lvusr --vgname=vg00" >> /tmp/part
echo "logvol /var --fstype="xfs" --size=153596 --name=lvvar --vgname=vg00" >> /tmp/part
%end# 将临时文件中的命令包含到kickstart配置中
# include diskinfo
zerombr
%include /tmp/part

相关文章:

Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统

Kickstart自动化安装过程中自动选择较小的磁盘安装操作系统 需求 在实际生成操作过程中&#xff0c;一般会遇到物理服务器存在多块盘的情况。 安装过程中&#xff0c;磁盘的标签是随机分配的&#xff0c;并不是空间较小的盘&#xff0c;就会使用较小的磁盘标签 而需求往往需要…...

基于进化式大语言模型的下一代漏洞挖掘范式:智能对抗与自适应攻防体系

摘要 本文提出了一种基于进化式大语言模型(Evolutionary LLM)的智能漏洞挖掘框架,突破了传统静态分析的局限,构建了具备对抗性思维的动态攻防体系。通过引入深度强化学习与多模态感知机制,实现了漏洞挖掘过程的自适应进化,在RCE、SQLi、XXE等关键漏洞类型的检测中达到97…...

游戏引擎学习第99天

仓库:https://gitee.com/mrxiao_com/2d_game_2 黑板&#xff1a;制作一些光场(Light Field) 当前的目标是为游戏添加光照系统&#xff0c;并已完成了法线映射&#xff08;normal maps&#xff09;的管道&#xff0c;但还没有创建可以供这些正常映射采样的光场。为了继续推进&…...

脉冲当量含义

前言&#xff1a; 大家好&#xff0c;我是上位机马工&#xff0c;硕士毕业4年年入40万&#xff0c;目前在一家自动化公司担任软件经理&#xff0c;从事C#上位机软件开发8年以上&#xff01;我们在开发C#的运动控制程序的时候&#xff0c;一个必要的步骤就是设置每个轴的脉冲当…...

docker compose部署flink集群

本次部署2个jobmanager和3个taskmanager 一、部署zookeeper集群 flink使用zookeeper用作高可用 部署集群参考&#xff1a;docker compose部署zookeeper集群-CSDN博客 二、创建目录及配置文件 创建timezone文件&#xff0c;内容填写Asia/Shanghai 手动创建目录&#xff1a…...

docker compose快速部署kafka-connect集群

先部署kafka集群&#xff0c;启动 参考&#xff1a;docker compose部署kafka集群-CSDN博客 创建timezone文件&#xff0c;内容填写Asia/Shanghai 再部署kafka-connect集群 networks: net: external: true services: kafka-connect1: restart: always image:…...

【核心特性】Go 模块化开发入门(go mod 深度解析)

Go 模块化开发入门&#xff08;go mod 深度解析&#xff09; 一、引言 在 Go 语言的开发过程中&#xff0c;随着项目规模的不断扩大&#xff0c;依赖管理变得愈发重要。Go Modules 作为 Go 语言官方的依赖管理工具&#xff0c;自 Go 1.11 版本引入后&#xff0c;极大地简化了项…...

国产ARM处理器工控机如何助力企业实现自主可控?

选择国产ARM处理器工控机的原因可以从多个角度来考虑&#xff0c;包括技术、经济、安全和政策等方面。以下是一些关键理由&#xff1a; 技术优势 低功耗高效能&#xff1a;ARM架构以其出色的能效比著称&#xff0c;适合需要长时间运行的工业控制应用。适应性强&#xff1a;国…...

dns功能及工作原理是什么?

在互联网的浩瀚海洋中&#xff0c;域名系统(DNS)扮演着至关重要的角色。它就像一个巨大的地址簿&#xff0c;将用户友好的域名转换为机器可识别的IP地址&#xff0c;确保用户能够访问到正确的服务器。本文将深入探讨DNS的功能和工作原理&#xff0c;揭示这一互联网基础设施的奥…...

Java中的Map集合与文件操作详解

1. Map集合概述 Map是一种键值对&#xff08;key-value&#xff09;的集合&#xff0c;常用于存储具有映射关系的数据。与List和Set不同&#xff0c;Map的键&#xff08;key&#xff09;是唯一的&#xff0c;而值&#xff08;value&#xff09;可以重复。Map集合的主要实现类有…...

SAP-ABAP:dialog界面中的数据块Event Block详解举例

在SAP的Dialog程序开发中&#xff0c;Event Block&#xff08;事件块&#xff09;是屏幕流逻辑&#xff08;Flow Logic&#xff09;中的关键部分&#xff0c;用于定义屏幕在特定事件触发时执行的逻辑。Event Block通常与ABAP模块&#xff08;Module&#xff09;结合使用&#x…...

PostgreSQL 开发利器:Navicat 核心功能与资源攻略

近几年&#xff0c;&#x1f418; PostgreSQL 在全球数据库排名中表现优异。在 2025 年 2 月 DB-Engines 排名中 (如图)&#xff0c;PostgreSQL 稳居第四名&#xff0c;并逐渐逼近第三名的 Microsoft SQL Server&#xff0c;其评分和受欢迎度持续增长&#xff0c;成为开源数据库…...

飞算 JavaAI:加速 AI + 行业趋势的智能化进程

在数字化浪潮奔涌的当下&#xff0c;“AI 行业” 已然成为不可逆的发展趋势&#xff0c;各行业都在积极探索 AI 技术与自身业务的融合&#xff0c;期望借此实现创新突破与转型升级。在这一进程中&#xff0c;飞算 JavaAI凭借其卓越的技术实力和独特的功能优势&#xff0c;为加…...

XZ_Mac电脑上本地化部署DeepSeek的详细步骤

根据您的需求&#xff0c;以下是Mac电脑上本地化部署DeepSeek的详细步骤&#xff1a; 一、下载并安装Ollama 访问Ollama官网&#xff1a; 打开浏览器&#xff0c;访问 Ollama官网。 下载Ollama&#xff1a; 在官网中找到并点击“Download”按钮&#xff0c;选择适合Mac系统的…...

Flink-DataStream API

一、什么样的数据可以用于流式传输 Flink的DataStream API 允许流式传输他们可以序列化的任何内容。Flink自己的序列化程序用于 基本类型&#xff1a;即字符串、长、整数、布尔值、数组复合类型&#xff1a;元组、POJO和Scala样例类 基本类型我们已经很熟悉了&#xff0c;下…...

2.4 构建模块化应用

第4章&#xff1a;构建模块化应用 模块化应用是 JDK 9 的核心特性之一&#xff0c;通过模块化系统&#xff08;Project Jigsaw&#xff09;实现代码的强封装和显式依赖管理。本章详细讲解如何从零构建一个模块化应用&#xff0c;包括模块定义、编译、打包、运行及调试。 4.1 模…...

DeepSeek:从入门到精通

在人工智能飞速发展的今天&#xff0c;DeepSeek作为一款备受瞩目的AI工具&#xff0c;正以其强大的功能和开源理念改变着我们的生活和工作方式。本文将带你深入了解DeepSeek&#xff0c;从基础入门到进阶应用&#xff0c;助你快速掌握这一前沿工具。 文末有详细资料可下载 文末…...

JAVA学习第二天

ArryList的构造方法和添加方法 01。构造方法的<>里面可以放数据类型 02. add&#xff08;&#xff09;可以直接在后面加入数据&#xff0c;也可以指定下标的插入元素。 ArrayList的常用方法 ArrayList存储对象 在Java中&#xff0c;System.out.println()可以打印基本数据…...

DevOps工具链概述

1. DevOps工具链概述 1.1 DevOps工具链的定义 DevOps工具链是支持DevOps实践的一系列工具的集合&#xff0c;这些工具覆盖了软件开发的整个生命周期&#xff0c;包括需求管理、开发、测试、部署和运维等各个环节。它旨在通过工具的集成和自动化&#xff0c;打破开发与运维之间…...

windows系统远程桌面连接ubuntu18.04

记录一下自己在配置过程中遇到的问题&#xff0c;记录遇到的两大坑&#xff1a; windows系统通过xrdp远程桌面连接ubuntu18.04的蓝屏问题。参考以下第一章解决。 同一局域网内网段不同的连接问题。参考以下第三章解决&#xff0c;前提是SSH可连。 1. 在ubuntu上安装xrdp 参考&…...

使用osqp求解简单二次规划问题

文章目录 一、问题描述二、数学推导1. 目标函数处理2. 约束条件处理 三、代码编写 一、问题描述 已知&#xff1a; m i n ( x 1 − 1 ) 2 ( x 2 − 2 ) 2 s . t . 0 ⩽ x 1 ⩽ 1.5 , 1 ⩽ x 2 ⩽ 2.5 min(x_1-1)^2(x_2-2)^2 \qquad s.t. \ \ 0 \leqslant x_1 \leqslant 1.5,…...

Spring AI(10)——STUDIO传输的MCP服务端

Spring AI MCP&#xff08;模型上下文协议&#xff09;服务器Starters提供了在 Spring Boot 应用程序中设置 MCP 服务器的自动配置。它支持将 MCP 服务器功能与 Spring Boot 的自动配置系统无缝集成。 本文主要演示支持STDIO传输的MCP服务器 仅支持STDIO传输的MCP服务器 导入j…...

Sklearn 机器学习 缺失值处理 填充数据列的缺失值

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 💡使用 Scikit-learn 处理数据缺失值的完整指南 在机器学习项目中,数据缺失是不可避…...

libiec61850 mms协议异步模式

之前项目中使用到libiec61850库&#xff0c;都是服务端开发。这次新的需求要接收服务端的遥测数据&#xff0c;这就涉及到客户端开发了。 客户端开发没搞过啊&#xff0c;挑战不少&#xff0c;但是人不就是通过战胜困难才成长的嘛。通过查看libiec61850的客户端API发现&#xf…...

从 Revit 到 3DTiles:GISBox RVT 切片器如何让建筑图元在 Web 端展示

在GIS&#xff08;地理信息系统&#xff09;行业蓬勃发展的当下&#xff0c;数据处理与展示的效率和精准度成为关键。GISBox作为一款功能强大的一站式三维GIS数据编辑、转换、发布平台&#xff0c;凭借其独特的“RVT切片器”功能&#xff0c;在RVT图元处理方面也有着不俗的表现…...

如何轻松、安全地管理密码(新手指南)

很多人会为所有账户使用相同、易记的密码&#xff0c;而且常常多年不换。虽然这样方便记忆&#xff0c;但安全性非常低。 您可能听说过一些大型网站的信息泄露事件&#xff0c;同样的风险也可能存在于您的WordPress网站中。如果有不法分子获取了访问权限&#xff0c;您的网站和…...

【storage】

文章目录 1、RAM and ROM2、DRAM and SRAM2、Flash Memory&#xff08;闪存&#xff09;4、DDR and SPI NOR Flash5、eMMC6、SPI NOR vs SPI NAND vs eMMC vs SD附录——prototype and demo board附录——U盘、SD卡、TF卡、SSD参考 1、RAM and ROM RAM&#xff08;Random Acce…...

GC1808:高性能24位立体声音频ADC芯片解析

1. 芯片简介 GC1808 是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于家庭影院、蓝牙音箱等场景。 核心特性 高精度&#xff1a;24位分辨率&#xff0c;…...

【JVM】三色标记法原理

在JVM中&#xff0c;三色标记法是GC过程中对象状态的判断依据&#xff0c;回收前给对象设置上不同的三种颜色&#xff0c;三色分为白色、灰色、黑色。根据颜色的不同&#xff0c;决定对象是否要被回收。 白色表示&#xff1a; 初始状态&#xff1a;所有对象未被 GC 访问。含义…...

视觉SLAM基础补盲

3D Gaussian Splatting for Real-Time Radiance Field Rendering SOTA方法3DGS contribution传统重建基于点的渲染NeRF 基础知识补盲光栅化SFM三角化极线几何标准的双目立体视觉立体匹配理论与方法立体匹配的基本流程李群和李代数 李群和李代数的映射李代数的求导李代数解决求导…...