PXE安装Ubuntu系统

news2025/5/13 21:04:57

文章目录

  • 1. 服务器挂载Ubuntu镜像
  • 2. 修改dhcp配置文件
  • 3. 修改tftp配置文件
  • 4.复制网络驱动文件和其他配置文件
  • 5. http目录下配置文件
  • 6. 踩坑记录
    • 6.1 Failed to load ldlinux.c32
    • 6.2 no space left on device
    • 6.3 为啥用pxe安装系统时,客户端需要较大的内存?
    • 6.4 **`no mirror is usable 无可用镜像源`**

1. 服务器挂载Ubuntu镜像

因为Kickstart 是Red Hat开发的传统无人值守安装工具,与RHEL/CentOS深度集成,支持图形化配置。而ubuntu是利用cloud-init,基于yaml配置文件(user-data和meta-data)。ubuntu20版本之前需要考虑pxe+preseed安装,20版本之后使用autoinstall框架

  • 注意版本是ubuntu 22.04

在这里插入图片描述

  • 在http的文件目录下挂载镜像
mount /dev/cdrom /media

2. 修改dhcp配置文件

在这里插入图片描述

  • 修改dns地址,确保dns可用

3. 修改tftp配置文件

在这里插入图片描述

  • tftp的根目录修改成 /var/lib/tftpboot/ubuntu
  • 如果根目录下没有其他文件可以不用修改

4.复制网络驱动文件和其他配置文件

  • 下载syslinux,yum install -y syslinux
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/ubuntu]# cp /usr/share/syslinux/pxelinux.0 ./
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/ubuntu]# cp /usr/share/syslinux/ldlinux.c32 ./
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/ubuntu]# cp /usr/share/syslinux/libutil.c32 ./
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/ubuntu]# cp /media/casper/vmlinuz ./
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/ubuntu]# cp /media/casper/initrd ./
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/ubuntu]# mkdir pxelinux.cfg/
[root@oldboy99-Kylin-pxeServer /var/lib/tftpboot/ubuntu]# touch pxelinux.cfg/default
  • default文件内容:
default autoinstall
timeout 60 
label autoinstall
    kernel vmlinuz
    append initrd=initrd ip=dhcp url=http://10.0.0.203/ubuntu/ubuntu-22.04.4-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://10.0.0.203/ubuntu/autoinstall/
  • 文件中的ip修改成自己pxe服务器的ip

5. http目录下配置文件

  • 注意路径:
[root@oldboy99-Kylin-pxeServer /var/www/html]# mkdir ubuntu/
[root@oldboy99-Kylin-pxeServer /var/www/html/ubuntu]# mkdir autoinstall/
[root@oldboy99-Kylin-pxeServer /var/www/html/ubuntu/autoinstall]# touch meta-data 
[root@oldboy99-Kylin-pxeServer /var/www/html/ubuntu/autoinstall]# touch user-data 
  • user-data内容:
#cloud-config
autoinstall:
  version: 1
  shutdown: reboot  # 安装完成后自动重启
 
  # APT镜像源
  apt:
    primary:
      - arches: [amd64]
        uri: http://mirrors.aliyun.com/ubuntu
 
  # 用户认证配置
  identity:
    hostname: oldboy99 #填写自己的主机名字
    username: oldboy #填写自己的用户名字
    password: "$6$ARMRbY0SiNH/wnNG$1kBS5HK.02nm9aFdY.5H9IAGCnMjLidY9qi8tTgmPtgGwJ7YCPMKuBxDtOH7Glc.ESmEwxb7p0SUBGU2XvpOe."   #密码是123456
 
  # 全盘自动分区
  storage:
    layout:
      name: direct
 
  # 基础SSH配置
  ssh:
    install-server: true
    allow-pw: true
 
  # 必要预安装操作
  early-commands:
    - systemctl stop ssh 
 
  # 安装后操作
  late-commands:
    - systemctl start ssh 
  • meta-data可以不用写内容
  • 将Ubuntu22.04镜像文件复制到该目录:/var/www/html/ubuntu

在这里插入图片描述

  • 最后各种服务配置好了,别忘了重新启动服务程序

6. 踩坑记录

6.1 Failed to load ldlinux.c32

