Next Previous Contents

3. 简介

这里所描述的架构是从 1996 夏季开始在 日内瓦大学, CUI 所发展的. 这个信息系有许多的伺服器, 及一些个人电脑, 可依用途分为两类:

以下是我们发展这种架构的目标: 这些限制条件, 使得我们把所有的组态都以 BootPROM 工具程序为基础. 我们先是针对来自 Bootix GmbHTCP/IP BootPROM 发展. 而现在更加入对 preboot execution environments 标准的支持. 我们让这些工具程序也可以与任何 PXE 兼容的 BootPROM 一起使用. PXE BootPROM, 也称为 LanDesk Service Agent, 已跟随著大部份内建网路卡的主机板一起散布. 其他关于 PXE 及 Intel Wired for Management 的标准, 可透过 http://developer.intel.com/ial/wfm/tools/index.htm 取得.

3.1 BootPROM 及 硬盘机

BootPROM 已出现很长一段时间, 在此之前我们把它单独用于无磁盘机的电脑(采用网路为基础的磁盘模拟或者下载一份 ramdisk). 从 1996 年起, 这份 How-to 提出使用 BootPROM 在自身具有硬盘机的电脑下使用, 将更有趣. 由于这样将可得到双重得优点:

至今, 我们相当高兴见到所有的电脑制造商已朝向同样的目标. 并把 BootPROM 列为新电脑标准的一部份.

你仍然可以照 的方式, 使用下列所叙述的工具程序. 这些工具程序对无磁盘机的电脑而言, 其实就是一个小的 Kernel/ramdisk 载入器. 但我们不鼓励如此使用.

3.2 网路

日内瓦大学 拥有 B 级网域, 分割成许多子网路. CUI 共使用了四个子网路, 其中之一供学生使用.

原本,我们的个人电脑使用两种网路通讯协定: IPX 与 IP. IPX 这一类, 我们由一台 Novell Netware 3 的伺服器共用 DOS 与 Windows的软件. IP 这一类, 我们由一台 SUN 伺服器靠 NFS 共用 Linux 软件及个人的分割区.

在我们最新的架构中, 已不再使用 IPX 通讯协定. 改由一台 Unix 伺服器 (可以是 Linux 或 SUN) 来担任, Linux 用户端可透过 NFS, 而 DOS 与 Windows 则由 SMB (NetBIOS) over TCP/IP 共用软件及使用者的文档. 因此, 我们对所有的作业系统都使用单一个 home 目录.

3.3 它是如何工作

  1. 用户端个人电脑开机后, 在 TCP/IP BootPROM 或 PXE Boot ROM 获得控制权之前先做自我测试.
  2. BootPROM 发出 BOOTP/DHCP 要求, 以取得 IP 组态参数.
  3. 如果伺服器收到个人电脑所送出的要求, 就会送回 BOOTP/DHCP 回应, 内容包括用户端的 IP 位址, 预设通讯闸道, 及开机映像档. 否则, 伺服器会忽略这个要求.
  4. 而在 PXE Boot ROM 的环境下, 将有更多的信息在用户端与伺服器之间作应答, 用以决定安装参数.
  5. BootPROM 由 TFTP 通讯协定从伺服器下载开机映像档, 这个映像档其实就是一个名为 BpBatch 的小程序, 也就是我们的开机时期批次文档的解译器.
  6. 启动批次档解译器之后. 几乎是只有它单独存在内存中. 除了 preboot execution environment (由 Boot ROM 提供)外, 这时作业系统尚未载入.
  7. 这个批次档解译器会检查 BOOTP/DHCP 给命令列的所有选项, 特别是 BpBatch 要处理的. BpBatch 以 DHCP 选项 155 取得命令列参数. 如果选项 155 是空的, 它会改由 DHCP 选项 135 取得参数 (PXE 2.0 BootPROM 只能收到 128-135 的选项).
  8. 透过批次作业档, 我们可以做一些事如:
    1. 载入多国语系键盘对应.
    2. 透过硬件伺服器 (Unix, Radius 或 Windows NT) 做使用者身份认证.
    3. 让使用者决定使用, 哪种可用的作业系统.
    4. 决定作业系统后, 自动重新分割硬盘并快速格式化部份分割区.
    5. 检查其硬盘内的资料是否与其选定的作业系统的最新设定一制, 如果不是, 它会透过 TFTP 通讯协定下载最新映像档.
    6. 解压缩所选定的作业系统的映像档到主分割区.
    7. 如果选择 Linux, 载入 Kernel 并启动它.
    8. 如果选择 DOS 或 Windows, 就更新硬盘资料并启动电脑.
    DOS and Windows 3.1, 我们使用免费的 Microsoft LanManager for DOS (搜寻网路上与你最近的映射站台; 应该是有四个名为 disk1disk4 的文档) 为 SMB 用户端. Microsoft LanManager 可以透过 DHCP 动态设定组态. 在登入后, 使用者面对的是 DOS, 且只要打 win 指令就可启动 Windows 3.1 了. 有一点, 在这要特别注意 DOS 及 Windows 3.1 看起来像是安装在用户端的自身电脑. 对 Windows 9598 及 Windows NT/, 我们也使用 Microsoft SMB 用户端 (称为 Client for the Microsoft Network), 它也支持透过 DHCP 动态设定组态. 为了降低网路负载我们采用了 Shared LAN Cache, 这是一个强而有力的网路到硬盘之间的快取程序.
学生所使用的电脑可以很暴力的直接关掉电源而不会有任何问题, 因为硬盘的资料在每次开机时都会重新建立.

对于比较 "安全的" 电脑 (如 助教的电脑), 如果电脑已用上述系统开机过一次, 则开机脚本只会改由本机硬盘开机, 而不再清理硬盘. 这样可以允许使用者保留资料在硬盘中. 而当整个架构烂掉了, 使用者只需从开机选单挑选所要的系统, 则又能得到一个全新的安装.

3.4 相关的非商业文件

这种组态已经成功的移殖到世界上的许多地方. 少数人已经开始篆写一些技巧与提示来完成这份 How-To. 如果您也曾做过, 但在本文中未被引用欢迎送一份 e-mail 给 mvuilleu@bpbatch.org. 如果您在重建这种组态中遇到问题, 请再详细看一次文件 !

你也可以寄给我你的 BpBatch 脚本程序档, 如果你想让它放在 范例脚本程序精选中.


Next Previous Contents