Windows 安装程序

来自 WinStory Wiki
跳转到导航 跳转到搜索
Windows 安装程序
Microsoft Windows 的组件
Windows 安装程序;Windows 11 Build 26040 中的语言选择界面
类型安装程序
推出于Windows 1.0

Windows 安装程序是安装 Windows 操作系统的过程,根据版本的不同,包括对硬盘驱动器进行分区、复制操作系统文件,然后配置已安装的系统。

变种和历史

16 位 Windows

Windows 1.0 有一个非常基本的安装程序,它要求提供目标驱动器、目录和硬件配置,然后继续安装操作系统。安装程序中没有从安装程序加载自定义驱动程序的选项,用户必须手动复制磁盘上的驱动程序。而为了优化性能,安装程序还使用所谓的“快速启动”将关键的系统文件合并到 WIN100.BIN 文件中。安装程序也不支持更改系统的单个部分,要更改单个部分必须全新安装整个环境才能做到这一点,且会在过程中擦除任何配置。

与更高版本不同,Windows 1.0 安装程序没有易于访问的设置。相反,可执行文件是专门针对每个磁盘大小编译的,可用的驱动程序是由安装程序动态确定,无需事先配置。

Windows 2.0 保留了与以前版本类似的用户界面进行设置,尽管它引入了许多后端更改。值得注意的是,它引入了纯文本配置文件 SETUP.INF,在其中包含系统文件列表和包含的驱动程序以及其他设置。此设置现在还支持从应用程序本身加载自定义驱动程序。但是,Windows 2.x 不支持升级以前版本的 Windows。任何以前安装的 Windows 版本都将被覆盖,并且必须从 WIN.INI 文件手动传输任何设置。Windows/386 2.1Windows/286 2.1 增加了一个额外的步骤,允许用户加载 Memset,这是一个用于将 SmartDrive 缓存程序安装到系统驱动器的根目录上安装实用程序。

Windows 3.0 引入了一个新的、更高级的安装程序。安装程序的黑色背景已替换为蓝色背景,灰色条显示安装正在执行的当前任务。复制核心 Windows 系统文件后,它将启动 Windows 以完成安装。从那里,复制剩余文件并设置组件。此版本还引入了通过从 DOS 中运行安装程序来升级以前安装的 Windows 版本的功能。升级以前的版本会将其存储在 WIN.INI 文件中的所有设置转移到较新的版本。Windows 3.1 针对用户添加了输入其姓名和公司的选项,Windows for Workgroups 3.1 添加了网络设置,其中包括检测网络适配器,然后配置网络设置,包括适配器和协议。如果完成此操作,系统将要求用户提供网络的用户名、工作组和计算机名称。由于 VGA 显示驱动程序中的调色板在 Windows 3.1 中发生了变化,因此与 Windows 3.0 相比,设置背景的显示方式不同。SmartDrive 现在也已安装并配置为默认在 DOS 启动时运行。如果配置了网络,net start 也将在启动时运行。

Windows 9x

Windows 9x 版本的安装不需要已有的 DOS 版本。但是,在大多数情况下,由于大多数 Windows 9x 安装介质不可引导,因此仍然需要启动磁盘。安装过程准备一个分区,使用磁盘扫描程序检查该分区,然后将文件复制到硬盘。

在 Windows 9x 版本中,用于安装的是 .CAB 文件。最广为人知 .CAB 安装文件包括:

  • WIN95_*.CAB、WIN98_*.CAB(在早期 Windows 98 版本中为 WIN9X_*.CAB)和 WIN_*.CAB:它们包含主要的系统应用程序和文件。
  • DRIVER*.CAB:包含适用于 Windows 的驱动程序文件。
  • NET*.CAB:包含网络和 Internet 组件。
  • MINI.CAB:包含从 DOS 中开始安装所需的基本文件。此环境基于 Windows 3.1

