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

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee