【Debian GNU/Linux 安装手册】4.5. 为使用 TFTP 网络引导准备文件

4.5. 为使用 TFTP 网络引导准备文件

如果您的机器连接到了一个局域网,您可以从网络上的另外一台机器上面通过 TFTP 来引导它。如果您倾向从另外一台机器上面引导安装系统,则引导文件需要放在那台机器上面的某个特殊地方,并且配置好能够能够支持对您的机器进行引导。

您需要设置一台 TFTP 服务器,并且对于很多机器来说,还需要一台 DHCP 服务器 ,或 BOOTP 服务器

BOOTP 是一种 IP 协议,用来告诉一台计算机它自己 IP 地址以及从网络何处获得启动映像。 DHCP (Dynamic Host Configuration Protocol) 是一个更灵活,向后兼容的 BOOTP 扩展。有些系统只能通过 DHCP 来配置。

普通文件传输协议(Trivial File Transfer Protocol (TFTP))被用于为客户提供引导映像。理论上,任意服务器,在任意平台上只要实现了这些协议就都能够被应用。在这一节的一些例子里面,我们将提供在 SunOS 4.x、SunOS 5.x (即 Solaris) 和 GNU/Linux 上面的一些操作例子。

注意

对于 Debian GNU/Linux 服务器,我们推荐使用 tftpd-hpa。它由 syslinux bootloader 的同一作者开发,因此不会导致很多问题。另一个好的选择是 atftpd

4.5.1. 设置 DHCP 服务器

一个 DHCP 服务器自由软件是 ISC dhcpd。对于 Debian GNU/Linux,推荐使用 isc-dhcp-server 软件包。这里是它的一个简单的配置示例文件(参阅 /etc/dhcp/dhcpd.conf):

option domain-name "example.com";
option domain-name-servers ns1.example.com;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "servername";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}

host clientname {
  filename "/tftpboot.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

在这个例子中,一台服务器 servername 负责执行包括 DHCP 服务器、TFTP 服务器和网关在内的所有工作。您需要修改域名选项,以及服务器名和客户端硬件地址。filename 选项应该是将要从 TFTP 获取的文件名。

在编辑了 dhcpd 配置文件后,您需要使用下面的命令重新启动:/etc/init.d/isc-dhcp-server restart

4.5.1.1. 在 DHCP 配置中打开 PXE 引导功能

这里是另外一个采用 TFTP 的 Pre-boot Execution Environment (PXE) 方法的 dhcp.conf 配置例子。

option domain-name "example.com";

default-lease-time 600;
max-lease-time 7200;

allow booting;
allow bootp;

# The next paragraph needs to be modified to fit your case
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option broadcast-address 192.168.1.255;
# the gateway address which can be different
# (access to the internet for instance)
  option routers 192.168.1.1;
# indicate the dns you want to use
  option domain-name-servers 192.168.1.3;
}

group {
  next-server 192.168.1.3;
  host tftpclient {
# tftp client hardware address
  hardware ethernet  00:10:DC:27:6C:15;
  filename "pxelinux.0";
 }
}

注意对于 PXE 引导来说,客户端文件名 pxelinux.0 是一个 boot loader,而非一个内核映象(参见下面的 第 4.5.4 节 “将 TFTP 映像放到适当的位置”)。

如果机器使用 UEFI 来引导,那么必须指定适于 UEFI 机器的引导程序,例如

group {
  next-server 192.168.1.3;
  host tftpclient {
# tftp client hardware address
  hardware ethernet  00:10:DC:27:6C:15;
  filename "debian-installer/amd64/bootnetx64.efi";
 }
}

4.5.2. 架设 BOOTP 服务器

在 GNU/Linux 下面可以使用两种 BOOTP 服务器。首先是 CMU bootpd,另外一种实际上是 DHCP 服务器:ISC dhcpd。Debian GNU/Linux 中它们分别被包含在 bootpisc-dhcp-server 软件包。

为了使用 CMU bootpd,您必须首先将 /etc/inetd.conf 中相关的注释标记去掉(或者加入一些新行)。在 Debian GNU/Linux 里,您可以运行 update-inetd --enable bootps,然后执行 /etc/init.d/inetd reload 来实现此任务。万一您的 BOOTP 服务器不是运行在 Debian 上,这行看起来应该像这样:

bootps  dgram  udp  wait  root  /usr/sbin/bootpd  bootpd -i -t 120

现在,您必须创建一个 /etc/bootptab 文件。它具有和一些经典的 BSD 文件很相似,并使用相同的加密格式。这些文件包括 printcaptermcapdisktab。参见 bootptab 的手册页以获得更多的信息。对于 CMU bootpd,您将需要知道客户机硬件(MAC)地址。这里有一个示例 /etc/bootptab

client:\
  hd=/tftpboot:\
  bf=tftpboot.img:\
  ip=192.168.1.90:\
  sm=255.255.255.0:\
  sa=192.168.1.1:\
  ha=0123456789AB:

您至少需要修改 ha 选项,它指定了客户机的硬件地址。bf 选项则指定了一个客户机应该通过 TFTP 取得的文件名称。请从 第 4.5.4 节 “将 TFTP 映像放到适当的位置” 处获得更多的信息。