如果从 DOS 启动安装过程,则 MINI.CAB 文件中基于 Windows 3.1 的环境用于启动安装程序。在此阶段,用户配置安装的各种设置,并将 Windows 系统文件复制到硬盘。但是,安装程序也可以从现有的 Windows 3.1 或 9x 环境中运行,跳过此部分。复制文件后,安装程序将重新启动计算机、设置设备并配置系统设置。

从 Windows 9x 开始,需要输入特定密钥才能设置 Windows。这从早期 Windows 95 预发布版本的 Beta Site ID 和密码开始,然后是 Windows 95 和 NT 4.0 零售 CD 版本的 CD 密钥,以及 OEM 版本的身份验证证书(COA)密钥。两者都已被 Windows 98 和 2000 中的产品密钥所取代,后者也在前者的软盘版本中首次亮相。

在 Windows Me 中,引入了一个新的安装向导,它遵循 Wizard97 的视觉准则,取代了 Windows 95 中的前一个方案。

Windows 98 和 Me 的零售版本确实在安装的第一部分要求提供凭据信息,而在 OEM 版本中,在重新启动后,则是在第二部分开始之前会询问用户,从而允许 OEM 轻松准备具有现有 Windows 安装的计算机。

Windows 的升级版本还会检查现有已安装的 Windows 版本。此“升级符合性检查”(Upgrade Compliance Check,UCC)在安装向导启动之前在 Windows 95 中启动,而在 Windows 98 和 Me 中,它是其中的一部分。如果 UCC 找不到现有安装,则会要求提供第一个安装软盘或先前版本的 CD-ROM。如果未指定任何现有安装,安装程序将退出。UCC 仅在从 DOS 启动安装程序时触发,因为如果从现有 Windows 安装启动安装程序,则不需要 UCC。

在安装文件中,包括一个名为 msbatch.inf 的虚拟文件,如果将其替换为适当的文件,则可用于在无人参与模式下安装 Windows。

Windows NT

在开发过程中,Windows NT 采用了 Windows 3.1 安装过程的修改版本。与此类似,设置配置存储在 INI 格式的文本文件中,尽管与基于 DOS 的对应配置不同,文本模式配置使用单独的配置文件。为了与 MS-DOS 兼容,所有文件都使用 8.3 格式的文件名,通常将最后一个扩展名字符替换为下划线以标记文件已压缩,全名存储在安装配置中。尽管原始媒体通常压缩了大多数文件,但压缩是可选的。

操作系统文件与安装配置一起存储在根据目标平台命名的文件夹中。这使得同一张光盘可以包含多个体系结构的安装文件,这反过来又允许所有版本在同一个软件包中提供,直到 Windows NT 4.0。由于 32 位 x86 系统的文件存储在 I386 目录中,因此此特定设置过程通常称为“i386 安装”,尽管其他目录名称用于其他平台,包括:用于 DEC Alpha 系统的 ALPHA、用于 MIPS 的 MIPS、用于 PowerPC 的 PPC、用于 NEC PC-98 的 PC98(或 Windows 2000 中的 NEC98)、用于 Itanium 的 IA64 和用于 64 位 x86 的 AMD64。后两种架构的介质还包括一个I386目录,尽管与早期版本不同,它不包含独立的32位x86版本,而是包含 WoW64 所需的文件,文件名以字母 W 为前缀。

x86 平台上的安装可以通过多种方式启动,其中最直接的方式是从随附的安装媒体启动。对于 Windows NT 3.51 及更早版本,这需要使用启动软盘,而 Windows NT 4.0 及更高版本支持直接从安装 CD-ROM 启动。还可以使用安装 CD-ROM 中包含的可执行文件将安装文件复制到硬盘驱动器,即用于 MS-DOS 的 WINNT.EXE 和现有 Win32 环境中的 WINNT32.EXE(在 Windows NT 3.5 中引入)。虽然 WINNT32.EXE 在 Windows NT 4.0 之前只是 WINNT.EXE 的 Win32 变体,但它变成了 Windows 2000 中的升级向导,它评估升级后的操作系统并指出任何不兼容之处,然后再启动到正确的安装程序。Windows XP 是最后一个能够使用软盘启动到安装程序的版本,但这些磁盘只能通过 Microsoft 下载,因为自 Windows 2000 以来已删除使用 WINNT.EXE 创建启动软盘的功能。此版本也是最后一个附带一组物理启动软盘的版本。

