当前位置: 首页 > web >正文

PXE安装Ubuntu系统

文章目录

  • 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 autoinstallkernel vmlinuzappend 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: 1shutdown: 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: trueallow-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.xdnf.cn/news/5494.html

相关文章:

  • 免安装 + 快速响应Photoshop CS6 精简版低配置电脑修图
  • 计算机网络笔记(二十二)——4.4网际控制报文协议ICMP
  • # Anaconda3 常用命令
  • Grafana v12.0 引入了多项新功能和改进
  • KAG:通过知识增强生成提升专业领域的大型语言模型(四)
  • 【LeetCode Hot100 | 每日刷题】排序数组
  • 内存泄露,如何判断是资源泄露还是堆栈泄露?
  • Telnetlib 库完全指南
  • MySQL 索引与事务详解
  • 巧用promise.race实现nrm镜像源切换----nbsl
  • 冒泡排序的原理
  • 数据指标和数据标签
  • 「银河通用」创始人王鹤:人形机器人跳舞是预先编程,马拉松是遥控操作!
  • C语言文件读写函数详解与示例(fread、fgets、fgetc、fscanf、fwrite、fputs 和 fputc比较)
  • 专业课复习笔记 5
  • 可视化赋能电子围栏:开启智能安防新视界
  • 9.1.领域驱动设计
  • 大模型应用中常说的Rerank是什么技术?
  • 第26节:卷积神经网络(CNN)-数据增强技术(PyTorch)
  • URP - 能量罩实现
  • Scala 中累加器的创建与使用格式详解
  • 【面板数据】省级农业及农村现代化指标数据(2011-2022年)
  • C++初阶-string类的增删的模拟实现
  • C# 通过ConfigurationManager读写配置文件App.Config
  • 如何实现并运用责任链模式
  • 英语时态--中英文对“时间”的不同理解
  • 抽奖系统-基本-注册
  • Redis从基础到高阶应用:核心命令解析与延迟队列、事务消息实战设计
  • JVM 监控
  • 【Java学习笔记】多态