系统学习Linux-PXE无人值守装机(附改密)
目录
pxe实现系统自动安装pxe工作原理
大致的工作过程如下:
PXE的组件:
一、配置vsftpd
二、配置tftp
三、准备pxelinx.0文件、引导文件、内核文件
四、配置dhcp
配置ip
配置dhcp
五、创建default文件
六、新建测试主机用来测试装机效果
七、配置无人值守
八、linux密码破
pxe实现系统自动安装
pxe工作原理
pxe(preboot execute environment)是由inter设计的协议,它可以使计算机通过网络启动,协议分为client/server的网络模式,pxe client在网卡的rom中(网卡需要支持pxe,目前几乎所有网卡都支持pxe),当计算机引导时,bios把pxe client调入到内存执行,pxe client 通过网络从服务器下载映像,并由此支持通过网络启动操作系统,可以实现无人值守的系统安装,只要客户机加电开机,客户机就会通过网络来引导并安装系统,这种系统安装方式适用于大批量的客户机的系统安装,避免了人为的系统引导,参数设置等所有的交互,而安装时的参数由事先编写好的文件来提供,从而提供工作效率。
大致的工作过程如下:
1、 客户机发送dhcp广播请求
2、dhcp服务器向客户机提供可用的ip地址并告知客户机tftp服务器的地址
3、tftp向客户机提供内核,驱动及引导文件
4、通过ftp/http/nfs获得安装文件,而安装时的参数由ks.cfg来提供
这样不仅系统可以通过网络引导并安装,在安装时也没有了交互的信息,从而实现了完全的加电自检安装。
PXE的组件:
| vsftpd/httpd/nfs | 负责提供系统的安装文件 |
| tftp | 负责提供系统安装前的引导文件与内核文件 |
| dhcp | 负责提供客户端的IP地址分配与pxe引导文件,及pxe服务器地址 |
一、配置vsftpd
- 关闭防火墙与selinux
- 安装vsftpd
- 启动vsftpd
######配置本地yum
cd /etc/yum.repos.d
mkdir back
mv CentOS-* back
vim local.repo
###插入
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
###挂载sr0,安装vsftpd
mount /dev/sr0 /mnt
yum -y install vsftpd
systemctl start vsftpd
- 拷贝系统文件到/var/ftp/
cd /var/ftp
mkdir centos7
cp -r /mnt/* /var/ftp/centos7
sync
二、配置tftp
###安装
yum install -y tftp-server
###修改配置文件
vim /etc/xinit.d/tftp
###修改处
disable=no
###启动
systemctl start tftp
三、准备pxelinx.0文件、引导文件、内核文件
###准备pxelinux.0文件
yum install -y syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
###准备引导文件、内核文件
cd /mnt/images/pxeboot
cp initrd.img vmlinuz /var/lib/tftpboot
四、配置dhcp
配置ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
###改为
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.253
PREFIX=24
GATEWAY=192.168.100.254
###保存退出,重启网络、ip a 查看
systemctl restart network
ip a


配置dhcp
yum -y install dhcp
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
##删除前3段的subnet字段,修改剩下的字段
subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.1 192.168.100.252;#option domain-name-servers ns1.internal.example.org;#option domain-name "internal.example.org";option routers 192.168.100.254;option broadcast-address 192.168.100.255;default-lease-time 600;max-lease-time 7200;next-server 192.168.100.253;filename "pxelinux.0";
}
###启动DHCP服务
systemctl start dhcpd
systemctl start nfs
systemctl start tftp
五、创建default文件
cd /var/lib/tftpboot
mkdir pxelinux.cfg
cd pxelinux.cfg
cp /var/lib/tftpboot/initrd.img vmlinuz /var/lib/tftpboot/pxelinux.cfg/
vim default
###插入内容
default auto #默认安装标签
prompt 1 #等待用户确认,1表示等待,0表示不等待
label auto #定义标签kernel vmlinuz #指定内核append initrd=initrd.img method=ftp://192.168.100.253/centos7 #指定引导镜像文件与系统安装文件
六、新建测试主机用来测试装机效果
新建虚拟机






开机,连接成功,按下回车开始安装

加载完后自动调度显示以下测试完毕

七、配置无人值守
配置ks文件
##使用图形界面配置
yum install -y system-config-kickstart.noarchsystem-config-kickstart
基本配置

安装方法

引导装在程序选项

分区信息




脚本看自己是否需要配置
例:local脚本

保存

查看是否保存

拷贝:从/root/anaconda-ks.cfg文件中拷贝软件安装字段到ks.cfg
vim anaconda-ks.cfg
##复制以下字段插入到ks.cfg
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony
kexec-tools%end
拷贝ks.cfg到ftp
cp ks.cfg /var/ftp
修改default文件
vim /var/lib/tftpboot/pxelinux.cfg/default
###修改
default auto
prompt 0
label autokernel vmlinuzappend initrd=initrd.img method=ftp://192.168.100.254/centos7 ks=ftp://192.168.100.254/ks.cfg
验证
自动自动自动
加载完后会自动配置并安装


安装好后会自动重启
ip是dhcp的地址池分配

八、linux密码破解
自动安装或许有忘记密码的可能所以写一份root密码恢复步骤
press ‘e’
此界面按e可进入编辑选项
找到linux行在最后加入rd.baeak 输入后执行ctrl+x开始编辑

输入ctrl+x后会进入编辑界面 switch_root:/# ;

switch_root:/# mount -o remount,rw /sysroot/ /以读写方式重新挂载/sysroot目录;
switch_root:/# chroot /sysroot /修改/sysroot;
sh-4.2# passwd /输入要修改的密码两遍
■ ■ ■ ■ root ■ ■ ■ ■
■ ■ ■ ■ ■
■ ■ ■ ■ ■ ■ ■ ■ ■
passwd ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
sh-4.2# touch /.autorelavel /创建/.autorelabel,如果开启SeLinux必须配置;
sh-4.2# exit /退出
switch_root:/# exit /重启

相关文章:
系统学习Linux-PXE无人值守装机(附改密)
目录 pxe实现系统自动安装pxe工作原理 大致的工作过程如下: PXE的组件: 一、配置vsftpd 二、配置tftp 三、准备pxelinx.0文件、引导文件、内核文件 四、配置dhcp 配置ip 配置dhcp 五、创建default文件 六、新建测试主机用来测试装机效果 七、…...
关于web3.0平台的详细说明
Web3.0是指下一代互联网的发展阶段,它以区块链技术为基础,具有去中心化、安全性强、用户数据私密性保护等特点。在Web3.0的社交平台中,人们可以更好地掌控自己的数据,并获得更加开放和透明的社交体验。 以下是一些关于Web3.0社交…...
Git命令简单使用
1、上传仓库到 git 上传仓库到 git 上之前需要配置用户名和邮箱 git config --global user.name "user_name" git config --global user.email "email_id"在本地仓库中使用名称初始化 git init使用下面的命令将文件添加到仓库 # 添加一个或多个文件到暂…...
Flutter(十)网络请求和文件
目录 文件操作网络请求1.Dio库2.websocket3.JSON转Dart Model 文件操作 APP目录 Android 和 iOS 的应用存储目录不同,PathProvider (opens new window)插件提供了一种平台透明的方式来访问设备文件系统上的常用位置。该类当前支持访问两个文件系统位置:…...
Unity RenderStreaming 云渲染-黑屏
🥪云渲染-黑屏 网页加载出来了,点击播放黑屏 ,关闭防火墙即可!!!!...
Java设计模式:四、行为型模式-04:中介者模式
文章目录 一、定义:中介者模式二、模拟场景:中介者模式三、违背方案:中介者模式3.1 工程结构3.2 创建数据库3.3 JDBC工具类3.4 单元测试 四、改善代码:中介者模式4.1 工程结构4.2 中介者工程结构图4.3 资源和配置类4.3.1 XML配置对…...
【GO】LGTM_Grafana_Tempo(1)_架构
最近在尝试用 LGTM 来实现 Go 微服务的可观测性,就顺便整理一下文档。 Tempo 会分为 4 篇文章: Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架使用发送数据到 tempo 第一篇是关于,tempo 的架构ÿ…...
MFC 与 QT“常用控件”对比
1、 常用控件 MFC QT 1.静态文本框/标签 CStatic QLabel 按钮 CButton包含了3种样式的按钮,Push Button,Check Box,Radio Box 4种不同的类 2.按钮:推动按钮 Push Button(同一个类CButton) QPushButton 3.按钮…...
linux 下安装chrome 和 go
1. 安装google-chrome 1.1 首先下载google-chrome.deb安装包 之后 安装 gdebi包 sudo apt install gdebi 1.2 安装所要安装的软件 sudo gdebi code_1.81.1-1691620686_amd64.deb 1.3 解决Chrome无法启动问题 rootubuntu:~/Downloads# whereis google-chrome google-chrome…...
OpenCV: cv2.findContours - ValueError: too many values to unpack
OpenCV找轮廓findContours报错 ValueError: not enough values to unpack (expected 3,got 2) 问题指向这行代码👇 binary, cnts, hierarchy cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE ) 报错的意思是需要3个返回值但只给了两…...
Vue框架--Vue概述
1.vue概述 Vue是一个渐进式JavaScript 框架,用于动态构建用户界面。 2.vue的特点 (1).遵循MVVM模式 MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版 (2).采用组件化模式,提高代码的复用率,且让代码更好的维护。 组件化:简单的说就是使用xxx.vue模式包含一个页面…...
Fiddler安装与使用教程(1) —— 软测大玩家
😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…...
Ubuntu 22.04安装 —— Win11 22H2
目录 Ubuntu使用下载UbuntuVmware 安装图示安装步骤图示 Ubuntu使用 系统环境: Windows 11 22H2Vmware 17 ProUbutun 22.04.3 Server Ubuntu Server documentation | Ubuntu 下载 Ubuntu 官网下载 建议安装长期支持版本 ——> 可以选择桌面版或服务器版(仅包…...
【STM32】IIC的初步使用
IIC简介 物理层 连接多个devices 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。 两根线 一个 I2C 总线只使用两条总线线路,一条双向串行数…...
音视频 ffmpeg命令参数说明
主要参数: -i 设定输入流 -f 设定输出格式(format) -ss 开始时间 -t 时间长度 音频参数: -aframes 设置要输出的音频帧数 -b:a 音频码率 -ar 设定采样率 -ac 设定声音的Channel数 -acodec 设定声音编解码器,如果用copy表示原始编解码数据必须…...
Go学习第十天
打印报错堆栈信息 安装errors包 go get github.com/pkg/errors 具体使用 // 新生成一个错误, 带堆栈信息 func New(message string) error//只附加新的信息 func WithMessage(err error, message string) error//只附加调用堆栈信息 func WithStack(err error) error//同时附…...
pytorch中 nn.Conv2d的简单用法
torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride1, padding0, dilation1, groups1, biasTrue,padding_modezeros)参数介绍: in_channels:卷积层输入通道数 out_channels:卷积层输出通道数 kernel_size:卷积层的…...
前端项目工程化之代码规范
目录 一、前言二、ESLint三、Prettier四、项目实战4.1 环境依赖版本4.2 使用pnpm4.3 git提交规范 五、资源 收集六、源码地址 一、前言 前端项目工程化之代码规范是指在前端项目中定义一套代码规范,以确保项目中的代码风格和格式一致,提高代码的可读性和…...
MyBaits Generator
参考文档 MyBatis Generator Core – Introduction to MyBatis Generator MyBatis Generator 详解_enablesubpackages_isea533的博客-CSDN博客 一文解析 MyBatis Generator 的使用及配置 - 掘金 1. Introduction MyBatis Generator (MBG) 是 MyBatis MyBatis的代码生成器。…...
JavaWeb 速通Ajax
目录 一、Ajax快速入门 1.基本介绍 : 2.使用原理 : 二、Ajax经典入门案例 1.需求 : 2.前端页面实现 : 3. 处理HTTP请求的servlet实现 4.引入jar包及druid配置文件、工具类 : 5.Domain层实现 : 6.DAO层实现 : 7.Service层实现 : 8.运行测试 : 三、JQuery操作Ajax 1 …...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...
[USACO23FEB] Bakery S
题目描述 Bessie 开了一家面包店! 在她的面包店里,Bessie 有一个烤箱,可以在 t C t_C tC 的时间内生产一块饼干或在 t M t_M tM 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC,tM≤109)。由于空间…...
未授权访问事件频发,我们应当如何应对?
在当下,数据已成为企业和组织的核心资产,是推动业务发展、决策制定以及创新的关键驱动力。然而,未授权访问这一隐匿的安全威胁,正如同高悬的达摩克利斯之剑,时刻威胁着数据的安全,一旦触发,便可…...
云原生时代的系统设计:架构转型的战略支点
📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、云原生的崛起:技术趋势与现实需求的交汇 随着企业业务的互联网化、全球化、智能化持续加深,传统的 I…...
