2. 无盘启动操作概述

嘿,你是不是觉得该开始来点真家伙了?我们开始吧。

2.1. 获取 IP 参数

有人可能会想,如果工作站甚至不知道自己的 IP 地址,它如何通过 IP 网络启动。 实际上,有三种协议使客户端能够获取此信息和一些额外的配置参数

2.2. 加载内核

当客户端获得其 IP 参数后,如果内核不在本地介质上(如软盘、光盘或硬盘),客户端将开始通过 TFTP 下载它。 其位置由 BOOTP/DHCP 服务器给出。 服务器(不一定是 BOOTP/DHCP 服务器)还必须为非本地内核运行 TFTP 守护程序。 编译后获得的内核不能“按原样”用于 BOOTP/DHCP 操作,其二进制映像必须使用 mknbi 实用程序进行修改(如果使用 LanWorks EPROM,则再次使用 imggen 实用程序进行修改)。 mknbi 实用程序也应该用于修改将写入 ROM 的内核。

2.3. 挂载根文件系统

内核启动后,它将尝试挂载其根文件系统。 此文件系统的位置也是通过 BOOTP/DHCP 获得的,并且通过 NFS 挂载。 这意味着客户端可能需要使用 BOOTP 两次进行启动:第一次获取其内核,第二次了解根文件系统的位置(根文件系统可能在第三台服务器上)。

另一种解决方案是使用内存盘作为根文件系统。 在这种情况下,内存盘映像与内核一起通过 TFTP 获取。

2.4. 终止启动过程

当根文件系统被挂载时,你就可以松一口气了:你至少可以使用你的瑞士军刀,它带有 sh、sed 和 awk 工具。 实际上,你将不得不自定义客户端文件系统的初始化脚本:例如,你将不得不从/etc/fstab中删除所有与硬盘驱动器、软盘或光盘相关的内容(当你的工作站没有配备这些设备时),你可能还必须禁止交换分区激活(请注意,有一种通过 NFS 或网络块设备进行交换的方法)。 如果多个客户端使用相同的远程根文件系统,你还必须在启动时自动生成所有网络配置文件。