相反,通过 ISC dhcpd 设置 BOOTP 就非常容易。因为它把 BOOTP 客户程序看成一个特殊的 DHCP 客户端。部分体系结构需要经过复杂的设置才能从 BOOTP 启动客户端。如果您的机器属于这种情况,请阅读第 4.5.1 节 “设置 DHCP 服务器”。否则,大概只需要将 allow bootp 指令添加到包含客户机的子网的配置部分 /etc/dhcp/dhcpd.conf,并用命令 /etc/init.d/isc-dhcp-server restart 重新启动 dhcpd

4.5.3. 开启 TFTP 服务器

要准备好 TFTP 服务器,您首先需要确定 tftpd 已经启动。

对于 tftpd-hpa 有两种方式可以启动服务。它可以通过系统的 inetd 守护程序启动,或者设置为独立的守护程序。这可以在安装软件包的时候选择,也可以用重新配置软件包方式修改。

注意

因为历史原因,TFTP 服务器使用 /tftpboot 作为映像文件目录。然而,Debian GNU/Linux 软件包遵守 Filesystem Hierarchy Standard 使用其他的目录。例如,tftpd-hpa 默认使用 /srv/tftp。您或许要适当地调整一下配置文件示例。

Debian 中所有 in.tftpd 参数默认都会将 TFTP 请求记录到系统日志中。有些还支持 -v 选项增加详细程度。万一遇到引导问题,推荐先检查这些日志信息,这对于分析错误是一个好的起始点。

4.5.4. 将 TFTP 映像放到适当的位置

接下来,将 第 4.2.1 节 “在哪里能找到安装文件” 中找到的 TFTP 启动映像放置到 tftpd 引导映像目录中。您可能需要将该文件链接到 tftpd 所使用的引导特定客户端的文件名。不幸的是,这个文件名完全决定于 TFTP 客户程序,而且没有一个强制的标准。

对于用 PXE 引导来说,您所需的只是建立 netboot/netboot.tar.gz 压缩包。只须将此包解压到 tftpd 引导映像目录下。并确保您的 DHCP 服务器的配置将会把 pxelinux.0 作为启动所需的文件名传递给 tftpd。对于 UEFI 机器,需要传递适当的 EFI 引导映像名称(如 /debian-installer/amd64/bootnetx64.efi)。

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/4577.html

(0)
晴川运维晴川运维
上一篇 2025年6月8日
下一篇 2025年6月8日

相关推荐

  • Linux中安装Etcher具体方法

    Etcher新版是一款u盘镜像制作工具,可以将镜像刻录到u盘,只要是可以连接USB,都可以使用,Etcher新版包括SD卡,它可以将isp、img、disk、raw等多种镜像格式,…

    Debian 2025年6月10日
  • 终端共享神器tmate具体使用方法

    tmate工具是tmux的一个分支,使用相同的配置信息来配置,是一个终端多路复用器,同时具有即时分享终端的能力,允许在单个屏幕中创建并且操控多个终端,而且还可以与别人进行分享,下面…

    Debian 2025年6月9日
  • 安装Debian 10之后需要注意的事情

    Debian 10是目前Debian最新的LTS版本,代号为「Buster」,包含了很多特色功能。如果你最近尝试在你的电脑上安装了 Debian 10,安装之后不知道下一步怎么做,…

    Debian 2025年6月8日
  • chkservice:在 Linux 终端管理 systemd 单元的工具

    systemd 意即系统守护进程system daemon,是一个新的初始化系统和系统管理工具,它现在非常流行,大部分的 linux 发行版开始使用这种新的初始化系统。 syste…

    Debian 2025年6月13日
  • Ubuntu中使用reeFileSync进行对比及同步文件

    FreeFileSync 首先是文件同步功能,可以在指定的两个文件夹之间进行单向或双向的同步,点击程序窗口右上方的绿色齿轮图标可以设置相关参数;期间也可以自定义需要筛选的文件,有“…

    Debian 2025年6月10日
  • 【Debian参考手册】第 5 章 网络设置

    目录 5.1. 基本网络架构 5.1.1. 主机名解析 5.1.2. 网络接口名称 5.1.3. 局域网网络地址范围 5.1.4. 网络设备支持 5.2. 现代的桌面网络配置 5.…

    Debian 2025年6月8日
  • 【Debian管理员手册】附录 A. 衍生发行版

    很多的Linux发行版都是Debian的衍生物并且使用Debian的包管理工具。它们都有他们自己的有趣的特性,并且很有可能其中一款比原Debian更适合你的需要。 A.1.&nbs…

    Debian 2025年6月8日
  • Linux下修改hostname的三种方法

    Linux操作系统的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat /proc/sys/kernel/hostn…

    Debian 2025年6月10日
  • 【Debian管理员手册】第 1 章 Debian 项目

    1.1. 什么是 Debian? 1.1.1. 一个多平台操作系统 1.1.2. 自由软件的质量 1.1.3. 法律框架:非营利组织 1.2. 基金会文档 1.2.1. 对用户的承…

    Debian 2025年6月8日
  • Glances 命令监控具体使用方法

    Glances是一个相对比较新的系统监控工具,用 Python 编写的,使用 psutil 库从系统获取信息。可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系…

    Debian 2025年6月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注