Ubuntu下搭建UEFI下PXE服务端(详细)总结

2024-03-22 07:20

本文主要是介绍Ubuntu下搭建UEFI下PXE服务端(详细)总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

    • 一、简介
    • 二、HTTP服务端搭建
    • 三、DHCP服务端搭建
    • 四、TFTP服务端搭建
    • 五、重启所有服务、关闭防火墙
    • 六、其他相关链接
      • 1、Windows下EDK2快速搭建过程总结附软件包地址
      • 2、PXE安装Linux系统原理详解
      • 3、Ubuntu系统设置常见问题处理详细总结
      • 4、UEFI下命令参数详解快速掌握

一、简介

系统:Ubuntu 22.04
平台:X86_64
本文介绍如何在Ubuntu下搭建PXE服务端,主要包含HTTP、DHCP、TFTP等服务端的搭建,以及基于Ubuntu22.04镜像实现PXE安装文件的配置。

二、HTTP服务端搭建

1、安装 apache2

sudo apt install apache2

2、复制下载的镜像到http特定目录

cp ./ubuntu-22.04-desktop-amd64.iso /var/www/html/

3、挂载镜像

mkdir /var/www/html/Ubuntu_22.04_Desktop/
mount /var/www/html/ubuntu-22.04-desktop-amd64.iso /var/www/html/Ubuntu_22.04_Desktop/

三、DHCP服务端搭建

1、安装 isc-dhcp-server

apt install isc-dhcp-server

2、配置静态 IP

使用 netplan 配置静态 IP,打开配置文件。

sudo vim /etc/netplan/01-network-manager-all.yaml

打开后的默认配置文件如下:

# Let NetworkManager manage all devices on this system
network:version: 2renderer: NetworkManager

编辑配置文件内容。

# Let NetworkManager manage all devices on this system
network:ethernets:enp7s0f0:dhcp4: nodhcp6: noaddresses:- 192.168.2.10/24version: 2renderer: NetworkManager

3、重启配置

netplan apply

配置 dhcpd

指定 isc-dhcp-server 要监听的网卡

vim /etc/default/isc-dhcp-serverINTERFACESv4="enp7s0f0"

5、编辑 dhcpd.conf 配置文件

vim /etc/dhcp/dhcpd.conf 
subnet 192.168.2.0 netmask 255.255.255.0 {range  192.168.2.11 192.168.2.254;option routers 192.168.2.10;next-server 192.168.2.10;filename "/UEFI/bootx64.efi"";
}

6、重启服务

systemctl restart isc-dhcp-server

四、TFTP服务端搭建

1、安装依赖包

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

2、配置/etc/xinetd.conf

vim /etc/xinetd.conf# Simple configuration file for xinetd##Some defaults, and include /etc/xinetd.d/defaults{#Please note that you need a log_type line to be able to use log_on_success#and log_on_failure. The default is the following :#log_type = SYSLOG daemon info}includedir /etc/xinetd.d

查看是否有 xinetd.conf 查看内容是否一致, 如果没有创建一个,并输入如下内容

3、配置/etc/default/tftpd-hpa

vim /etc/default/tftpd-hpa

设置共享目录TFTP_DIRECTORY=“/srv/tftp”

4、创建共享文件夹

mkdir  /srv/tftp

5、设置权限

chmod 777 /srv/tftp -R

6、重启tftp服务

service tftpd-hpa start

7、配置tftp相关的文件

(1) 建立 UEFI 目录mkdir /srv/tftp/UEFI(2)拷贝文件cp /var/www/html/Ubuntu_22.04_Desktop/casper/{vmlinuz,initrd} /srv/tftp/UEFI/(3)下载并拷贝必要的文件
cd ~
//shim-signed```c
apt download shim-signed
dpkg -x shim-signed*deb shim
sudo cp shim/usr/lib/shim/shimx64.efi.signed.latest /srv/tftp/UEFI/bootx64.efi

//grub-efi-amd64-signed

apt download grub-efi-amd64-signed
dpkg -x grub-efi-amd64-signed*deb grub
sudo cp grub/usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed /srv/tftp/UEFI/grubx64.efi

//grub-common

apt download grub-common
dpkg -x grub-common*deb grub-common
cp grub-common/usr/share/grub/unicode.pf2 /srv/tftp/UEFI/

8、创建grub引导文件

mkdir /srv/tftp/grub
vim /srv/tftp/grub/grub.cfgset default="0"set timeout=100if loadfont unicode ; thenset gfxmode=autoset locale_dir=$prefix/localeset lang=en_USfiterminal_output gfxtermset menu_color_normal=white/blackset menu_color_highlight=black/light-grayif background_color 44,0,30; thenclearfifunction gfxmode {set gfxpayload="${1}"if [ "${1}" = "keep" ]; thenset vt_handoff=vt.handoff=7elseset vt_handoff=fi}set linux_gfx_mode=keepexport linux_gfx_modemenuentry 'Ubuntu 22.04 IPv4' {gfxmode $linux_gfx_modelinux /UEFI/vmlinuz root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.2.10/ubuntu-22.04-desktop-amd64.isoinitrd /UEFI/initrd}}

五、重启所有服务、关闭防火墙

systemctl restart isc-dhcp-server
systemctl restart  tftpd-hpa.service
systemctl restart xinetd
/etc/init.d/apache2 restart
netplan apply
ufw disable

六、其他相关链接

1、Windows下EDK2快速搭建过程总结附软件包地址

2、PXE安装Linux系统原理详解

3、Ubuntu系统设置常见问题处理详细总结

4、UEFI下命令参数详解快速掌握

这篇关于Ubuntu下搭建UEFI下PXE服务端(详细)总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834818

相关文章

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

SpringBoot整合Apache Flink的详细指南

《SpringBoot整合ApacheFlink的详细指南》这篇文章主要为大家详细介绍了SpringBoot整合ApacheFlink的详细过程,涵盖环境准备,依赖配置,代码实现及运行步骤,感兴趣的... 目录1. 背景与目标2. 环境准备2.1 开发工具2.2 技术版本3. 创建 Spring Boot

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图