与 Windows 3.1 类似,安装过程包括两个主要阶段。第一阶段通常以文本模式运行,并为第二个 GUI 阶段的运行准备环境。值得注意的是,它使用多处理器内核(ntkrnlmp.exe)而不是通常的 ntoskrnl.exe 启动。这可以在启动屏幕上轻松看到,其中“多处理器内核”显示在 RAM 量旁边。启动到第一阶段时,安装程序将确定硬件配置并加载配置中指定的驱动程序。然后,它继续在安装介质上启动最小 NT 环境,此介质的会话管理器组件已替换为将控制权传递给安装驱动程序(setupdd.sys)的简单本机应用程序。当它完成加载时,它会显示一个欢迎屏幕,允许用户继续安装或修复现有的 Windows 副本。此时,还可以在 Windows 2000 及更高版本中调用故障恢复控制台。升级到 Windows XPWindows Server 2003 时,此阶段以 16 色图形模式运行,显示静态广告牌以及进度条和动画,并且不接受任何输入,尽管在遇到错误时它会回退到文本模式,在卸载 Windows XP 和恢复 Windows 9x 时也是如此。

第一阶段的下一页包括许可协议和分区管理。安装程序检查分区是否存在错误后,它会将一个更完整的系统复制到磁盘,并通过生成注册表和编写引导加载程序来准备系统以运行第二阶段。然后,系统重新启动进入第二阶段,该阶段以图形模式运行并安装操作系统的其余部分,并配置网络、日期/时间并要求提供产品密钥。

虽然第二阶段主要由向导组成,直到 Windows 2000,但 Windows XP 将其扩展为全屏助手,称赞操作系统的功能和改进。但是,此向导在设备安装完成后和开始升级时仍会显示。通过编辑安装信息文件或调用 SysPrep 中的最小化安装选项,可以重新激活较旧的设计,此选项旨在供 OEM 在工厂预安装,因为它还以这种方式显示许可协议。

从 Windows 2000 开始,网络标识向导在首次启动时运行,以配置用户名和密码,以及自动登录到特定用户的选项。这演变成 Windows XP 的完全全新安装体验,允许用户轻松配置网络设置、用户帐户,以及从 Service Pack 2 开始的自动更新。从 Windows 9x 升级时,系统将提示用户输入管理员帐户的密码,因为 Windows 9x 中不存在管理员帐户。

Windows Vista 和 7

Windows Longhorn Build 4001 引入了 WIM 安装格式。此安装格式通过 WinPE 启动操作系统,从而启动主安装用户界面。用户配置安装的多个方面,例如用户要安装的 Windows SKU、要安装 Windows 的磁盘或分区,以及用户是否要执行升级或全新安装。安装程序通过安装介质上的 \sources\boot.wim 文件启动。

安装过程的工作原理是将预打包的WIM映像(\sources\install.wim)部署到要安装 Windows 的硬盘。开发重置的早期版本重新使用 i386 安装程序,这是 WIM 安装方法直到 Build 5048 才重新实现。从此版本开始,安装程序也会从安装映像本身启动。映像索引确定将安装的 Windows SKU。从 Windows 8 开始,DISM 命令行工具用于将映像部署到 Windows 的安装位置。应用 WIM 映像后,安装程序会在硬盘上创建启动文件,并重新启动计算机,以便可以设置设备并运行 OOBE。如果用户选择安装 Windows 的硬盘上已有 Windows 版本,则现有 Windows 安装将移动到 \Windows.old 目录中。

以前可从文本模式安装程序访问的旧故障恢复控制台被 Windows 恢复环境取代,Windows 恢复环境是一个基于 GUI 的诊断工具套件,用于解决阻止 Microsoft Windows 安装正常启动的系统级问题。

