桌面文件网络引导 Windows

Wes Miller

目录

PXE 的工作原理
深入探究 RIS
WDS — 起点
其他参与方
结束语

在接下来的几个月中,我打算介绍 Windows 部署服务 (WDS),Windows Server 2003 中包含这项服务,它还内置到了 Windows Server 2008 中。WDS 可能是部署基础结构中一个非常重要的组件,因此我希望确保您有良好的基础进行讨论。第一篇

专栏将深入介绍预引导执行环境(PXE;发音为 pixie)的体系结构、远程安装服务 (RIS) 的历史以及 Microsoft 使用的其他与 PXE 相关的技术。

在 2001 年调到 Windows 核心操作系统组时,RIS 是我接手的一项技术(由于其复杂性和对 BIOS 实现及硬件的依赖性,当时感觉有些忐忑不安)。但是,除 Windows® PE 外,它是我作为项目经理最喜欢的技术之一。

我还记得首次安装 Windows 3.0 时的情形,当时使用的是一组 3.5" 磁盘。后来,可引导 CD(包括在某些版本的 Windows 98 中)的出现让安装变得更加轻松。但实际上,安装始终需要某些类型的本地媒体以及本地硬盘。

客户对通过网络引导 Windows 的需求与日俱增 — 即,无需硬盘,完全通过网络进行引导。尽管 Windows 的某些早期版本具有该功能,但 Windows NT® 却没有。而且,尽管可通过 iSCSI 启动程序引导当前版本的 Windows Server® 2003 和 Windows Server 2008,但此过程与真正的网络引导有很大区别 — 它始终需要依赖一个远程驱动器作为引导驱动器。

预先设置客户端

自 Windows 2000 起,Microsoft 开始开发最终称为 RIS 且允许基于网络进行安装的一种技术。RIS 的目标比较简单 — 使用 PXE 将操作系统映像放在目标计算机的本地硬盘上。

PXE 的工作原理

图 1 显示了 PXE 引导序列。PXE 是一个相对简单的协议,由 Intel 和其他供应商制定,属于“有线管理”计划的一部分。PXE 派生自动态主机配置协议 (DHCP)(它又派生自 BootP),通常在网络接口卡 (NIC) 中实现。简而言之,以下是具体的步骤:

fig01.gif

图 1 PXE 引导序列(单击此图像查看大图)

第 1 步系统 BIOS 启动并确定引导顺序。

第 2 步如果引导顺序将 PXE 放在硬盘、闪存驱动器、或 CD-ROM 之前,或者不存在这些设备,将从 NIC 加载通用网络驱动程序接口 (UNDI)。NIC 具有一个极小的网络设备驱动程序和普通文件传输协议 (TFTP) 实现。(某些 BIOS 实现需要最终用户按 F12 键才能执行 PXE 引导。这并非标准做法,我建议禁用这一功能。)

第 3 步系统执行一个简单的用户数据报协议 (UDP) 广播,以查找 DHCP 服务器。它实际是 PXE 引导序列的第一步,称为“发现”。请注意,协议是 UDP — 意味着首先需要花费一些时间来处理路由器和交换机,以确保所有 PXE 通信均可顺利通过。

第 4 步如果 DHCP 服务器听到广播,它将使用 IP 地址来做出相应的响应。此步骤称为“提供”。在此要特别注意的一点是:PXE 没有状态,此时客户端必须提供的系统独有状态信息的数量非常有限(MAC 地址,还可能有系统管理 BIOS GUID,也称为 SMBIOS GUID)。

第 5 步在接收包含 IP 地址的数据包后,客户端表示它实际需要更多信息 — 即 PXE 服务器的地址。再次进行广播,其中包括最初响应 DHCP 服务器的信息。此时客户端告诉 DHCP 服务器:“我需要更多信息 — 尤其需要网络引导程序 (NBP) 的位置。”此步骤称为“请求”。

第 6 步PXE 服务器使用 PXE 服务器地址和 NBP(一个极小的引导可执行文件,小于 32KB)的位置做出响应。此步骤称为“确认”。如果在同时操作,您可能已注意到首字母缩写词 DORA(Discover-发现、Offer-提供、Request-请求、Acknowledge-确认),一个记住序列的好方法。

请注意,如果已安装 Microsoft DHCP 和 WDS(或使用某些其他供应商的技术),则不会出现请求步骤,并且实际上,来自 DHCP 服务器的原始“提供”数据包已包括 PXE 服务器和 NBP 程序的位置(因而省去了两个步骤以及一些时间)。

第 7 步客户端(具有之前提及的小 TFTP 协议堆栈)将从 PXE 服务器指定的网络位置下载 NBP。TFTP 是一个标有日期且无状态的超微型协议。它在安全性或性能上并不出众 — 因此许多路由器管理员均默认禁用它。必须启用它 PBX 才能正常运行。

许多 PXE 实现(包括 RIS)都可以要求用户此时按 F12 键继续操作,但 PXE 服务器的管理员通常会将其禁用。下个月研讨 WDS 时,我将介绍一些增强功能,Microsoft 将其引入 TFTPD (TFTP Daemon)(Windows Server 2008 的 WDS 中)以改善性能。

