在 Linux 中配置 tftpboot 服务器的 10 个步骤

举报
Tiamo_T 发表于 2022/03/18 15:46:09 2022/03/18
【摘要】 在本文中,让我们讨论如何设置 tftpboot,包括安装必要的软件包,以及 tftpboot 配置。

在本文中,让我们讨论如何设置 tftpboot,包括安装必要的软件包,以及 tftpboot 配置。

TFTP 引导服务主要用于在您没有物理访问权限的远程计算机上执行操作系统安装。为了成功执行操作系统安装,应该有一种重新启动远程服务器的方法 - 使用wakeonlan或手动重新启动它或其他方式。

在这些情况下,您可以相应地设置 tftpboot 服务,并且可以远程完成操作系统安装(您需要拥有 autoyast 配置文件来自动执行操作系统安装步骤)。

本文介绍了 64 位架构中的 SLES10-SP3 的分步过程。但是,这些步骤与任何其他 Linux 发行版非常相似。

所需的包

需要为 tftpboot 设置安装以下软件包。

  • dhcp 服务包:dhcp-3.0.7-7.5.20.x86_64.rpm 和 dhcp-server-3.0.7-7.5.20.x86_64.rpm
  • tftpboot 包:tftp-0.48-1.6.x86_64.rpm
  • pxeboot 包:syslinux-3.11-20.14.26.x86_64.rpm

包安装

安装 dhcp 服务器服务的软件包:

$ rpm -ivh dhcp-3.0.7-7.5.20.x86_64.rpm
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]

$ rpm -ivh dhcp-server-3.0.7-7.5.20.x86_64.rpm
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]

$ rpm -ivh tftp-0.48-1.6.x86_64.rpm

$ rpm -ivh syslinux-3.11-20.14.26.x86_64.rpm

安装 syslinux 包后,会在 /usr/share/pxelinux/ 目录下创建 pxelinux.0 文件。这是在客户端机器上加载安装内核和 initrd 映像所必需的。

验证软件包是否已成功安装。

$ rpm -qa | grep dhcp
$ rpm -qa | grep tftp

从您各自的 Linux 发行版的存储库中下载适当的 tftpserver。

设置 tftpboot 的步骤

第一步:创建 /tftpboot 目录

在根目录( /​​ )下创建 tftpboot 目录,如下所示。

# mkdir /tftpboot/

第 2 步:复制 pxelinux 映像

安装 syslinux 软件包后,PXE Linux 映像将可用。将其复制到 /tftpboot 路径,如下所示。

# cp /usr/share/syslinux/pxelinux.0 /tftpboot

步骤 3:创建 ISO 挂载点并挂载 ISO 映像

让我们假设我们要在远程服务器上安装 SLES10 SP3 Linux 发行版。如果您有 SUSE10-SP3 DVD,请将其插入驱动器或安装您拥有的 ISO 映像。在这里,iso 映像已按如下方式挂载:

# mkdir /tftpboot/sles10_sp3

# mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3

请参阅我们之前关于如何挂载和查看 ISO 文件的文章。

第 4 步:将 vmlinuz 和 initrd 映像复制到 /tftpboot

将 initrd 复制到 tftpboot 目录,如下所示。

# cd /tftpboot/sles10_sp3/boot/x86_64/loader

# cp initrd linux /tftpboot/

第 5 步:创建 pxelinux.cfg 目录

在 /tftpboot 下创建目录 pxelinux.cfg 并为客户端定义 pxe 引导定义。

# mkdir /tftpboot/pxelinux.cfg

# cat >/tftpboot/pxelinux.cfg/default
default linux
label linux
kernel linux
append initrd=initrd showopts instmode=nfs install=nfs://192.168.1.101/tftpboot/sles10_sp3/

以下选项用于,

  • kernel – 指定在 TFTP 服务器上找到 Linux 安装内核的位置。
  • install – 指定要传递给安装内核的引导参数。

根据上面的条目,nfs 安装模式用于提供安装 RPM 和配置文件。因此,在导出列表中使用 /tftpboot 目录在这台机器上设置 nfs。您可以在 autoyast 配置文件中添加“autoyast”选项以自动执行操作系统安装步骤,否则您需要手动运行安装步骤。

第 6 步:更改 /tftpboot 目录的所有者和权限

将nobody:nobody 分配给/tftpboot 目录。

# chown none:nobody /tftpboot

# chmod 777 /tftpboot

第七步:修改/etc/dhcpd.conf

修改 /etc/dhcpd.conf 如下所示。

# cat /etc/dhcpd.conf

ddns-update-style none;
default-lease-time 14400;
filename "pxelinux.0"; 

# IP address of the dhcp server nothing but this machine.
next-server 192.168.1.101;
subnet 192.168.1.0 netmask 255.255.255.0 {
  # ip distribution range between 192.168.1.1 to 192.168.1.100
  range 192.168.1.1 192.168.1.100;
  default-lease-time 10;
  max-lease-time 10;
}

在 /etc/syslinux/dhcpd 中指定接口以侦听来自客户端的 dhcp 请求。

# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE
DHCPD_INTERFACE=”eth1”;

在这里,这台机器在 eth1 设备上的 ip 地址为 192.168.1.101。因此,如上所示,为 DHCPD_INTERFACE 指定 eth1。

第八步:修改/etc/xinetd.d/tftp

修改 /etc/xinetd.d/tftp 文件以反映以下内容。默认情况下,禁用参数的值为“yes”,请确保将其修改为“no”,并且需要将 server_args 条目更改为 -s /tftpboot。

# cat /etc/xinetd.d/tftp
	service tftp {
                       socket_type     = dgram
                       protocol          = udp
                       wait               = yes
                       user               = root
                       server            = /usr/sbin/in.tftpd
                       server_args     = -s /tftpboot
                       disable           = no
            }

第 9 步:/etc/xinetd.conf 中没有更改

无需修改 etc/xinetd.conf 文件。使用 xinetd.conf 文件中指定的默认值。

第十步:重启xinetd、dhcpd和nfs服务

重新启动这些服务,如下所示。

# /etc/init.d/xinetd restart

# /etc/init.d/dhcpd restart

# /etc/init.d/nfsserver restart

重启nfs服务后,可以通过以下命令查看导出的目录列表(/tftpboot),

# showmount -e

最后,tftpboot 设置已准备就绪,现在可以在 BIOS 设置中将第一个引导设备更改为“网络”后引导客户端计算机。

如果您遇到任何 tftp 错误,您可以通过 tftpd 服务检索一些文件来进行故障排除。

从 tftpserver 检索一些文件以确保 tftp 服务使用 tftp 客户端正常工作。让我们假设 sample.txt 文件存在于 /tftpboot 目录下。

 $ tftp -v 192.168.1.101 -c get sample.txt
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200