news 2026/7/19 3:40:16

Ubuntu Server搭建PXE自动装机环境指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu Server搭建PXE自动装机环境指南

1. PXE自动装机环境概述

PXE(Preboot eXecution Environment)是一种通过网络引导操作系统的技术标准,它允许计算机在没有本地存储设备(如硬盘、U盘)的情况下,直接从网络启动并安装操作系统。在企业IT运维中,PXE技术常用于批量部署服务器操作系统,大幅提升运维效率。

基于Ubuntu Server搭建PXE自动装机环境主要包括以下核心组件:

  • DHCP服务器:为客户端分配IP地址并告知PXE服务器位置
  • TFTP服务器:传输引导加载程序和内核文件
  • HTTP服务器:提供操作系统镜像和安装文件
  • 自动应答文件:实现无人值守安装

2. 环境准备与系统配置

2.1 硬件与网络要求

推荐使用以下配置作为PXE服务器:

  • CPU:至少2核
  • 内存:4GB以上
  • 存储:50GB以上可用空间
  • 网络:双网卡(一个用于外网访问,一个用于内网PXE服务)

网络拓扑建议:

[外网] | [PXE服务器] | (内网) [交换机] | [待装机客户端]

2.2 Ubuntu Server系统安装

  1. 下载Ubuntu Server 22.04 LTS镜像
  2. 使用U盘或IPMI方式安装基础系统
  3. 配置静态IP地址(示例配置):
# /etc/netplan/00-installer-config.yaml network: version: 2 ethernets: ens33: dhcp4: false addresses: [192.168.1.10/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]

应用网络配置:

sudo netplan apply

3. 核心服务安装与配置

3.1 安装必要软件包

更新系统并安装所需软件:

sudo apt update && sudo apt upgrade -y sudo apt install -y tftpd-hpa apache2 isc-dhcp-server syslinux-common pxelinux

3.2 配置TFTP服务

  1. 修改TFTP配置:
sudo sed -i 's/TFTP_DIRECTORY="\/srv\/tftp"/TFTP_DIRECTORY="\/var\/lib\/tftpboot"/g' /etc/default/tftpd-hpa sudo sed -i 's/TFTP_ADDRESS=":69"/TFTP_ADDRESS="0.0.0.0:69"/g' /etc/default/tftpd-hpa
  1. 创建TFTP目录结构:
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg sudo cp /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot/ sudo cp /usr/lib/syslinux/modules/bios/{ldlinux.c32,libcom32.c32,libutil.c32,vesamenu.c32} /var/lib/tftpboot/
  1. 重启TFTP服务:
sudo systemctl restart tftpd-hpa

3.3 配置Apache HTTP服务

  1. 创建镜像存储目录:
sudo mkdir -p /var/www/html/ubuntu
  1. 设置目录权限:
sudo chown -R www-data:www-data /var/www/html sudo chmod -R 755 /var/www/html

3.4 配置DHCP服务

  1. 备份原始配置:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
  1. 编辑DHCP配置:
sudo nano /etc/dhcp/dhcpd.conf

添加以下内容(根据实际网络调整):

subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option domain-name-servers 8.8.8.8, 8.8.4.4; option routers 192.168.1.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; next-server 192.168.1.10; filename "pxelinux.0"; }
  1. 启用并启动DHCP服务:
sudo systemctl enable isc-dhcp-server sudo systemctl start isc-dhcp-server

4. 操作系统镜像准备

4.1 下载Ubuntu Server镜像

wget https://releases.ubuntu.com/22.04/ubuntu-22.04.2-live-server-amd64.iso -P /tmp

4.2 挂载并提取镜像文件

  1. 创建挂载点并挂载ISO:
sudo mkdir /mnt/iso sudo mount -o loop /tmp/ubuntu-22.04.2-live-server-amd64.iso /mnt/iso
  1. 复制内核和initrd:
sudo cp /mnt/iso/casper/vmlinuz /var/lib/tftpboot/ sudo cp /mnt/iso/casper/initrd /var/lib/tftpboot/
  1. 复制完整ISO到HTTP目录:
sudo cp /tmp/ubuntu-22.04.2-live-server-amd64.iso /var/www/html/ubuntu/
  1. 卸载ISO:
sudo umount /mnt/iso

4.3 配置PXE引导菜单

创建PXE配置文件:

sudo nano /var/lib/tftpboot/pxelinux.cfg/default

添加以下内容:

DEFAULT vesamenu.c32 PROMPT 0 TIMEOUT 50 MENU TITLE PXE Boot Menu LABEL Ubuntu 22.04 Auto Install MENU LABEL Ubuntu 22.04 Auto Install KERNEL vmlinuz INITRD initrd APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://192.168.1.10/ubuntu/ubuntu-22.04.2-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://192.168.1.10/ubuntu/

5. 自动应答文件配置

5.1 创建cloud-init配置

  1. 创建meta-data文件:
sudo nano /var/www/html/ubuntu/meta-data

内容:

instance-id: ubuntu-autoinstall local-hostname: ubuntu-server
  1. 创建user-data文件:
