6. 获取内核的几种方法

到目前为止,我们已经讨论了客户端和服务器在客户端发出 BOOTP 请求后的操作配置,但首要问题是大多数计算机默认情况下无法充当 BOOTP 客户端。在本节中,我们将了解如何解决这个问题。

6.1. 支持 BOOTP 或 DHCP 的网卡

这是最简单的情况:一些网卡为 BIOS 提供了补充,其中包含 BOOTP 或 DHCP 客户端,因此只需在 BIOS 中将它们设置为 BOOTP 或 DHCP 操作即可完成。

6.2. 本地软盘或硬盘上的内核

这些情况也很简单:内核从本地驱动器加载,内核要做的就是从 BOOTP 获取其网络参数,并通过 NFS 挂载其根文件系统;这不应该引起任何问题。顺便说一句,本地硬盘是存放以下内容的理想位置/var, /tmp,以及/dev...

如果您有本地硬盘,您只需像往常一样使用 lilo 或您喜欢的引导加载程序即可。如果您使用软盘,您可以使用引导加载程序,也可以直接将内核写入软盘:内核是直接可引导的。这使您可以使用如下命令
      # dd if=zImage of=/dev/fd0 bs=8192
    

然而,Alan Cox 在 linux-kernel 线程中说,linux 内核的此功能迟早会被删除,因此即使在软盘上,您也必须使用引导加载程序。我知道这在 2.4.11 内核中仍然有效,但似乎在 2.4.13 版本中已删除支持。有关此主题,请参阅 boot-disk-HOWTO 的第六章。

6.3. 本地软盘或硬盘上没有内核的引导加载程序

某些引导加载程序是网络感知的,因此您可以使用它们从网络下载内核镜像。下面列出了一些

6.4. 为客户端创建 ROM

许多网卡都包含一个插槽,可以在其中插入带有附加 BIOS 代码的 EPROM。这使得可以向 BI0S 添加 BOOTP 功能。为此,您首先必须找到如何启用 EPROM 插槽。您可能需要跳线或特殊软件才能做到这一点。一些像 3Com 905B 这样的卡具有 EEPROM 插槽,可以使用户能够就地更改 EEPROM 中的软件。在附录中,您将找到有关 EPROM 和各种类型的存储芯片的信息。

有关 EPROM 烧录器制造商的列表,请访问 Yahoo 网站并转到 economy->company->Hardware->Peripherals->Device programmers 或查看旧的 Diskless-HOWTO EPROM 烧录器制造商列表 部分。

如果您选择创建自己的 ROM,您将需要在 ROM 中加载支持 BOOTP 或 DHCP 的软件,然后,您将处于上述 BOOTP 或 DHCP 支持的网卡的情况。

您还需要为您的网卡找到合适的 EPROM 尺寸和速度。附录中提供了一些方法,因为网卡制造商通常不提供此信息。

6.5. 本地 CD-ROM

本节最初由 Hans de Goede 编写为 Diskless-root-NFS-HOWTO 编写。我对其进行了略微修改,以反映本文档和 Diskless-root-NFS-HOWTO 之间的一些差异。

以上大部分内容也适用于从 CD-ROM 启动。为什么要从 CD-ROM 启动机器?从 CD-ROM 启动在任何需要运行非常特定的应用程序的地方都很有趣,例如信息亭、图书馆数据库程序或网吧,并且没有网络或服务器来使用基于 nfs 设置的根文件系统。

6.5.1. 创建测试设置

现在我们知道我们想要做什么以及如何做,是时候创建一个测试设置了

6.5.2. 创建 CD

如果您需要比以下内容更多的信息,请参阅 CD-Writing-HOWTO。