第 8 步初始化 NBP。对于 RIS,它将启动 Windows 引导加载程序,此程序将开始执行部署的流程。PXE(至少是实际的引导级协议)不再是此流程中的一个组件。

请注意:PXE(RIS、WDS 或任何其他基础结构)在以下情形下无法正常工作:链路速度慢(它可能要传输大量数据)或高延时链路(如卫星)(通信无法正常执行且甚至可能无法保持)。

在 PXE 引导过程中,您可能已注意到:当客户端发送请求时,并无明确的提问:“您是我母亲吗?”这是因为 PXE 服务器不需了解多少状态信息。通常发生的是争用 — 首先响应客户端请求的服务器将取得胜利。有许多方法能帮助减少此类问题:

  • 调整一个 PXE 服务器或其他服务器的响应速度。网络延迟和服务器动力将影响服务器的响应速度。实际上,在 Microsoft,Microsoft IT 过去使用的服务器都非常好,甚至于即使 PXE 服务器位于办公室中,公司服务器有时仍可胜出。在这种情况下,只需针对预先设置的客户端,将本地 PXE 服务器设为根本无超时即可。
  • 预先设置客户端。如果想要使 PXE 服务器先于其他公司 IT 服务器做出响应,这一点非常重要。通过预先设置客户端,从而允许 Active Directory® 告诉 WDS 或 RIS:是的,实际上,“我是你的母亲”。请注意,在 Active Directory 中,SMBIOS GUID 更适合作为系统的唯一标识符 — 但如果系统中没有实现 SMBIOS GUID(很可能出现在相对较旧的硬件中),您可以(而且必须)根据 MAC 地址使用 GUID。如需更多信息,请参阅“预先设置客户端”侧栏。
  • 切勿允许 PXE 通信跨交换机或路由器;每侧放置一台 PXE 服务器。此方法的缺点是实现和维护都很昂贵(每个服务器都必须维护自己的映像)。

RIS 和现在的 WDS 服务器(如 Microsoft 的 DHCP 服务器)必须依据相关的 Active Directory 实现进行身份验证。目的是通过让 Active Directory 了解所有服务器来减少未授权 PXE 服务器可能导致的问题(如 PXE 广播风暴)。

请注意,此方法仅依靠 Active Directory 识别出的服务器实施保护。如果设置自己的域或非 Microsoft PXE 服务器,情况就不是这样了。

在 Microsoft,有个过分热心的员工曾配置过一个“零接触”部署非 RIS PXE 服务器。它完全删除硬盘并记下一个新映像。如果是在一个封闭(不联网)的实验室中进行部署,此方法确实可行,遗憾的是真实环境并非如此 — 设想如果 Microsoft 的总经理在引导顺序中将 PXE 放在硬盘之前,会导致删除硬盘的内容。

这不是个问题,因为 Microsoft IT 始终要求按 F12 键来实现 PXE 引导,但此 PXE 服务器没有延迟、F12 提示或任意类型的通知。这等于总经理丢失了计算机以及未受漫游用户配置文件保护的所有数据。

如果准备实现“零接触”或极少要求按 F12 键,您可从此故事中知晓隔离 PXE 服务器的必要性。

深入探究 RIS

在 Windows 2000 发布后我接手了 RIS。就 RIS 而言,Windows 2000 经历的是一段艰难的时期 — 测试、性能和其他限制导致 Windows Server 2000 的 RIS 仅可用于部署 Windows 2000 Professional。无法通过 RIS 部署服务器产品。Windows 2000 仅可用于 x86 机器,因此它是一个不错的 RIS 测试平台,因为它在一种体系结构中涉及一个产品。RIS 包括(且需要)与 Active Directory 的完全集成、妥善地集成到 Microsoft 的 DHCP 服务器中,并且包括自己的 TFTPD。

RIS 使用 NBP 来继续下载 TFTP — 并且使用充足的 Windows 内核来开始安装过程。(某些特定时刻,一旦 Windows 从 TFTPD 切换至为基于 SMB 的服务器连接,实际上就与传统软盘启动的 Windows 2000 或 Windows XP 安装共享文字代码路径。)初始化本机模式 Windows 后,Windows 安装会启动 RIS OS Chooser (OSC) 向导。

OSC 屏幕可进行某种程度的配置(类似 HTML 2.0 的页面)。它们有严格的限制,无法包含图像或类似内容,并且实际上无法包含非 ANSI 字符(因而使 Windows 的某些区域设置部署变得非常复杂)。

RIS 的最终产品是位于 RIS 服务器中的一个 txtsetup.sif 文件。执行完 OSChooser 向导后,将“软重启”客户端,但 RIS 服务器和 txtset­up.sif 文件的位置将保持不变,且会在软重启后重新加载。此 txtsetup.sif 文件实质上与 unattend.txt 文件相同,包括多个附加字段来帮助 RIS 完成安装过程。

RIS 还可执行非常类似于传统无人参与安装的一种安装 (RISetup),它有一个基于克隆的基础结构 (RIPrep),类似于 Sysprep,实际上是与其共享代码。但 RIPrep 还可将自身的映像上载到 RIS 服务器。