sudo nano /var/www/html/ubuntu/user-data

内容:

#cloud-config autoinstall: version: 1 identity: hostname: ubuntu-server password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4FAcP0" username: ubuntu ssh: install-server: true allow-pw: true packages: - openssh-server - qemu-guest-agent storage: layout: name: lvm user-data: disable_root: false late-commands: - sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /target/etc/ssh/sshd_config - echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /target/etc/sudoers.d/90-ubuntu

注意:密码哈希可以使用以下命令生成:openssl passwd -6然后输入密码

6. 客户端网络引导测试

  1. 确保客户端网卡支持PXE引导
  2. 在BIOS中启用网络引导
  3. 选择从网络启动后,应该能看到PXE引导菜单
  4. 选择"Ubuntu 22.04 Auto Install"开始自动安装

7. 常见问题排查

7.1 客户端无法获取IP地址

检查步骤:

  1. 确认PXE服务器和客户端在同一网络
  2. 检查DHCP服务状态:sudo systemctl status isc-dhcp-server
  3. 查看DHCP日志:journalctl -u isc-dhcp-server -f

7.2 TFTP超时错误

解决方法:

  1. 检查TFTP服务是否运行:sudo systemctl status tftpd-hpa
  2. 验证防火墙设置:
sudo ufw allow 69/udp sudo ufw reload

7.3 自动安装失败

排查方法:

  1. 检查HTTP服务是否能访问镜像文件
  2. 查看客户端启动参数是否正确
  3. 检查user-data和meta-data文件格式

8. 高级配置技巧

8.1 多系统支持

可以扩展PXE菜单支持多个操作系统:

LABEL CentOS 7 MENU LABEL CentOS 7 KERNEL centos7/vmlinuz INITRD centos7/initrd.img APPEND inst.repo=http://192.168.1.10/centos7 ks=http://192.168.1.10/centos7/ks.cfg

8.2 磁盘分区定制

在user-data中自定义存储配置示例:

storage: config: - type: disk id: disk0 ptable: gpt wipe: superblock grub_device: true - type: partition id: boot-partition device: disk0 size: 1G flag: boot - type: partition id: root-partition device: disk0 size: 20G - type: format id: boot-format volume: boot-partition fstype: ext4 - type: format id: root-format volume: root-partition fstype: ext4 - type: mount id: boot-mount device: boot-format path: /boot - type: mount id: root-mount device: root-format path: /

8.3 安全加固建议

  1. 限制DHCP范围避免与现有网络冲突
  2. 使用VLAN隔离PXE网络
  3. 定期清理TFTP目录中的临时文件
  4. 为PXE服务配置专用账户而非root

在实际部署中,我曾遇到一个典型问题:当同时有UEFI和Legacy BIOS客户端时,需要准备两套引导文件。解决方案是在TFTP根目录创建不同子目录分别存放BIOS和UEFI所需的引导文件,并在DHCP配置中根据客户端架构动态返回正确的文件名。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 3:40:13

低代码机器学习:重构数据科学工作流的工程实践

1. 这不是“不用写代码”的幻觉,而是用低代码重构机器学习工作流的真实实践“Machine Learning with Low Code”这个标题,第一次看到时我笑了——不是笑它天真,而是笑自己十年前刚带团队做模型落地时,也天天在Excel里手搓特征、用…

作者头像 李华
网站建设 2026/7/19 3:40:08

2026年企业Agent平台盘点|5款主流工具选型指南

作为一家千人级制造企业的数字化负责人,过去半年我牵头完成了企业级Agent平台的全链路选型,前后对接了近十家服务商,中间踩过的最实际的坑就是初期选型忽略管控成本,后期团队扩容时权限混乱、资源消耗不可追溯,整体投入…

作者头像 李华
网站建设 2026/7/19 3:39:47

生产级机器学习服务落地:从Notebook到高可用API的工程实践

1. 项目概述:当模型走出Jupyter,真正开始呼吸真实世界空气“From Notebook to Production: Running ML in the Real World (Part 4)”——这个标题本身就像一句暗号,专为那些在Jupyter里调通了模型、画出了漂亮ROC曲线、却在部署时被现实迎面…

作者头像 李华
网站建设 2026/7/19 3:37:47

SMPlayer多媒体播放器使用技巧与性能优化指南

1. SMPlayer常见问题全解析作为一款基于MPlayer核心的多媒体播放器,SMPlayer凭借其丰富的功能和跨平台特性赢得了大量用户的青睐。但在实际使用过程中,不少用户会遇到各种操作问题。本文将针对官方FAQ中的高频问题进行全面解析,并补充实际使用…

作者头像 李华
网站建设 2026/7/19 3:37:24

2026行星式圆管坡口机厂家解析及首选推荐

2026行星式圆管坡口机厂家解析及首选推荐行星式圆管坡口机在工业管道加工领域占据着核心地位,它能够高效、精准地对圆管进行坡口加工,为后续的焊接工作提供高质量的接口,直接影响到管道工程的质量和效率。目前,行星式圆管坡口机市…

作者头像 李华