在这里插入图片描述

  • 将syslinux软件包下相关文件复制到tftp根目录下

在这里插入图片描述

6.2 no space left on device

在这里插入图片描述

  • no pase left :没有剩余空间
  • 扩大客户机内存

在这里插入图片描述

6.3 为啥用pxe安装系统时,客户端需要较大的内存?

PXE 安装过程中,客户端需通过 TFTP/HTTP 下载内核 (vmlinuz)、初始化内存盘 (initrd) 和操作系统镜像(如 ISO 或 squashfs)。这些文件会暂存到内存或临时文件系统(如 tmpfs)中。例如:

  • Ubuntu 22.04.4 镜像约 2.6GB,若内存不足会导致下载中断,触发 No space left on device 错误
  • initrd 解压后可能占用 1-2GB 内存

PXE 启动后,客户端需在内存中加载完整的安装环境(包括内核、驱动、工具链),通常需要 2-4GB 内存才能稳定运行。若内存不足,可能无法加载必要的驱动(如网卡、存储控制器),导致安装失败。

6.4 no mirror is usable 无可用镜像源

在这里插入图片描述

  • 查看下网络连接情况

在这里插入图片描述

  • dns服务器有问题,修改下服务端的dhcp配置文件

在这里插入图片描述

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

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

相关文章

uniapp tabBar 中设置“custom“: true 在H5和app中无效解决办法

