ubuntu22.04pxe
时间: 2025-01-09 08:40:18 浏览: 3
### 配置 Ubuntu 22.04 的 PXE 无人值守安装
#### 安装必要软件包
为了配置 PXE 服务器,在 Ubuntu 22.04 上需先安装必要的软件包,包括 DHCP、TFTP 和 HTTP(或 NFS)服务器。具体来说:
- **DHCP 服务器**: `isc-dhcp-server` 负责分配 IP 地址给启动中的客户端设备。
- **TFTP 服务器**: `tftpd-hpa` 提供远程引导加载程序和其他必需文件传输服务。
- **HTTP/NFS 服务器**: 可选使用 `apache2` 或者 `nfs-kernel-server` 来提供操作系统镜像及其他资源。
```bash
sudo apt update && sudo apt install isc-dhcp-server tftpd-hpa apache2 -y
```
对于选择 NFS 协议的情况,则还需要额外安装 NFS 相关组件[^3]。
#### 设置 TFTP 服务器
编辑 `/etc/default/tftpd-hpa` 文件来指定 TFTP 根目录位置以及启用安全选项。通常情况下会将其设为 `/var/lib/tftpboot/` 并确保该路径存在且具有适当权限。
```bash
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot/"
```
重启 TFTP 服务使更改生效:
```bash
sudo systemctl restart tftpd-hpa.service
```
#### 准备 DHCP 配置
修改 `/etc/dhcp/dhcpd.conf` 添加指向 TFTP 服务器的信息以便于客户机能获取到正确的 boot file 名称及其所在的位置。
```conf
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;
filename "pxelinux.0";
next-server <your-tftp-ip>;
}
```
其中 `<your-tftp-ip>` 应替换为实际运行 TFTP 服务的 IP 地址。
#### 构建 Web 或 NFS 服务器用于分发 ISO 映像
如果选择了 Apache HTTP Server 方式,则只需将解压后的 Linux 发行版映像放置在 webroot 下即可;而若是采用 NFS 方法,则要创建共享并允许访问特定网络范围内的主机连接读取数据。
对于 NFS 设置而言,假设已成功安装了所需的服务,那么可以在 `/etc/exports` 中定义导出规则如下所示:
```text
/mnt/ubuntu *(ro,sync,no_subtree_check)
```
接着重新载入 NFS 导出表单让新设定立即可用:
```bash
exportfs -ra
```
#### 自动化应答文件与预引导环境变量 (Preseed/Kickstart)
为了让整个过程实现完全自动化,还需准备好 preseed.cfg 文件指导安装流程完成各项参数设置工作。此文件应当放在可通过 HTTP 访问的地方,并通过 pxelinux.cfg/default 进行关联引用。
例如,在默认菜单项中加入 kernel 参数指明 preconfiguration URL 如下:
```text
label ubuntu-autoinstall
menu label ^Install Ubuntu Autoinstall
kernel ubuntu-installer/amd64/linux
append initrd=ubuntu-installer/amd64/initrd.gz auto=true priority=critical url=http://<webserver>/preseed.cfg vga=normal ---
```
以上即是在 Ubuntu 22.04 上构建 PXE 无交互式安装系统的概览介绍[^1][^2]。
阅读全文