PXE装机

news/2024/10/6 1:39:17

PXE(Preboot eXecution Environment)是一种用于在计算机启动时通过网络加载操作系统的技术。在Linux中,PXE通常用于设置网络引导服务器,以便在网络上的其他计算机上无需本地存储介质(如硬盘或USB驱动器)即可启动Linux操作系统。

系统装机的三种引导方式:

1.硬盘

2.光驱(u盘)

3.网络启动 pxe

pxe是通过网卡引导启动

pxe实现的硬件条件

1.BIOS支持

2.网卡支持(现在基本都已支持)

3.需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

4.网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置(网卡自带DHCP功能)

5.服务器通过 tftp服务(简单文件传输协议使用过UDP协议)来提供系统内核和引导镜像的下载(网卡自带tftp不支持其他的远程共享服务)

pxe搭建过程中使用的服务

  • TFTP(简单文件传输协议):内核和引导文件

  是一种基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小型文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP69端口。

  • vsftp:安装系统镜像文件获取方式

  安装系统镜像文件获取方式,可以使用http ftp等方式,ftp文件传输的一种。

  • syslinux:引导加载程序

  syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。它的安装很简单,一旦安装syslinux好之后,sysLinux启动盘就可以引导各种基于DOS的工具,以及MS-DOS/Windows或者任何其它操作系统。

  • DHCP

pex实现

1.网卡需要查找相关的dhcp服务器(获取地址时间)

2.找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

3.网卡使用tftp客户端把引导程序加载到内存中来

4.bios执行引导程序

5.引导程序会去TFTP去查找配置文件

6.根据配置文件去引导安装系统

 pxefu服务器搭建

安装tftp-server、vsftp、syslinux、dhcp

[root@localhost ~]# yum install tftp-server vsftpd syslinux dhcp -y 

 修改dhcp配置文件

分配给同一局域网内新加机器的地址(配置文件) dhcp 分配地址,指明tftp 服务器的地址

[root@localhost ~]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
[root@localhost ~]# cp -a /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost
~]# vim /etc/dhcp/dhcpd.conf subnet 192.168.146.0 netmask 255.255.255.0 {range 192.168.146.10 192.168.146.20;option routers 192.168.146.150;next-server 192.168.146.150;    #指定tftp的服务器地址filename"pxelinux.0";      #指定启动文件  }

[root@localhost ~]# systemctl restart dhcpd

修改tftp配置文件

[root@localhost ~]# rpm -ql tftp-server 
/etc/xinetd.d/tftp[root@localhost ~]# vim /etc/xinetd.d/tftp 
[root@localhost ~]# systemctl restart tftp.socket 

 将第14行disable yes改为no,开启tftp服务。

挂载软件安装源

通过挂载光盘到/var/ftp/centos7,可以将光盘上的CentOS 7安装文件以FTP方式提供给PXE客户端。这样,PXE客户端在引导时就可以通过FTP协议从服务器上获取所需的安装文件,而不是依赖于本地光驱。

[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# mount /dev/sr0 /var/ftp/centos7
mount: /dev/sr0 写保护,将以只读方式挂载

将四大文件拷入 (/var/lib/tftpboot )

  • initrd.img 

  • pxelinux.0  (类似grub)

  • pxelinux.cfg/default (手写) 

  • vmlinuz

将挂载到var/ftp/centos7下的initrd.img(初始化镜像文件)、vmlinuz(内核文件)复制到/var/lib/tftpboot

[root@localhost ~]# cp /var/ftp/centos7/isolinux/initrd.img /var/lib/tftpboot/
[root@localhost ~]# cp /var/ftp/centos7/isolinux/vmlinuz /var/lib/tftpboot/

将syslinux中的pxelinux.0(PXE引导程序文件)复制到/var/lib/tftpboot

[root@localhost ~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/   #拷贝到站点文件里

手写pxelinux.cfg/default到/var/lib/tftpboot

[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# vim pxelinux.cfg/default
default auto prompt
1label auto  #auto进去后要敲回车,可以改为linux不需要回车kernel vmlinuzappend initrd=initrd.img method=ftp://192.168.146.150/centos7 label linux textkernel vmlinuzappend text initrd =initrd.img method=ftp://192.168.146.150/centos7 label linux rescuekernel vmlinuzappend rescue initrd=initrd.img method=ftp://192.168.146.150/centos7

关闭防火墙开启服务

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start dhcpd vsftpd tftp

新建虚拟机

将内存改为至少2G,自动装机成功:

kickstart 无人值守安装

 CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混用。

[root@localhost ~]# yum install system-config-kickstart -y
#安装图形化工具

进入图形化界面:

 回到xshell 添加配置文件

[root@localhost ftp]# vim /var/lib/tftpboot/pxelinux.cfg/default default auto
prompt 1label autokernel vmlinuzappend initrd=initrd.img method=ftp://192.168.146.150/centos7
ks=ftp://192.168.146.150/ks.cfg

label linux textkernel vmlinuzappend text initrd =initrd.img method=ftp://192.168.146.150/centos7

label linux rescuekernel vmlinuzappend rescue initrd=initrd.img method=ftp://192.168.146.150/centos7

新建虚拟机,系统安装成功:

 

 

 

 

 

 

 

 

 

 

 

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

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

相关文章

多个开源的js补环境框架测试

前言 在做js逆向时肯定会遇到补环境的情况,看到github开源了好几个补环境用的框架,这篇文章做个测试,看看哪个比较好用。https://github.com/pysunday/sdenv https://github.com/bnmgh1/node-sandbox https://github.com/ylw00/qxVm https://github.com/xuxiaobo-bobo/boda_…

GpuMalll智算云:重塑AI大模型时代的智能未来

在数字化浪潮的推动下,人工智能(AI)技术正以前所未有的速度改变着世界。而AI大模型作为这一变革的核心驱动力,正逐步成为科技创新的制高点。GpuMall智算云,作为领先的AI大模型解决方案提供商,致力于为客户提供高效、智能、安全的AI服务,共同开启智能未来。在数字化浪潮的…

学习模型训练心得1

大模型时代,多年python开发人员,多多少少得了解模型训练这块,先从学习LLaMA-Factory开启吧!!! 地址:https://colab.research.google.com/drive/1d5KQtbemerlSDSxZIfAaWXhKr30QypiK?usp=sharing&pli=1#scrollTo=kbFsAE-y5so4 打开按步骤登录google账号,就可以一步一…

conda安装和使用

官网 https://www.anaconda.com/ 一、下载 https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/?C=M&O=D ubuntu系统下载 Miniconda3-latest-Linux-x86_64.sh 二、安装 执行以下安装 bash Miniconda3-py38_23.1.0-1-Linux-x86_64.sh 接下来,根据提示按enter或者…

Docker 必知必会----初识

什么是Docker?Docker 是一个开源的容器管理引擎。开发者可以通过Docker直接管理应用程序所需要的容器。它的logo如下: 为什么需要Docker使用Docker主要有两个原因,1、屏蔽不同环境的硬件差异,减轻开发人员在不同环境上,为了适配环境差异所需要做的工作。如各项系统配置、…

Jira Server 不维护了,如何将 Jira 平滑迁移到阿里云云效

希望进行 Jira 迁移的企业,可以借助云效的项目协作平台 Projex 轻松实现研发流程的定制化、规范化和自动化。作者:天彤 Atlassian 在 2020 年官方发布公告,从 2021 年起停止 Jira Server 产品的销售,并且在 2024 年彻底停止 Server 端产品的服务支持,这对于国内使用 Jira …

docker - [13] docker网络

smo smo smo "狂神" omz omz omz 一、理解网络本机回环地址:127.0.0.1 本机IP地址:192.168.2.131 docker地址:172.17.0.11.1、docker如何处理容器网络访问的? 首先,拉取一个tomcat镜像(我直接从之前制作的tomcat镜像拉取下来了)拉取之后修改了一下名字:dock…