uniapp小程序自定义底部tabbar,但是在转成H5和app时发现"custom": true 无效,原生tabbar会显示出来 解决办法如下 在tabbar的list中设置 “visible”:false 代码如下:"tabBar": {"custom": true,//"cust…

ABP-Book Store Application中文讲解 - 前期准备 - Part 2:创建Acme.BookStore + Angular

ABP-Book Store Application中文讲解-汇总-CSDN博客 因为本系列文章使用的.NET8 SDK,此处仅介绍如何使用abp cli .NET 8 SDK SQL sevrer 2014创建Angular模板的Acme.BookStore。 目录 1. ABP cli创建项目 1.1 打开cmd.exe 1.2 创建项目 2. ABP Studio创建项…

基于k8s的Jenkins CI/CD平台部署实践(三):集成ArgoCD实现持续部署

基于k8s的Jenkins CI/CD平台部署实践(三):集成ArgoCD实现持续部署 文章目录 基于k8s的Jenkins CI/CD平台部署实践(三):集成ArgoCD实现持续部署一、Argocd简介二、安装Helm三、Helm安装ArgoCD实战1. 添加Arg…

控制台打印带格式内容

1. 场景 很多软件会在控制台打印带颜色和格式的文字,需要使用转义符实现这个功能。 2. 详细说明 2.1.转义符说明 样式开始:\033[参数1;参数2;参数3m 可以多个参数叠加,若同一类型的参数(如字体颜色)设置了多个&…

外网访问内网海康威视监控视频的方案:WebRTC + Coturn 搭建

外网访问内网海康威视监控视频的方案:WebRTC Coturn 需求背景 在仓库中有海康威视的监控摄像头,内网中是可以直接访问到监控摄像的画面,由于项目的需求,需要在外网中也能看到监控画面。 实现这个功能的意义在于远程操控设备的…

Linux系统下的延迟任务及定时任务

1、延迟任务 概念: 在系统中我们的维护工作大多数时在服务器行对闲置时进行 我们需要用延迟任务来解决自动进行的一次性的维护 延迟任务时一次性的,不会重复执行 当延迟任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者 在 RH…

【网络原理】数据链路层

目录 一. 以太网 二. 以太网数据帧 三. MAC地址 四. MTU 五. ARP协议 六. DNS 一. 以太网 以太网是一种基于有线或无线介质的计算机网络技术,定义了物理层和数据链路层的协议,用于在局域网中传输数据帧。 二. 以太网数据帧 1)目标地址 …

相或为K(位运算)蓝桥杯(JAVA)

这个题是相或为k,考察相或的性质,用俩个数举例子,011001和011101后面的数不管和哪个数相或都不可能变成前面的数,所以利用这个性质我们可以用相与运算来把和k对应位置的1都积累起来,看最后能不能拼起来k如果能拼起来k那…

AI汽车时代的全面赋能者:德赛西威全栈能力再升级

AI汽车未来智慧出行场景正在描绘出巨大的商业图景,德赛西威已经抢先入局。 在2025年上海车展开幕前夕,德赛西威发布2030年全新使命愿景——“创领安全、愉悦和绿色的出行生活”,并推出全栈式智慧出行解决方案Smart Solution3.0、车路云一体式…

学习Python的第四天之网络爬虫

30岁程序员学习Python的第四天之网络爬虫的Scrapy库 Scrapy库的基本信息 Scrapy库的安装 在windows系统中通过管理员权限打开cmd。运行pip install scrapy即可安装。 通过命令scrapy -h可查看scrapy库是否安装成功. Scrapy库的基础信息 scrapy库是一种爬虫框架库 爬虫框…

5、开放式PLC梯形图编程组件 - /自动化与控制组件/open-plc-programming

76个工业组件库示例汇总 开放式PLC编程环境 这是一个开放式PLC编程环境的自定义组件,提供了一个面向智能仓储堆垛机控制的开放式PLC编程环境。该组件采用苹果科技风格设计,支持多厂商PLC硬件,具有直观的界面和丰富的功能。 功能特点 多语…

linux中常用的命令(三)

目录 1- ls(查看当前目录下的内容) 2- pwd (查看当前所在的文件夹) 3- cd [目录名](切换文件夹) 4- touch [文件名] (如果文件不存在,新建文件) 5- mkdir[目录名] (创建目录) 6-rm[文件名]&…

Java 中 AQS 的实现原理

AQS 简介 AQS(全称AbstractQueuedSynchronizer)即抽象同步队列,它是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的。 由类图可以看到,AQS是一个FIFO的双向队列,其内部通过节点head和tail记录队首和队尾元素&#xff0…

『Python学习笔记』ubuntu解决matplotlit中文乱码的问题!

ubuntu解决matplotlit中文乱码的问题! 文章目录 simhei.ttf字体下载链接:http://xiazaiziti.com/210356.html将字体放到合适的地方 sudo cp SimHei.ttf /usr/share/fonts/(base) zkfzkf:~$ fc-list | grep -i "SimHei" /usr/local/share/font…

鸿蒙知识总结

判断题 1、 在http模块中,多个请求可以使用同一个httpRequest对象,httpRequest对象可以复用。(错误) 2、订阅dataReceiverProgress响应事件是用来接收HTTP流式响应数据。(错误) 3、ArkTS中变量声明时不需要…

C++23 新特性:深入解析 std::views::join_with(P2441R2)

文章目录 std::views::join_with 基本用法处理字符串集合std::views::join_with 与其他视图的结合使用总结 随着C23标准的逐步推进,我们迎来了许多令人兴奋的新特性,其中之一就是 std::views::join_with。这个新特性是C23中引入的视图适配器&#xff0c…

数据可视化大屏——智慧社区内网比对平台

综述分析: 智慧社区内网数据比对信息系统 这段代码实现了一个智慧社区内网数据比对信息系统的前端界面,采用三栏式布局展示各类社区安全相关数据。界面主要由左侧数据统计、中间地图展示和右侧数据分析三部分组成,使用了多种图表可视化技术…

Jenkins企业级实战

目标 在Windows操作系统上使用Jenkins完成代码的自动拉取、编译、打包、发布工作。 实施 1.安装Java开发工具包(JDK) Jenkins是基于Java的应用程序,因此需要先安装JDK。可以从Oracle官网或OpenJDK下载适合的JDK版本。推荐java17版本&#x…

uniapp-商城-52-后台 商家信息(商家信息数据,云对象使用)

1、概述 已经通过好几个篇幅来说明商家信息,包括logo、商家名称,地址,电话以及商家简介。通过表单组件和标签,以及我们的文件上传标签,都做了说明。(logo上传,用的文件上传组件是上传到公共的数…

MySQL 索引设计宝典:原理、原则与实战案例深度解析

目录 前言第一章:索引设计的基础原则 (知其然,更要知其所以然)第二章:实战案例:电商订单系统的索引设计第三章:索引设计的实践流程总结结语 🌟我的其他文章也讲解的比较有趣😁,如果喜…