当前位置:首页 > 系统教程 > 正文

PXE实战教程:20步搞定Ubuntu无人值守网络安装(从零开始搭建PXE服务器)

PXE实战教程:20步搞定Ubuntu无人值守网络安装(从零开始搭建PXE服务器)

本文将详细介绍PXE安装的全过程,帮助你实现Ubuntu无人值守网络安装。通过Kickstart配置,你可以批量部署多台机器。本教程基于Ubuntu 20.04 Server,小白也能轻松上手。

PXE实战教程:20步搞定Ubuntu无人值守网络安装(从零开始搭建PXE服务器) PXE安装  Ubuntu无人值守 网络安装 Kickstart配置 第1张

详细步骤:

  1. 步骤1:准备服务器环境 – 安装Ubuntu Server 20.04,配置静态IP地址(例如192.168.1.10/24),更新系统:sudo apt update && sudo apt upgrade -y
  2. 步骤2:安装DHCP服务器 – 执行sudo apt install isc-dhcp-server -y。编辑配置文件/etc/dhcp/dhcpd.conf,添加以下内容(注意网卡和IP段):
    subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 8.8.8.8; next-server 192.168.1.10; filename "pxelinux.0"; }
    其中next-server指定TFTP服务器IP,filename指定引导文件。
  3. 步骤3:安装TFTP服务器 – 运行sudo apt install tftpd-hpa -y。创建TFTP根目录:sudo mkdir -p /var/lib/tftpboot。修改配置文件/etc/default/tftpd-hpa,确保TFTP_DIRECTORY="/var/lib/tftpboot"
  4. 步骤4:安装HTTP服务器 – 使用Apache:sudo apt install apache2 -y。创建用于存放安装文件和Kickstart的目录:sudo mkdir -p /var/www/html/ubuntu20
  5. 步骤5:下载Ubuntu ISO – 从官网下载Ubuntu 20.04 Server ISO,例如:wget http://releases.ubuntu.com/20.04/ubuntu-20.04.6-live-server-amd64.iso。挂载ISO:sudo mount -o loop ubuntu-20.04.6-live-server-amd64.iso /mnt
  6. 步骤6:复制安装文件到HTTP目录sudo cp -r /mnt/* /var/www/html/ubuntu20/。然后卸载ISO:sudo umount /mnt
  7. 步骤7:准备PXE引导文件 – 安装syslinux获取pxelinux.0sudo apt install syslinux -y。复制引导文件到TFTP根目录:sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/。同时复制ldlinux.c32等模块:sudo cp /usr/lib/syslinux/modules/bios/*.c32 /var/lib/tftpboot/
  8. 步骤8:复制内核和initrd – 从ISO挂载目录复制vmlinuz和initrd到TFTP目录:sudo cp /var/www/html/ubuntu20/casper/vmlinuz /var/lib/tftpboot/sudo cp /var/www/html/ubuntu20/casper/initrd /var/lib/tftpboot/
  9. 步骤9:创建PXE引导菜单 – 在TFTP根目录下创建pxelinux.cfg目录:sudo mkdir /var/lib/tftpboot/pxelinux.cfg。创建默认配置文件/var/lib/tftpboot/pxelinux.cfg/default,内容如下:
    default ubuntu-install label ubuntu-install kernel vmlinuz append initrd=initrd ip=dhcp url=http://192.168.1.10/ubuntu20/ubuntu.seed
    注意url指向Kickstart文件(稍后创建)。
  10. 步骤10:创建Kickstart配置文件 – 在HTTP根目录下创建/var/www/html/ubuntu20/ks.cfg,内容示例:
    #version=20 text install url --url="http://192.168.1.10/ubuntu20" lang en_US.UTF-8 keyboard us timezone Asia/Shanghai rootpw --iscrypted $6$...(加密密码) user --name=ubuntu --password=... ...
    可以使用mkpasswd -m sha-512生成加密密码。详细配置请参考官方文档。
  11. 步骤11:配置Kickstart文件权限 – 确保Apache可以访问:sudo chmod 644 /var/www/html/ubuntu20/ks.cfg
  12. 步骤12:修改引导菜单指向Kickstart – 编辑/var/lib/tftpboot/pxelinux.cfg/default,将append行的url=改为ks=http://192.168.1.10/ubuntu20/ks.cfg。同时添加必要内核参数:auto=true priority=critical等。
  13. 步骤13:重启服务并设置开机自启sudo systemctl restart isc-dhcp-server tftpd-hpa apache2,并启用:sudo systemctl enable isc-dhcp-server tftpd-hpa apache2
  14. 步骤14:配置防火墙 – 如果启用了UFW,开放相关端口:sudo ufw allow 67/udp (DHCP), sudo ufw allow 69/udp (TFTP), sudo ufw allow 80/tcp (HTTP)。
  15. 步骤15:准备测试客户端 – 创建一台新的虚拟机或使用物理机,设置为网络启动(PXE boot)。确保与服务器在同一网络。
  16. 步骤16:启动客户端并观察DHCP请求 – 客户端启动后应能获取IP,并从TFTP下载pxelinux.0,随后显示引导菜单。
  17. 步骤17:选择安装项,开始安装 – 在引导菜单中选择ubuntu-install,内核会通过HTTP加载Kickstart文件。
  18. 步骤18:自动化安装过程 – 根据Kickstart配置,系统会自动分区、安装软件包、设置用户等,无需人工干预。
  19. 步骤19:安装完成自动重启 – 安装完成后,系统自动重启,进入新安装的Ubuntu系统。
  20. 步骤20:验证与故障排查 – 登录新系统验证无人值守是否成功。若失败,检查服务器日志:/var/log/syslog (DHCP), /var/log/apache2/access.log, tftp日志等。

总结:通过以上20步,你已成功搭建PXE安装服务器,实现了Ubuntu无人值守网络安装。掌握Kickstart配置后,你可以灵活定制安装选项,大规模部署变得轻而易举。如果在实践中遇到问题,欢迎留言交流。