【Linux】Kickstart 配置U盘自动化安装Linux系统
文章目录
- 前言
- 一、刻录USB
- 二、配置以BIOS方式启动引导
- 2.1 引导文件配置
- 2.2 KS文件配置
- 三、以EFI方式启动引导
- 3.1 引导文件
- 3.2 KS文件
- 四、 总结
前言
之前安装系统,例如在VMware虚拟机中或物理服务器中,都是根据图形界面上的指示进行下一步这类的操作。
现在将无人为干预的U盘自动化安装系统的配置记录一下。
一、刻录USB
刻录需要几样东西,除了U盘以外,另两样则是:
1)ISO镜像文件,这个根据自己的需求下载对应的系统镜像文件即可,本文使用的是CentOS 7镜像;
2)刻录软件,可以选择UltraISO或者Rufus,其具体使用方式,此处不做介绍,可自行百度摸索。
二、配置以BIOS方式启动引导
系统ISO镜像文件刻录到U盘后,此时即可通过它来安装操作系统到服务器上,但这种方式往往在安装过程中需要人工点击时区、目标磁盘、设置账号密码等操作。
此时,我是希望它能全程自动化完成安装过程中所需要配置的内容,无需人为干预的。
那么,就需要以下两个文件的配置,即引导文件和Kickstart文件的配置,来实现这一目的。
2.1 引导文件配置
引导文件,我这边主要修改的便是开机菜单选项的内容(照着前面修改即可,注意路径名必须一致),即添加上一个新的开机选项,并将其设置为默认,其ks文件指向U盘中我们即将配置的Kickstart文件。
引导文件的路径为:USB盘符:/isolinux/syslinux.cfg
default vesamenu.c32
timeout 200 # 默认为600,即菜单选项超时为60秒,这边改为200,即20秒display boot.msg
...
...label linuxmenu label ^Install CentOS 7kernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quietlabel checkmenu label Test this ^media & install CentOS 7#menu defaultkernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet####### 添加的内容 #######
label linux-ksmenu label Kickstart Installation of CentOS 7menu default # 将其他label的menu default注释掉,这边添加为默认选项kernel vmlinuzappend initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 inst.ks=hd:LABEL=CentOS\x207\x20x86_64:/centos7-ks-bios.cfg quiet
添加自定义label,设置menu的label(菜单选项显示的文本内容),设置本label为默认选项(注释掉前面其他label的default),当等待时间超时后,系统会进入默认选项。kernel和append的内容照着前面复刻一份即可,但append的后面需注意添加上ks文件的路径,即指向CentOS 7 x86_64/centos7-ks-bios.cfg文件(\x20表示空格)
2.2 KS文件配置
Kickstart文件并不是在刻录镜像时自动生成的,而是需要自己单独新建个文件,这边命名就是centos7-ks-bios.cfg,位置放在U盘根目录下。ks文件的内容,其实可以在一个现有系统中找到/root/anaconda-ks.cfg,根据该文件做自定义调整;或者安装system-config-kickstart包,一步步根据需要定制自己的ks文件。【Linux】自定义生成Kickstart(system-config-kickstart)
这边放一个具体示例:
#version=DEVEL
#Install OS instead of upgrade
install
# System authorization information 密码启用shadow方式,使用sha512加密方式
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install 使用文本方式安装,非图形化界面
text
# Run the Setup Agent on first boot
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts 键盘布局
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8# Network information 网络配置,这边就配置了dhcp,也可直接定义IP地址
network --bootproto=dhcp --ipv6=auto --onboot=on --activate
#network --bootproto=static --device=eth0 --gateway=192.168.112.254 --ip=192.168.112.20 --nameserver=114.114.114.114 --netmask=255.255.255.0
network --hostname=asdfv.com# Root password
# default 000000
rootpw --iscrypted $6$re6WtU5u8cKmIwpY$CJMAKR/cvQ8hDfSRB6eNtEH.qHIBXpzZoli5QCPM2fXZ7kzxxM/6vAQspTtEuvSTxyLoDas97WIqBDI4Ff6ln/
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel --drives=sda
# Disk partitioning information# 20G 对盘符进行分区,这边可根据实际进行修改,size的单位为MB
part /boot --fstype="xfs" --ondisk=sda --size=1024
part / --fstype="xfs" --ondisk=sda --size=10240
part /data --fstype="xfs" --ondisk=sda --size=5120
part swap --fstype="swap" --ondisk=sda --size=3072# 安装指定软件包
%packages
@^minimal
@core
@development
net-tools
tree
sysstat
traceroute
iproute
tcpdump
lrzsz
%end%addon com_redhat_kdump --disable --reserve-mb='auto'%end# 这边配置,在系统安装完成后需要执行的命令。此处示例为创建本地YUM源
%post# some configuration after install,eg. yumrepo useradd
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/base.repo << EOF
[base]
name=iso
basurl=file:///mnt/
gpgckeck=0
enabled=1
EOF%end%anaconda
# password policy 密码策略,可根据需要修改
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# 所有安装及配置完成后,重启
reboot
三、以EFI方式启动引导
3.1 引导文件
若是以EFI方式引导的话,则需要修改
USB:/EFI/BOOT/grub.cfg文件,添加上和前面相类似的菜单选项,ks文件指向目标。
set default="2" # 设置默认为第3个选项,这个就是数组的下标,从0开始算
...
set timeout=6 # 设置超时为6秒, 单位是秒
...
menuentry 'Kickstart Installation of CentOS 7' --class fedora --class gnu-linux --class gnu --class os {linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CENTOS\x207\x20X86_64 inst.ks=hd:LABEL=CENTOS\x207\x20X86_64:/centos7-ks-efi.cfg quietinitrdefi /images/pxeboot/initrd.img
}
3.2 KS文件
这块内容和前面BIOS的KS文件内容基本一样的,可根据需要进行修改。
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
text
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8# Network information
network --bootproto=dhcp --ipv6=auto --onboot=on --activate
network --hostname=localhost.localdomain# Root password
rootpw --iscrypted $6$yaZQ9CkRRIukN3ag$DewKZEbd/9Uj3A4E14QgZlli07tXThDi.QAI5i9flVglIQHspYvko1hoPB9Ydv8HuDyqUB7pcH5pDzBZXuNqt.
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
user --name=admin --password=$6$C/y6BU92s1VHuXVA$FOeMdzmRifU1EVOLSFzonkmzWoYXhEallHPiCxmQcjJ94KymP2BNt42FxRjMoSghYBCRAmr15AqArhGJHY/AG/ --iscrypted --uid=1000 --gecos="admin" --gid=1000
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel --drives=sda
# Disk partitioning information
part /boot/efi --fstype="efi" --ondisk=sda --size=200 --fsoptions="umask=0077,shortname=winnt"
# 20G
part /boot --fstype="xfs" --ondisk=sda --size=1024
part / --fstype="xfs" --ondisk=sda --size=10240
part /data --fstype="xfs" --ondisk=sda --size=5120
part swap --fstype="swap" --ondisk=sda --size=3072%packages
@^minimal
@core
@development
chrony
net-tools
sysstat
tree%end%addon com_redhat_kdump --disable --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
%endreboot
四、 总结
以上就是U盘自动化安装系统的配置,至于将其实际应用一下,这块内容我放到后面一篇文章里【Linux】使用U盘自动化安装Linux(VMware虚拟机)。
相关文章:
【Linux】Kickstart 配置U盘自动化安装Linux系统
文章目录前言一、刻录USB二、配置以BIOS方式启动引导2.1 引导文件配置2.2 KS文件配置三、以EFI方式启动引导3.1 引导文件3.2 KS文件四、 总结前言 之前安装系统,例如在VMware虚拟机中或物理服务器中,都是根据图形界面上的指示进行下一步这类的操作。 现…...
【Spring MVC】这一篇,带你从入门到进阶
目录 1、什么是MVC? 2、什么是 Spring MVC 3、如何学好 Spring MVC? 3.1、如何创建 Spring MVC 项目 3.1.1、使用Spring Initializr创建(推荐) 3.2、将 Spring 程序与用户(浏览器)联通 3.3、基础注解…...
InstallAware Multi-Platform updated
InstallAware Multi-Platform updated 原生ARM:为您的内置设置、IDE和整个工具链添加了Apple macOS和Linux ARM构建。 本地化:引擎内多语言感知,可再分发工具,具有资产隔离功能,使您的IP保持安全。 模板:将…...
Spring Batch 高级篇-多线程步骤
目录 引言 概念 案例 转视频版 引言 接着上篇:Spring Batch ItemWriter组件,了解Spring Batch ItemWriter处理组件后,接下来一起学习一下Spring Batch 高级功能-多线程步骤 概念 默认的情况下,步骤基本上在单线程中执行&…...
关于iframe一些通讯的记录(可适用工作流审批)
一.知识点(1).我们可以通过postMessage(发送方)和onmessage(接收方)这两个HTML5的方法, 来解决跨页面通信问题,或者通过iframe嵌套的不同页面之间的通信a.父页面代码如下<div v-if"src" class"iframe"><iframeref"iframe"id…...
JavaWeb
1、静态Web html、css 2、动态Web 提供给所有人看的数据始终会发生变化。技术栈:Servlet/JSP,ASP,PHP。 Web应用程序:可以提供浏览器访问的程序。 1、这个统一的web资源会被放在同一个文件夹下,web应用程序-->Tom…...
ip段192.168.1.0/24和192.168.0.0/16
192.168.1.0/24192.168.1.1 ~ 192.168.1.254前24位为网络前缀,后8位代表主机号。如下1100 0000,1010 1000,0000 0001,0000 0000192.168.0.0/16192.168.0.1 ~ 192.168.255.254前16位为网络前缀,后16位代表主机号。如下1…...
《爆肝整理》保姆级系列教程python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
简介 大多数的初学者在使用 unittest 框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。虽然或许通过代码实现了,也是稀里糊涂的一知半解,这样还好&am…...
【第二章 IOC操作bean管理(XML注入其他类型属性(字面量,外部bean,内部bean,级联赋值)、XML注入集合属性)】
第二章 IOC操作bean管理(XML注入其他类型属性(字面量,外部bean,内部bean,级联赋值)、XML注入集合属性) 1.IOC操作bean管理(XML注入其他类型属性) (1…...
Kotlin-枚举和印章
kotlin-枚举 枚举也是一个对象,枚举对象的定义需要使用enum关键字 枚举对象可以定义函数 假设定义一个星期枚举对象。就是一下写法 enum class Week {星期一,星期二,星期三,星期四,星期五,星期六,星期日;//打印星期几fun printWeek(){println("这是星期枚举对…...
_linux (TCP协议通讯流程)
文章目录TCP协议通讯流程TCP 和 UDP 对比TCP协议通讯流程 下图是基于TCP协议的客户端/服务器程序的一般流程: 服务器初始化: 调用socket, 创建文件描述符;调用bind, 将当前的文件描述符和ip/port绑定在一起;如果这个端口已经被其他进程占用了, 就会bind失 败;调用listen, 声…...
PMP考试详解,新考纲有什么变化?
一,为什么优先考虑PMP持证人员? PMP证书在我国大型企业、跨国企业、央企/国企等单位的招聘中都比较重视,特别是在许多项目投标环节中,明确标明需要有PMP持证人员,才能在投标、竞标中代表公司有资格承担项目。 除此之…...
C++学习笔记-日期和时间
C中可以使用的日期时间API主要分为两类: C-style 日期时间库,位于头文件中。这是原先<time.h>头文件的C版本。 chrono库:C 11中新增API,增加了时间点,时长和时钟等相关接口。 在C11之前,C编程只能使…...
Nordic nRF芯片FDS模块学习
FDS系统学习 文章目录FDS系统学习一、ROM,RAM,FLASH作用二、ROM,RAM和FLASH在单片中的运作原理三、Flash访问模块FDS用法1. FDS在sdk_config.h中的配置2. fds_register()注册3. fds_record_write()写记录4. fds_record_find()查找5. fds_record_open()读…...
JVM 学习(1)—JVM 与 JMM 内存模型简单理解
一、JVM 内存模型概述 (1) 为什么会出现 JVM 内存模型呢? JVM 内存模型是为规范描述 Java 虚拟机在执行 Java 程序时,将程序中的数据和代码存储到计算机内存中的方式和规则。JVM 内存模型定义 Java 虚拟机所使用的内存结构以及内存区域之间的关系&…...
NMS详解
(类别,坐标1,坐标2,坐标3,坐标4,类别分数) step1:对最后一列分数进行排序 ,可以看到类别就被打乱了 step2: 弹出得到selected_bboxes作为基准,减少bbox_list。其实就是准…...
考出PMP证书到底有没有用?
我们将从三方面分享: 1. PMP 证书在国内的含金量怎么样? 2. HR 如何看待 PMP 证书? 3. 拿到 PMP 证书后,有哪些变化? 一,PMP证书的含金量 说到 PMP 证书的含金量,相信这个问题是所有学员都…...
寻路库recastnavigation改造
本文是介绍对寻路库recastnavigation 改造,使得使用更加友好。 Git仓库: https://github.com/jiangguilong2000/recastnavigation 首先,我们要做一些前置操作 SDL: 开放源代码的跨平台多媒体开发库 Premake:量跨平台构建系统 环境: VS 2019…...
pandas 一些设置随记
显示所有的行、列 # 显示所有列 pd.set_option(display.max_columns, None) # 显示所有行 pd.set_option(display.max_rows, None)不换行显示 pd.set_option(display.width, 1000) 输出对其 pd.set_option(display.unicode.ambiguous_as_wide, True) pd.set_option(display.…...
SSIM学习
SSIM原文链接:https://www.researchgate.net/profile/Eero-Simoncelli/publication/3327793_Image_Quality_Assessment_From_Error_Visibility_to_Structural_Similarity/links/542173b20cf203f155c6bf1a/Image-Quality-Assessment-From-Error-Visibility-to-Struct…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