但是,RIS 有一些愈发明显的基本限制。首先是缺少服务器部署支持。由于存在红色代码和震荡波这类攻击,并且许多大客户在从 2001 年 9 月 11 日那场灾难中执行直接恢复时,都遇到了复杂的 IT 问题,使得我们必须迅速为现有 Windows 2000 RIS 服务器找到一个解决方案,以实现 Windows Server 部署。我们曾针对 Windows Server 2003 做过此类研究,但尚未正式发布。

有关 PXE 相关技术的更多信息

其次,RIS 缺少完全自动执行 OSChooser 向导的能力(后来是通过 Windows Server 2003 中的 <META ACTION="AUTOENTER"> 元素启用此向导)。最后,OSChooser 无法使用非 ANSI 字符正常运行 — 它是美国以外的许多客户指出的一个主要弱点。

这就出现了无法使用法语键盘来完成 RIS 安装这类情形。在全球各地使非 ANSI 字符在 PC 的 BIOS 级别安全工作极其复杂且难以实现。

随着 Windows Server 2003 的发布,我们正式添加了对 Intel Itanium 体系结构和所有版本 Windows 2000 和 Windows Server 2003 的支持。Windows Server 2003 由于支持 x64 体系结构而更进了一步。

RIS 的 TFTPD 有了大幅改动,提高了性能。Windows Server 2003 支持同时引导最多 75 个客户端;请记住,当 SMB 管道中充满到客户端的网络流量时,即达到上限。

WDS — 起点

当我们开始研究用于“Longhorn”(Windows Server 2008 的代码名称)的 RIS 时,需要先做个回顾。正如我之前在专栏中提到的,我们曾对通过 Windows PE 实现的基于映像 (WIM) 安装下过很大的赌注。它为 WDS 建立了一项关键原则:通过 Windows PE 的 PXE 引导实例实现基于映像的部署。

我们还知道 Windows Server 2003 将成为 Windows Vista® 部署的常见平台,我们需要一个用于 WDS 下层的“带外”解决方案。因此,WDS 可在 Windows Server 2003 SP1 上运行且已内置到 Windows Server 2003 SP2 中。

由于可作为 RIS 服务器(旧式模式)、混合服务器(混合模式)或仅 WDS 服务器(本机模式)运行,WDS 允许迁移到正式的 WDS 形式部署。我听过客户询问有没有方法在 Windows Server 2003 SP2 系统上安装 RIS。是的,有 — 安装 WDS 并在旧式模式下运行。图 2 显示了所支持的操作系统。

图 2 支持部署的平台

操作系统 RIS (Windows 2000) RIS (Windows Server 2003)** WDS (Windows Server 2003)**** WDS (Windows Server 2008)
Windows 2000 Pro X X X X
Windows 2000 Server * X X X
Windows XP Pro   X(x86 和 IA64)*** X X
Windows Server 2003   X(x86 和 IA64)*** X X
Windows Vista     X X
Windows Server 2008     X X
* support.microsoft.com/kb/308508support.microsoft.com/kb/313069 添加了 Windows 2000 Server 与 RIS 配用方面的支持说明。
** WDS 旧式模式和混合模式支持同一组旧式安装。
*** Windows Server 2003 SP1 添加了对 x64 系统的支持。IA64 系统仅支持基于 RISetup 的安装。
**** 支持本机模式。

Windows Server 2003 SP1 和 SP2 中的 WDS 是向 WDS 迁移的起点。正如我之前提到的,WDS 在 Windows Server 2008 中添加的主要功能是经过改进的 TFTPD、可扩展固件接口 (EFI) 引导支持,当然还有基于多播的部署。

其他参与方

Microsoft 的另一团队构建了自动部署服务 (ADS),主要用于快速置备服务器。ADS 具有基于扇区的正式映像、自己的引导代理(比 Windows PE 小巧,但功能不够完整)、自己的 TFTPD 以及非常先进的多播。在 System Center Configuration Manager (SCCM) 中,ADS 中的内置功能在一定程度上得以体现,尽管功能并非 100% 相同。

Windows XP Embedded 通过将其 TFTPD 放入 RAMDisk 可实现完全 PXE 引导,但无法以这种方式进行远程部署。此技术旨在支持通过 PXE 同时使用相同磁盘映像引导多个系统。

结束语

简而言之,以上讲述的是发展过程。要了解更多信息,请参阅“有关 PXE 相关技术的更多信息”侧栏。下个月,我将深入探究 WDS 基础知识,然后是有关 WDS 高级功能(多播等)的专栏,最后是 WDS 的全新使用方法,即超越现有 WDS/安装体验应用您自己的部署技术。

Wes Miller 是位于德克萨斯州奥斯汀市的 CoreTrace 公司 (www.CoreTrace.com) 的高级技术产品经理。在此之前,他在 Winternals Software 公司任职,并曾在 Microsoft 担任项目经理。可通过电子邮件 technet@getwired.com 与 Wes 联系。

© 2008 Microsoft Corporation 和 CMP Media, LLC。保留所有权利;未经允许不得复制本文的部分或全部内容。