视窗苹果电脑软件设置安全生产力Linux安卓性能配置苹果自定义设备管理iPhone设置 全部

如何在Linux上设置PXE引导服务器

已编辑 1 天前 通过 ExtremeHow 编辑团队

网络启动预启动执行环境服务器设置部署配置系统管理员简单文件传输协议命令行安装镜像制作

如何在Linux上设置PXE引导服务器

翻译更新 1 天前

在本指南中,我们将学习如何在Linux机器上设置一个预启动执行环境(PXE)引导服务器。此过程允许计算机使用通过网络提供的镜像启动,而不是使用本地存储。对于需要在网络上的多台机器上部署操作系统或软件的系统管理员来说,PXE非常有用。

1. PXE引导简介

PXE,即预启动执行环境(Preboot Execution Environment),使计算机可以通过网络接口启动,而无需依赖可用的数据存储设备或已安装的操作系统。这对于自动化服务器部署非常有帮助,并且可以用于Linux操作系统和其他操作系统的网络安装。

基本上,PXE由两个主要组件组成:

使用PXE引导服务器,你可以从集中位置快速高效地在多台机器上安装操作系统。

2. 要求

要在Linux上设置PXE引导服务器,你需要以下组件:

3. 设置DHCP服务器

DHCP服务器为PXE客户端分配一个IP地址,并通知它们有关下一个要联系的服务器以进行引导过程的信息。

使用软件包管理器安装DHCP服务器。如果你使用的是诸如Ubuntu或Debian之类的发行版,命令将如下所示:

sudo apt-get install isc-dhcp-server

安装后,首先编辑DHCP服务器配置文件,该文件通常位于/etc/dhcp/dhcpd.conf。你需要设置它以指定PXE客户端的IP地址、子网掩码和引导加载程序文件的详细信息。

以下是一个基本的配置片段:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    option routers 192.168.1.1;
    filename "pxelinux.0";
    next-server 192.168.1.5; # 你的PXE服务器的IP地址
    option broadcast-address 192.168.1.255;
}

配置后,重新启动DHCP服务以应用更改:

sudo systemctl restart isc-dhcp-server

确保DHCP服务器在启动时启动:

sudo systemctl enable isc-dhcp-server

4. 安装TFTP服务器

TFTP(简单文件传输协议)服务器将引导加载程序传送给PXE客户端。使用以下命令安装它:

sudo apt-get install tftpd-hpa

编辑/etc/default/tftpd-hpa中的TFTP配置文件以确保其正确设置为提供引导文件:

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

确保指定的目录(默认/var/lib/tftpboot)已创建且可以访问。重新启动并启用TFTP服务:

sudo systemctl restart tftpd-hpa
sudo systemctl enable tftpd-hpa

5. 配置引导加载程序

SYSLINUX提供了一个名为pxelinux的PXE引导加载程序。首先,安装syslinux(如果尚未安装):

sudo apt-get install syslinux-common

将所需文件复制到tftpboot目录:

sudo cp /usr/lib/PXELINUX/pxelinux.0 /var/lib/tftpboot
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

要提供一个引导菜单,你必须在/var/lib/tftpboot/pxelinux.cfg中创建一个配置文件。创建一个名为default的文件:

DEFAULT menu.c32
PROMPT 0
TIMEOUT 50
ONTIMEOUT local
LABEL linux
    MENU LABEL ^Install Linux
    KERNEL vmlinuz
    APPEND initrd=initrd.img

此配置提供了一个引导菜单,用于选择网络可引导的镜像,例如Linux。

6. 准备引导内核和initrd

将你的Linux安装介质中的内核和initrd文件复制到/var/lib/tftpboot目录:

sudo cp /path-to-linux-iso/vmlinuz /var/lib/tftpboot/
sudo cp /path-to-linux-iso/initrd.img /var/lib/tftpboot/

确保权限正确:

sudo chmod 644 /var/lib/tftpboot/*

7. 配置NFS或HTTP

必须使用NFS或HTTP托管实际的安装文件。每种方法都适用于根据你的网络要求。

对于NFS:

安装NFS服务器:

sudo apt-get install nfs-kernel-server

编辑出口文件/etc/exports以包含存储安装文件的目录:

/path-to-your-linux-files 192.168.1.0/24(ro,sync,no_root_squash)

重新启动NFS服务:

sudo exportfs -a
sudo systemctl restart nfs-kernel-server

对于HTTP:

安装像Apache这样的HTTP服务器:

sudo apt-get install apache2

将你的安装介质链接到一个网络可访问的目录:

sudo ln -s /path-to-your-linux-files /var/www/html/linux

重新启动Apache:

sudo systemctl restart apache2

确保防火墙允许NFS/HTTP端口:

sudo ufw allow 2049
sudo ufw allow 80

8. 启动你的PXE客户端

最后,配置你的客户端从网络引导。通常需要在BIOS或UEFI固件设置中进行设置。一旦PXE客户端启动,它将连接到你的网络并从DHCP服务器获取IP。然后它从你的TFTP服务器加载引导加载程序文件,并开始使用NFS/HTTP提供的文件进行安装过程。

按照上述步骤,你将成功设置一个PXE引导服务器,你的网络机器可以使用它通过网络加载操作系统。

如果你发现文章内容有误, 您可以


评论