kickstart自动安装脚本,pxe网络安装

news2024/12/23 15:34:59

目录

1 kickstart图形化生成脚本工具

1.1 安装apache

1.2 创建挂载镜像软链接

1.3 图形生成自动化脚本选项

1.4 修改生成的自动化脚本

1.5 将脚本放至网站根目录

2 安装系统

2.1 关闭DHCP自动分配

2.2 下载配置DHCP服务

2.3 重启DHCP服务

2.4 使用pxe方法安装系统(网卡安装)

2.5 安装syslinux

2.5.1 查看帮助文档

2.5.2 以下为翻译

2.5.3 安装tftp服务

2.5.4 pxelinux.0 文件的作用

2.5.5 pxe 过程原理

3 网络安装系统

3.1 删除光驱

3.2 进入BIOS

3.2.1 修改网卡安装优先级

3.3 安装完成再次进入BIOS

3.3.1 修改网卡安装优先级

3.4 验证是否安装成功


 

1 kickstart图形化生成脚本工具

rhel7 系统中提供图形的 kickstart 制作方式
rhel8 中已经把图形的工具取消 并添加到 rhn 网络中
rhel8 中如果无法通过 rhn 网络制作 kickstart 可以使用模板生成
在已经装好的 rhel8 / root / anaconda - ks.cfg 就是安装当前系统时回答的所有问题的答案
生成的 kickstart 此文件为 kickstart 模板
# 下载图形化生成脚本工具

[root@www ~]# yum install system-config-kickstart


# 打开图形化工具--注意:需在图形化管理界面才能打开

[root@www ~]# system-config-kickstart

1.1 安装apache

 
# 下面开始安装apache服务器并配置

[root@www ~]# yum install httpd

[root@www ~]# systemctl enable --now httpd

# 查看服务是否运行

[root@www ~]# systemctl status httpd.service 

 
可以使用网站根目录,也可以使用虚拟主机自己命名一个目录

1.2 创建挂载镜像软链接

# 创建软链接将本地挂载镜像的软链接放到 /var/www/html   并命名为cdrom
[root@www ~]# ln -s /mnt/cdrom/ /var/www/html/cdrom
打开windows浏览器地址框输入http://192.168.239.22/cdrom,发现成功了

1.3 图形生成自动化脚本选项

回到虚拟机图形化页面的自动生成脚本软件
以下就是生成脚本选择的选项
ps:为什么指定/cdrom ? 因为cdrom是软件仓库,在其他通过网络安装的主机中需要安装一些软件,比如说图形化界面、或者http服务这类型的,由于自己的系统还没有安装好,这个时候就得使用到远程软件仓库了
编写shell脚本在系统安装完成之后运行

1.4 修改生成的自动化脚本

保存并打开ks.cfg 增加这几行,表示在安装过程中安装httpd服务

1.5 将脚本放至网站根目录

退出ks.cfg文件,将文件复制到网站根目录 --目的是为了网络安装时远程主机能访问到ks.cfg脚本
[root@www ~]# cp ks.cfg /var/www/html/
在浏览器打开可以访问得到
 

2 安装系统

但只靠以上的步骤来安装系统的话可能是不够的,由于我们选择的是http通过网络来远程安装系统,但在客户端安装之前是没有网络的,这个时候就需要dhcp服务器给客户端分配IP使得客户端可以使用网络进行远程安装

2.1 关闭DHCP自动分配

2.2 下载配置DHCP服务

# 服务端配置dhcp服务

[root@www ~]# yum install dhcp

# 查看dhcp 服务的配置文件
[root@www ~]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases

# 使用cat查看dhcp服务的配置文件
[root@www ~]# cat /etc/dhcp/dhcpd.conf

发现只有几行,并且只有注释内容为:

需要配置DHCP 服务得看  /usr/share/doc/dhcp*/dhcpd.conf.example 下的文件 
[root@www ~]# \cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