尽管当前的 WIM 格式最初是在 Windows Vista 中引入的,但基于 Windows XP 的 Windows 版本也可以打包为 WIM 格式。可以在 Windows Embedded for Point of ServiceWindows Fundamentals for Legacy PC 中看到示例。安装程序图形资源存储在 Windows Vista 及更高版本上的 spwizimg.dll 中;Windows Longhorn 重置前版本将它们存储在 win32ui.dllwin32uitheme.dll 中。

来自 vbl_media_ehomevbl_media_ehome_dev 内部版本实验室的 Windows Vista Beta 2 和 RC 版本将原始安装启动器替换为“Media Center Diamond Take Home DVD Launcher”,后者在无人参与模式下全新安装 Windows Vista,并使用 Windows Media Center 诊断和调试工具。在 Windows XP Media Center Edition 2005 的版本中存在功能类似的启动器,但由于用户模式未在 Windows XP 的安装程序中初始化,因此它在内核模式下运行。

Windows 8 及以上版本

Windows 8 开始,对实体压缩的支持(通过 LZMS 算法)以电子软件下载(ESD)文件格式的形式实现到 WIM 映像格式中。可以通过将 recovery 压缩类型传递到 /Capture-Image DISM commandlet 的参数中来创建此类映像。除非使用 LZX 压缩(通过 fast/max 压缩类型)重新导出到 WIM 映像中,否则无法修改 ESD 映像。

压缩 WIM 映像还可以使用 AES 对文件的某些部分进行加密,其中 AES 密钥本身由公共 RSA 密钥加密;这首先是在作为 Windows 8 Consumer Preview 和更高版本的一部分提供的 Web 安装程序中建立的。这些映像通过 Windows下载平台(WinDlp.dll)使用相应的私钥进行解密,该私钥可以额外嵌入到相应的 WIM 映像 XML 元数据中(通过函数 CDlpTransformRecoverCrypto::SaveKeyToWim())和/或随后由函数 CDlpTransformRecoverCrypto::GetKeyFromWim() 解析,此函数又从函数 CDlpTransformRecoverCrypto::CryptWimFile() 调用(主要负责解密实际映像的内容)。

这种做法通过 Windows Media Creation Tool 在较新的 Windows 版本中继续存在,Windows Media Creation Tool 是 Web 安装程序的修改版本,旨在生成可在可移动设备上运行的安装媒体,并且在 Windows 10 的早期版本中通过加密内部和外部预览版的内容在周年更新中进一步实践,之后,Microsoft 在后来切换到统一更新平台来分发新的操作系统版本。

Windows 8.x 中,除非用户输入正确的产品密钥、在 sources 文件夹中创建正确的 ei.cfg 文件、使用 DISM 应用 Windows 映像或答案文件,否则无法转义产品密钥页。Windows 8.1 安装程序的更高版本接受 Windows 8 产品密钥。Windows 10 的安装程序接受来自 Windows 7 及更高版本的产品密钥。

最初的 Windows 11 版本以来,在升级评估器库中实施了对设置过程的额外检查,以满足当时公布的新系统要求,这需要具有 UEFI、TPM 2.0 模块和安全启动支持的系统;这些要求遭到了各种用户的强烈反对,因为它使许多完全支持 Windows 10 的旧系统没有资格免费升级。[1]

旧版 Windows Vista/7 安装程序用户界面后来被弃用,作为 Build 26040 的一部分,将现代化的 Windows 8 安装程序用户界面引入 Windows 预安装环境安装包中,稍作修改以支持磁盘分区功能和 EFI 启动支持。仍可以通过在支持的安装路径列表中选择“启动旧版体验”选项来调用旧版安装用户界面。

图库

16-位 Windows

Windows 9x

Windows NT

引用资料

  1. Thomas Claburn. Microsoft 发布 Windows 11 Insider Preview,试图捍卫迷宫般的硬件要求, The Register. 2021 年 6 月 28 日.