使用tftpd32搭建PXE服务器——从FTP服务器下载内核及INITRD文件

本文介绍了如何使用tftpd32搭建PXE服务器,通过FTP下载内核和INITRD文件。首先创建PXE_BOOT文件夹,放入syslinux相关文件,接着创建pxelinux.cfg配置文件夹。然后以管理员权限运行tftpd32,配置启动文件和基目录。在pxelinux.cfg/default中设置启动项,指定vmlinuz和initrd的FTP地址。最后,在VMware中创建虚拟机,设置为桥接模式,并在局域网中配置FTP服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

必备工具

tftpd32-4.5.0

syslinux-6.0.3

vmware workstation

以上工具都可以从网上下载到,版本可以用最新的。

详细步骤

1、创建一个文件夹如D:/PXE_BOOT/,解压syslinux源码包,在源码包中搜索找到ldlinux.c32、lpxelinux.0、pxelinux.0并拷贝到D:/PXE_BOOT/目录中。

2、在D:/PXE_BOOT/下创建一个pxelinux.cfg文件夹,这里要放类似于isolinux.cfg的配置文件,其实完全可以拷贝系统镜像中的isolinux.cfg过来,重命名为default即可。

3、以管理员权限打开tftpd32,配置如下图所示。其中的启动文件可以是pxelinux.0或lpxelinux.0,区别在lpxelinux.0支持从ftp或http服务器下载内核文件vmlinuz和initrd文件。

010445_El3P_2332270.png

4、配置tftp服务如下图所示,主要是修改Base Directory为D:/PXE_BOOT。

### 如何在 Ubuntu 上搭建 PXE 网络安装服务器 #### 安装必要的软件包 为了构建完整的 PXE 服务环境,在 Ubuntu 中需安装 HTTP、DHCP 和 TFTP 服务。对于 TFTP 的安装命令如下所示: ```bash sudo apt update && sudo apt install tftpd-hpa -y ``` 此操作会更新本地包索引并安装 `tftpd-hpa` 软件包,这是提供 TFTP 协议支持所必需的服务程序[^3]。 #### 配置 DHCP 服务 确保 DHCP 服务器能够向客户端分发 IP 地址及其他必要参数,如引导文件名和下一跳服务器地址。如果使用的是 ISC DHCP Server,则可以通过编辑 `/etc/dhcp/dhcpd.conf` 文件来完成设置。假设服务器位于子网 `192.168.10.0/24` 内部,并且其自身的静态IP为 `192.168.10.2` ,那么可以添加类似下面的内容到配置文件中[^5]: ```plaintext subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.100; option routers 192.168.10.1; filename "pxelinux.0"; } ``` 上述片段定义了一个 DHCP 租约池范围,并指定了默认网关以及启动加载器的位置。 #### 设置 HTTP 或 FTP 作为镜像源 当通过网络安装操作系统时,通常还需要一个 Web 或者 FTP 服务器用来托管 ISO 映像或者其他相关资源。Apache 是一种常见的选择;可通过执行以下指令来进行安装: ```bash sudo apt install apache2 -y ``` 之后可将所需的操作系统映像放置于 Apache 默认根目录 (`/var/www/html`) 下面的一个合适位置,比如创建名为 `ubuntu` 的文件夹并将下载好的 `.iso` 放入其中[^1]。 #### 准备内核与初始化ramdisk 从官方渠道获取适用于目标架构的目标版本 Linux 发行版的 vmlinuz (内核) 和 initrd.gz (初始 RAM 磁盘),然后将其复制至 TFTP 根路径下(通常是 `/srv/tftp`),以便后续由客户机请求加载这些组件以继续安装过程[^2]。 #### 创建 PXELINUX 配置菜单 最后一步是在 TFTP 根目录建立 pxelinux.cfg 子目录,并在此处编写相应的 boot menu 文本文件指导用户选择要安装的具体发行版及其选项。例如,可以在该目录下的 default 文件里加入这样的条目: ```plaintext default ubuntu-minimal-install label ubuntu-minimal-install menu label ^Install Ubuntu Minimal Install kernel /vmlinuz append initrd=/initrd.gz ip=dhcp url=http://<server-ip>/ubuntu/ubuntu-22.04.1-live-server-amd64.iso --- ``` 这里 `<server-ip>` 应替换实际运行 web 服务的那一台机器公网可达的 IP 地址或域名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值