# \cp是用于复制文件的命令。在这里,\是为了防止shell对命令进行解释,确保cp命令被正确传递给shell执行。-f选项表示强制覆盖目标文件,如果目标文件已经存在。

[root@www ~]# vim /etc/dhcp/dhcpd.conf 

修改需要的参数

2.3 重启DHCP服务

# 重启dhcp服务

[root@www ~]# systemctl restart dhcpd


2.4 使用pxe方法安装系统(网卡安装)

# PXE的方式安装系统(网卡安装系统)

# 介绍一下安装系统需要使用到的iso光盘文件

[root@www ~]# cd /mnt/cdrom/isolinux/

[root@www isolinux]# ls
boot.cat  grub.conf   isolinux.bin  memtest     TRANS.TBL    vesamenu.c32
boot.msg  initrd.img  isolinux.cfg  splash.png  upgrade.img  vmlinuz

boot.cat:

这个文件通常用于引导加载程序,但在现代的isolinux环境中并不常见。它可能是一个遗留文件或者是特定配置的一部分。

grub.conf:

这是GRUB(GRand Unified Bootloader)的配置文件。GRUB是一个常见的多操作系统启动加载程序,用于选择要启动的操作系统。

isolinux.bin:

这是isolinux引导加载程序的二进制文件。isolinux是一个用于CD/DVD启动的引导加载程序。

isolinux.cfg:

这是isolinux的配置文件,包含了启动菜单和其他配置信息,用于控制isolinux的行为。

memtest:

这个文件或目录可能包含内存测试工具,通常用于在安装操作系统之前检查硬件。

splash.png:

这是一个图形文件,通常用于显示启动时的图形界面,比如启动画面。

TRANS.TBL:

这是isolinux使用的字符转换表文件,用于处理非ASCII字符。

upgrade.img:

这个文件可能是用于系统升级的映像文件,或者是一个特定用途的映像文件。

vesamenu.c32:

这是isolinux的图形菜单驱动程序,用于显示图形化的启动菜单。

vmlinuz:

这是Linux内核的压缩映像文件。它通常包含在启动映像中,用于引导Linux系统。

initrd.img:

initrd 提供了一个临时的环境,允许内核在挂载实际的根文件系统之前执行一些任务。

这些任务可能包括加载必要的模块,设置网络连接,以及挂载真正的根文件系统

在安装系统的时候会默认指定内核,和初始化镜像 vmlinuz 和 initrd.img

所以假如需要通过网络安装的话首先需要找到/isolinux 这一个目录在哪里,所以之前做的http服务的目的就是将自己磁盘上挂载的镜像创建软链接到网站根目录之下为的就是想让别人能通过网络能访问得到

以下即为网卡引导的过程(PXE体系)

2.5 安装syslinux

要使用这一体系首先得使用syslinux软件

[root@www ~]# yum install syslinux -y

使用rpm -qd syslinux 查询一下帮助文档

2.5.1 查看帮助文档

[root@www ~]# cat /usr/share/doc/syslinux-4.05/pxelinux.txt
                               PXELINUX

    A bootloader for Linux using the PXE network booting protocol

       Copyright 1994-2008 H. Peter Anvin - All Rights Reserved

This program is provided under the terms of the GNU General Public
License, version 2 or, at your option, any later version.  There is no
warranty, neither expressed nor implied, to the function of this
program.  Please see the included file COPYING for details.

----------------------------------------------------------------------

