系统学习Linux-PXE无人值守装机(附改密)

news2025/1/20 19:06:43

目录

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

  1. 关闭防火墙与selinux
  2. 安装vsftpd
  3. 启动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
  1. 拷贝系统文件到/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.noarch
 
system-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 auto
        kernel vmlinuz
        append 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                          /重启

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

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

相关文章

github指南

记录一些Github上的宝贵功能 1、github trending/star 1.1查看github的热门趋势 可以选择点击上面热门趋势的链接,从主页点进去的方式如下 在这个页面中,你可以选择language/data range等来搜索到你想要的 1.2 查看github的star排行 比如&#xff1a…

出货量腰斩,不用中国芯片,美国PC巨头要凉了,苹果成为大赢家

市调机构Canalys公布的二季度数据显示美国PC巨头戴尔在中国市场的出货量同比暴跌52%,显示出它在公开宣布舍弃中国芯片之后,中国消费者正纷纷抛弃它,毕竟如今的PC品牌如此之多,完全有更多的替代选择。 Canalys公布的数据显示&#…

Python Opencv实践 - 拉普拉斯(Laplacian)算子边缘检测

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_GRAYSCALE) print(img.shape)#拉普拉斯边缘检测 #cv.Laplacian(src, ddepth, dst, ksize, scale, delta, borderType) #src:原图 …

正中优配:沪指震荡涨0.23%,保险、酿酒等板块走强,半导体板块下挫

1日早盘,沪指、深成指盘中强势震动上扬,创业板指回落翻绿,科创50指数跌超1%;两市半日成交缺乏5000亿元。 到午间收盘,沪指涨0.23%报3127.19点,深成指涨0.25%,创业板指跌0.23%,科创5…

Ubuntu22.04安装Mongodb7.0

Ubuntu安装Mongodb 1.平台支持2.安装MongoDB社区版2.1导入包管理系统使用的公钥2.2为MongoDB创建列表文件2.3重新加载本地包数据库2.4安装MongoDB包1.安装最新版MongoDB2.安装指定版MongoDB 3.运行MongoDB社区版1.目录2.配置文件3.初始化系统4.启动MongoDB5.验证MongoDB是否成功…

列表、字典的删除操作

1.列表的删除操作,可以使用del 列表[索引]、列表.pop(索引)、列表.remove(元素)、列表.clear() del(如果不指定列表索引,就是删除整个列表,再使用就会出现 name XX is not defined) a [10, 20, 30, 40] print(f"删除前为:{a}") de…

简易虚拟培训系统-UI控件的应用5

目录 Toggle控件简介 示例-使用Toggle组实现主轴速度选择 本篇介绍UI控件Toggle,尝试一个小示例-使用单选框实现速度的选择控制。 Toggle控件简介 1. Toggle的结构如下:最重要的Toggle组件挂在Toggle节点上,下面的Image组件用于显示单选框…

大数据Flink(七十一):SQL的时间属性

文章目录 SQL的时间属性 一、Flink三种时间属性简介

【jsthree.js】全景vr看房进阶版

three小结: Scene场景 指包含了所有要渲染和呈现的三维对象、光源、相机以及其他相关元素的环境;场景可以被渲染引擎或图形库加载和处理,以生成最终的图像或动画 常见属性: scene.background new THREE.Color(0x000000); // …

【01背包理论】01背包问题dp[j](滚动数组) <动态规划板子>

【01背包理论】01背包问题dp[j] 有 n 件物品和一个最多能背重量为 w 的背包。 第 i 件物品的重量是 weight[i],得到的价值是 value[i] 。 每件物品只有一个,求解将哪些物品装入背包里物品价值总和最大。 题解 动态规划 确定 dp 数组以及下标的含义 滚…

wxpython: 数字时钟秒表

wxpython 数字时钟秒表;定时器和线程>示例 编写 wx_clock.py 如下 # -*- coding: utf-8 -*- """ 定时器和线程>示例""" import wx import time import threadingclass MyFrame(wx.Frame): def __init__(self):""…

【Java核心知识】线程基础知识

文章目录 线程线程与进程的区别创建线程的方法方法一:继承Thread类方法二:实现Runnable接口方法三:使用Callable和FutureTask创建带返回值的线程方法四:通过线程池创建线程 线程的基本操作线程的状态守护线程 线程 线程与进程的区…

基于Java的学生宿舍管理系统,springboot+jsp,MySQL数据库,前后端分离,学生+宿舍管理员+系统管理员三种身份,完美运行,有一万字论文。

基于Java的学生宿舍管理系统,springbootjsp,MySQL数据库,前后端分离,学生宿舍管理员系统管理员三种身份,完美运行,有一万字论文。 学生:个人信息管理、保修、假期(入校、离校&#x…

【网络】路由配置实践

网络实践-路由篇 本文使用vmware虚拟机进行路由表配置实践,通过配置路由表连接两个不同的网络 网络规划: 准备三台centos7虚拟机,其中一台作为路由设备router,其余两台分别代表处在不通网络中的pc1和pc2。因此router虚拟机需要分…

IntelliJ IDEA的远程开发(Remote Development)

DEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发操作即可,官方给出的逻辑图如下,可见通过本地的IDE和服务器上的IDE backend将本地电脑和服务器打通&am…

iOS设备管理软件iMazing2024

文件系统是一种用于在存储设备上组织文件和文件夹的系统。所有的存储设备(如计算机、USB存储器、手机等)都有着自己的文件系统。 iMazing文件系统功能将iOS设备中封闭而复杂的文件管理系统整合在一起,让您管理文件像在电脑中使用Windows文件…

肖sir __linux__面试题和考核05

面试题 1、查看linux中第11行到第20行的数据(比如文档a 有30行) 方法1:tail -n 11 mm |head -n10 n 表示从第10行开始,取前10行 方法2:head -n -10 mm| tail -n 10 表示从末尾第10行开始,最后10行 方法3&am…

ThreadLocal原理剖析

一.ThreadLocal的含义 ThreadLocal也就是线程本地变量,创建了一个ThreadLocal变量,访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际上是操作自己本地内存里面的变量,从而起到线…

基于单片机的简易智能电动车设计

一、项目介绍 智能交通工具在现代社会中起着越来越重要的作用,电动车作为一种环保、便捷的交通工具,受到了广泛的关注和应用。本设计基于单片机技术,设计一款简易智能电动车,实现基本的控制和功能,并提供良好的用户体…

kubectl入门

一.kubectl的三种资源管理方式: 二. kubectl资源介绍: 1.namespace:实现多套环境的资源隔离或者多租户的资源隔离。k8s中的pod默认可以相互访问,如果不想让两个pod之间相互访问,就将其划分到不同ns下。 2.pod&#x…