PXELINUX is a Syslinux derivative, for booting Linux off a network
server, using a network ROM conforming to the Intel PXE (Pre-Execution
Environment) specification.  PXELINUX is *not* a program that is
intended to be flashed or burned into a PROM on the network card; if
you want that, check out Etherboot (http://www.etherboot.org/).
Etherboot 5.4 or later can also be used to create a PXE-compliant boot
PROM for many network cards.


    ++++ HOW TO CONFIGURE PXELINUX ++++

PXELINUX operates in many ways like SYSLINUX.  If you are not familiar
with SYSLINUX, read syslinux.txt first, since this documentation only
explains the differences.

On the TFTP server, create the directory "/tftpboot", and copy the
following files to it:

        pxelinux.0              - from the Syslinux distribution

        any kernel or initrd images you want to boot

Finally, create the directory "/tftpboot/pxelinux.cfg".  The
configuration file (equivalent of syslinux.cfg -- see syslinux.txt for
the options here) will live in this directory.  Because more than one
system may be booted from the same server, the configuration file name
depends on the IP address of the booting machine.  PXELINUX will
search for its config file on the boot server in the following way:

  First, it will search for the config file using the client UUID, if
  one is provided by the PXE stack (note, some BIOSes don't have a
  valid UUID, and you might end up with something like all 1's.)  This is
  in the standard UUID format using lower case hexadecimal digits, e.g.
  b8945908-d6a6-41a9-611d-74a6ab80b83d.

  Next, it will search for the config file using the hardware type
  (using its ARP type code) and address, all in lower case hexadecimal
  with dash separators; for example, for an Ethernet (ARP type 1)
  with address 88:99:AA:BB:CC:DD it would search for the filename
  01-88-99-aa-bb-cc-dd.

  Next, it will search for the config file using its own IP address
  in upper case hexadecimal, e.g. 192.0.2.91 -> C000025B
  (you can use the included progam "gethostip" to compute the
  hexadecimal IP address for any host.)

  If that file is not found, it will remove one hex digit and try
  again.  Ultimately, it will try looking for a file named "default"
  (in lower case).

  As an example, if the boot file name is /mybootdir/pxelinux.0, the
  UUID is b8945908-d6a6-41a9-611d-74a6ab80b83d, the Ethernet MAC
  address is 88:99:AA:BB:CC:DD and the IP address 192.0.2.91, it will
  try:

        /mybootdir/pxelinux.cfg/b8945908-d6a6-41a9-611d-74a6ab80b83d
        /mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
        /mybootdir/pxelinux.cfg/C000025B
        /mybootdir/pxelinux.cfg/C000025
        /mybootdir/pxelinux.cfg/C00002
        /mybootdir/pxelinux.cfg/C0000
        /mybootdir/pxelinux.cfg/C000
        /mybootdir/pxelinux.cfg/C00
        /mybootdir/pxelinux.cfg/C0
        /mybootdir/pxelinux.cfg/C
        /mybootdir/pxelinux.cfg/default

2.5.2 以下为翻译

如何配置 PXELINUX

PXELINUX 在许多方面类似于 SYSLINUX。如果您不熟悉 SYSLINUX,请首先阅读 syslinux.txt,因为这份文档仅解释两者之间的差异。

在 TFTP 服务器上,创建目录 /tftpboot,并将以下文件复制到该目录:

  • pxelinux.0 —— 来自 Syslinux 发行版
  • 任何您想要引导的内核或 initrd 映像文件

最后,创建目录 /tftpboot/pxelinux.cfg。配置文件(相当于 syslinux.cfg —— 请参阅 syslinux.txt 以了解其中的选项)将位于此目录中。因为可能有多个系统从同一服务器引导,所以配置文件的名称取决于引导机器的 IP 地址。PXELINUX 将按以下方式搜索其配置文件:

  1. 首先,如果 PXE 栈提供了客户端的 UUID,则使用该 UUID 来搜索配置文件(注意:某些 BIOS 不具备有效的 UUID,你可能会得到类似全部为 1 的值)。这是使用小写字母的十六进制数字的标准 UUID 格式,例如 b8945908-d6a6-41a9-611d-74a6ab80b83d

  2. 接下来,使用硬件类型(根据其 ARP 类型代码)和地址来搜索配置文件,全部使用小写字母的十六进制数字,并用短划线分隔;例如,对于 ARP 类型为 1 的以太网(Ethernet)设备,其 MAC 地址为 88:99:AA:BB:CC:DD,则会搜索名为 01-88-99-aa-bb-cc-dd 的文件。

  3. 然后,使用其自身的 IP 地址的大写字母十六进制形式来搜索配置文件,例如 IP 地址 192.0.2.91 对应的文件名为 C000025B(您可以使用随附的程序 gethostip 来计算任何主机的十六进制 IP 地址)。

  4. 如果找不到该文件,将移除一个十六进制数字并再次尝试。最终,它会尝试查找名为 default 的文件(使用小写字母)。

作为一个示例,如果引导文件名为 /mybootdir/pxelinux.0,UUID 为 b8945908-d6a6-41a9-611d-74a6ab80b83d,以太网 MAC 地址为 88:99:AA:BB:CC:DD,且 IP 地址为 192.0.2.91,它将依次尝试以下路径:

  • /mybootdir/pxelinux.cfg/b8945908-d6a6-41a9-611d-74a6ab80b83d
  • /mybootdir/pxelinux.cfg/01-88-99-aa-bb-cc-dd
  • /mybootdir/pxelinux.cfg/C000025B
  • /mybootdir/pxelinux.cfg/C000025
  • /mybootdir/pxelinux.cfg/C00002
  • /mybootdir/pxelinux.cfg/C0000
  • /mybootdir/pxelinux.cfg/C000
  • /mybootdir/pxelinux.cfg/C00
  • /mybootdir/pxelinux.cfg/C0
  • /mybootdir/pxelinux.cfg/C
  • /mybootdir/pxelinux.cfg/default

请注意,所有文件名引用都是相对于 pxelinux.0 所在目录的相对路径。PXELINUX 通常要求文件名(包括任何相对路径)长度不超过 127 个字符。

从帮助文档知道了,要想通过网络正确引导主机安装系统首先得安装tftp

2.5.3 安装tftp服务

[root@www ~]# yum install tftp-server -y

使用rpm -ql 查看产生的文件

/var/lib/tftpboot   --ftp数据目录

并能发现安装ftp 的时候已经自动将文件目录给创建好了,所以需要创建pxelinux.cfg 目录


 

# 按照说明创建pxelinux.cfg 目录

[root@www ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg

[root@www ~]# cd /var/lib/tftpboot/pxelinux.cfg/

# 启动tftp服务设置开机自启

[root@www pxelinux.cfg]# systemctl enable --now tftp

[root@www tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

假如说要通过网络装机的话,需要运用到ftp,在ftp有一个共享的目录,其中在这个目录下得包含挂载目录中的isolinux-- 在此目录下的文件正好是装系统所需要的

2.5.4 pxelinux.0 文件的作用

网络启动:

  • pxelinux.0 使计算机能够从网络服务器启动,而不是从本地硬盘驱动器启动。
  • 当计算机启动时,它会通过 PXE 协议从 TFTP 服务器下载 pxelinux.0 文件。

配置文件解析:

  • pxelinux.0 会根据 PXELINUX 的配置文件来确定要加载的内核和 initrd 映像。
  • 配置文件位于 /tftpboot/pxelinux.cfg/ 目录下的default文件

加载内核和 initrd 映像:

  • 根据配置文件中的指令,pxelinux.0 会从 TFTP 服务器下载安装配置 文件主页面内容如(isolinux.cfg)内核文件(例如 vmlinuz)和 initrd 映像(例如 initrd.img)。
  • 下载完成后,pxelinux.0 会将内核和 initrd 映像传递给 CPU 以启动操作系统。


 

# 将isolinux下的所有文件移动到共享目录之下

[root@www pxelinux.cfg]# cp /mnt/cdrom/isolinux/* /var/lib/tftpboot/

[root@www tftpboot]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 

2.5.5 pxe 过程原理

但问题来了,pxelinux.0这个文件主机到底是通过什么方式获取的,服务端又是怎么给予主机的?

在上面的说明也讲到了,服务器是通过DHCP发放IP的之后通过tftp将pxelinux.0这个引导文件一起发送给主机。所以需要配置DHCP服务,增加配置。

[root@www pxelinux.cfg]# systemctl restart httpd.service   --重启dhcp服务

在dhcp里面增加了配置指定tftp的服务器地址与引导文件名称之后,得到引导文件,引导文件pxelinux.0就会去寻找tftp服务器中的default文件,也就是/var/lib/tftpboot/pxelinux.cfg/default 文件,default 这个配置文件就会去加载/var/lib/tftpboot/ 下面的所有文件比如说图片内核什么的 ,才会显示如下的界面

由于default文件是由isolinux下的isolinux.cfg 复制而来的,里面包含的参数指定是指定使用光盘来安装的,需要指定网络安装所以需要将配置文件修改

[root@www pxelinux.cfg]# vim /var/lib/tftpboot/pxelinux.cfg/default

3 网络安装系统

创建新的虚拟机

3.1 删除光驱

3.2 进入BIOS

回到vmware创建一台新的虚拟机不给他加镜像进入BIOS

3.2.1 修改网卡安装优先级

将网卡放在第一位,按键盘shift 和 + 建往上移动

回车保存退出

3.3 安装完成再次进入BIOS

在引导界面千万别安装

再次进入BIOS将网卡调回去,保存并退出

3.3.1 修改网卡安装优先级

3.4 验证是否安装成功

安装好系统开启验证发现没有问题即安装成功

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

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

相关文章

YOLOv5与YOLOv8 训练准备工作(不包含环境搭建)

前言:我发现除了安装环境需要耗费大量时间以外,对于训练前的准备工作也要琢磨一段时间,所以本篇主要讲一下训练前需要准备的工作(主要是XML格式换为txt,以及划分数据集验证集,和训练参数的设置)…

8–9月,​Sui Move智能合约工作坊将在台北+线上举行

你对区块链和去中心化应用感兴趣吗?想深入学习Sui Move编程语言吗? 从8月10日到9月28日,Sui Mover社区将在每周六下午13:00–17:00举办精彩的工作坊,为期两个月,带你从零基础入门到高级进阶,全面掌握Sui M…

Django配置模板引擎

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 本节主要介…

Linux之进程间通信(上)

目录 进程间通信的目的 进程通信的分类 进程通信之匿名管道 创建匿名管道 匿名管道的特点 匿名管道四种通信类型 在现实生活中,人们要进行合作,就必须进行交流,那么在进程之间,会存在交流的情景吗?答案是肯定的…

音频转换器在线哪个好?提升音频质量的转换工具

你是否曾梦想过将手机里的铃声变成自己的原创作品?或者,有没有想过将一段演讲录音转化为易于分享的MP3格式? 如果答案是肯定的,那么这款音频转换器mp3就是你寻找的答案。现在,让我们一起探索它的魅力吧! 一…

基于MATLAB机器学习、深度学习实践技术

近年来,MATLAB在机器学习和深度学习领域的发展取得了显著成就。其强大的计算能力和灵活的编程环境使其成为科研人员和工程师的首选工具。在无人驾驶汽车、医学影像智能诊疗、ImageNet竞赛等热门领域,MATLAB提供了丰富的算法库和工具箱,极大地…

浏览器用户文件夹详解 - Preferences(十)

1.Preferences简介 1.1 什么是Preferences文件? Preferences文件是Chromium浏览器中用于存储用户个性化设置和配置的一个重要文件。每当用户在浏览器中更改设置或安装扩展程序时,这些信息都会被记录在Preferences文件中。通过这些记录,浏览…

海思ISP记录七:低照度图像调整

Hi3519av100imx585 记录下低照度图像调整的流程和思路 一、环境与配置 环境:暗房不开灯,只有零散漏光和电脑光亮gain与帧率:根据手册我设置的是Again:31282;Dgain:8192;ISP Dgain:…

B1.1 关于应用程序员模型-概述

快速链接: . 👉👉👉 ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 付费专栏-付费课程 【购买须知】个人博客笔记导读目录(全部) B1.1 关于应用程序员模型–概述 本章节包含了应用程序开发所需的程序员模型信息。 本章节中的信息不同于支持和服务于操作系统下应用程…

1.MySQL面试题之innodb如何解决幻读

1. 写在前面 在数据库系统中,幻读(Phantom Read)是指在一个事务中,两次读取同一范围的数据集时,由于其他事务的插入操作,导致第二次读取结果集发生变化的问题。InnoDB 作为 MySQL 的一个存储引擎&#xff…

PyTorch深度学习实战(2)——PyTorch快速入门

PyTorch的简洁设计使得它易于入门,在深入介绍PyTorch之前,本文先介绍一些PyTorch的基础知识,以便读者能够对PyTorch有一个大致的了解,并能够用PyTorch搭建一个简单的神经网络。 1 Tensor Tensor是PyTorch中最重要的数据结构&#…

docker、k8s部署 mysql group replication 和 ProxySQL 读写分离

MySQL Group Replication(简称MGR)是MySQL官方推出的一个高可用与高扩展的解决方案。MySQL组复制它提供了高可用、高扩展、高可靠的MySQL集群服务,这里部署的 mysql 版本 5.7.33,架构是一读一写。特别要注意一个关键点: 必须保证各…

sqli-labs-php7-master第11-16关

猜注入点 先来猜数字型 单引号字符型: 发现注入点找到了 猜测数据库有多少个字段: 1’ order by 4 # 密码随便输的。 这里没有使用--注释,因为没作用,可能是过滤掉了 继续猜。刚才没猜对 1 order by 2 # 没报错,猜…

如何将neo4j,4.x版本部署到服务器上

一. 简介 当我们使用neo4j构建知识图谱时,我们希望让别人能和我们共用neo4j进行知识图谱的构建,我们的方法之一就是将neo4j部署到我们的服务器上,然后将7474,7687端口暴露出来,这样就可以通过访问服务器公网IP的7474端口来操作我…

电脑硬盘坏了数据可以恢复吗?如何恢复硬盘数据?

电脑硬盘坏了数据可以恢复吗?对于这种问题,还需要具体问题具体分析的,一般是可以恢复。 硬盘损坏可以分为物理损坏和逻辑损坏两种情况: 1.逻辑损坏 这通常是由于软件问题,如文件系统错误、病毒攻击、误删除、格式化等…

CentOS Linux release 7.9.2009 中sudo命令未找到

先在 Windows 环境中下载 sudo 的安装包 选择适合自己 Centos 版本的安装包下载到本地:https://www.sudo.ws/releases/stable/ 然后把安装包拷贝的 Centos (Linux系统)中,cd 进入安装包所在的目录执行下面的命令: 格…

【Unity】线性代数基础:矩阵、矩阵乘法、转置矩阵、逆矩阵、正交矩阵等

文章目录 矩阵(Matrix)矩阵能干啥?矩阵基本运算矩阵加减法矩阵和标量的乘法矩阵和矩阵的乘法矩阵的转置矩阵相等 特殊的矩阵方块矩阵对称矩阵对角元素(Diagonal Elements)对角矩阵(Diagonal Matrix&#xf…

sqli-labs-master初学者题目练习

Less-1 从源码可以看出id为注入点,且为单引号过滤 使用 闭合 --为注释 原本应该用--‘space’,但-与‘连在一起无法起到注释作用 order by为联合查询——同时查询两张表,但两张表列数必须相同 所有从以上两张图可以看出此表格有三列数据 爆…

计算机网络知识汇总(超详细整理)从零基础入门到精通,看完这一篇就够了

文章目录 前言一、计算机网络概述 1 互联网的构成2.网络分类3.接入网4.网络核心的两大功能 ①路由②转发 5.网络分层 ①OSI 7层模型②TCP/IP 4层模型③两种模型比较 二、物理层 1.物理介质 ①引导型介质②非引导型介质 2.数据交换方式 ①分组交换②电路交换 3.信道复用 …

在亚马逊云科技AWS上利用PEFT和RLHF高效微调AI大模型减少有害回复

简介: 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践,并应用到自己的日常工作里。 本次我将介绍如何用亚马逊云科技的AI模型训练服…