从网络共享安装 Windows 驱动程序
使用 Image for Linux 启动盘中包含的 TBOSDT

注意:本文已过时。请改用 OSDTOOL.TBS 脚本。有关示例视频,请单击此处。

概述

本 教程介绍了如何通过使用来自 Image for Linux (IFL) 启动盘的 Linux 版本 TBOSDT 程序,从网络 共享安装 Windows 存储驱动程序。IFL 启动盘可以从 Windows 或 Linux 创建,并且可以是 CD/DVD、USB 闪存驱动器或用于 PXE 网络启动的一组 启动文件(仅限 Linux)。

除了本教程外,请参阅 TBOSDT 手册 (tbosdt.pdf) 末尾附近的“应用示例 #2”, 您可以在其中找到整个过程的说明。

起点

使用以下程序的典型场景是: 现有的 Windows 安装(已存在镜像)需要还原到 存储控制器与原始系统上使用的存储驱动程序不兼容的系统上。当更换了主板或整个系统时, 可能会出现此类情况。由于目标系统具有不同的 大容量存储控制器(例如,SATA 控制器而非 IDE 控制器),还原的镜像 将因缺少正确的驱动程序而无法启动。这就是 TBOSDT 的用武之地。

使用 TBOSDT 安装 Windows 驱动程序分 两个阶段 进行,并且可以在 Windows 最初处于 无法启动 状态时完成。第一阶段(阶段 1)发生在从 IFL 启动盘 启动 并执行 TBOSDT 阶段 1 脚本时。这会将 驱动程序安装到 Windows 分区可以启动的程度。它还准备好 Windows 分区,以便在下次 从中 启动时自动执行 TBOSDT 阶段 2 脚本。然后,阶段 2 脚本完成驱动程序 安装。

下文所述程序的起点将是已 还原到目标系统启动驱动器 (HD0) 的 Windows XP 分区镜像。由于尚未安装新硬盘控制器的驱动程序, Windows 分区将无法在目标系统上启动。

还原 Windows 镜像时,必须确保还原的分区已设置为活动状态,并且 已安装标准 MBR 代码。使用任何 TeraByte Unlimited 镜像产品还原单个分区时,可以使用“设置活动”和“写入标准 MBR 代码”还原选项来确保 满足这些条件。还原整个驱动器时不需要或不可用这些选项。

驱动程序文件

通常,要使用 TBOSDT 安装任何 Windows 驱动程序,您需要单独的 驱动程序文件(通常是 INF、CAT 和 SYS 文件)。理想情况下,您将拥有硬件随附的包含驱动程序 文件的软盘 (或其他介质)。如果没有,您需要从硬件 制造商处获取。同样,驱动程序文件必须采用单个 文件的形式,或者可以从 CAB 文件中提取。

本教程将使用在还原的 Windows XP 镜像上安装 Intel SATA AHCI 控制器驱动程序的具体示例。这是 大多数用户在新的 SATA 系统上运行 Windows XP 所需的驱动程序。要查找 该驱动程序,请参阅《使用 nLite 创建 Windows XP 集成光盘》教程。

软件要求

Image for Linux (IFL)

TeraByte OS Deployment Tool Suite (TBOSDTS)

系统要求

一个 Windows 或 Samba 网络共享,可通过有线 网络连接从目标系统访问,并具有读/写权限。

如果使用 USB 闪存驱动器作为启动介质,目标系统必须支持从 USB 驱动器启动。

步骤 1:下载并提取 TBOSDTS

完成驱动程序安装需要示例 TBOSDT 脚本(drvins_1.run 和 drvins_2.run)以及 Windows 版本的 TBOSDT (tbosdtw.exe)。 这些文件可以通过提取 TBOSDTS zip 压缩包(tbosdts_en.zip 或 tbosdts_pro_en.zip)获得,以便将必要的文件 复制到网络共享。

请注意,实际的 TBOSDTS 程序和支持文件包含在文件 tbosdts.zip 中,这是下载的 zip 文件中的 二级 zip 文件。要提取 tbosdts.zip,您需要 readme.txt 中包含的 密码,该文件位于 下载的 zip 文件内。

提取 tbosdts.zip 后,将提供以下文件和目录:



步骤 2:将所需文件复制到网络共享

建议 在 网络共享上创建一个单独的文件夹/目录,以包含安装驱动程序所需的文件。本 教程将使用名为“tbosdtfiles”的目录,该目录位于名为“ubuntu810”的服务器上名为“demo”的共享根 目录下。

需要复制到共享的文件如下表所示:

drvin_1.run 和 drvins_2.run: 从 tbosdts/scripts 目录复制这两个文件。这些是 阶段 1 和阶段 2 的 TBOSDT 脚本,这些文件将在步骤 6 中进行 编辑。

tbosdtw.exe (Windows 版本): 从 tbosdts/win 目录复制 tbosdtw.exe。此文件是 Windows 版本的 TBOSDT。

iaahci.inf, iaahci.cat, iastor.sys: 这些是本示例中安装 Intel SATA 驱动程序所需的特定驱动程序文件。对于其他驱动程序,这些文件的命名将 有所不同。

复制所有必需文件后,网络共享上目录的内容应如下所示:


步骤 3:创建 IFL 启动盘

IFL 启动盘可以 从 Windows 或 Linux 创建为 CD/DVD 或 USB 闪存驱动器。 在 Linux 中,还可以选择将启动盘创建为用于 PXE 网络启动的一组 启动文件。不需要自定义启动盘(可以 选择从 Linux 创建)。

要从 Windows 创建 IFL 启动盘,请参阅以下链接中的 TeraByte Unlimited 教程:
Image for Linux 首要事项 – 制作启动盘

要从 Linux 创建 IFL 启动盘,请参阅以下链接中的 TeraByte Unlimited 教程:
如何从 Linux 发行版创建 IFL 启动介质

步骤 4:从 IFL 启动盘启动并挂载网络共享

从 IFL 启动盘(CD/DVD 或 USB 闪存驱动器)启动目标系统。 要从 USB 闪存驱动器启动,必须将系统 BIOS 设置为从 该设备启动。某些系统可能在启动时有一个按键, 可以调出启动设备菜单,而无需 进入 BIOS 设置。

启动完成后,您将进入 IFL 启动盘主菜单(欢迎屏幕)。突出显示如下图所示的“挂载/卸载 Samba/Windows 共享”项目,然后按 ENTER:



“挂载/卸载”菜单项将检测可用的 Windows/Samba 服务器 ,然后在类似于下面屏幕截图 的屏幕上列出它们。在该屏幕上,突出显示包含文件的 服务器(本示例为 UBUNTU810),然后按 :



选择 服务器后,输入您需要访问的服务器/共享的 用户名,然后按 。在本示例中,用户 名为“demo”:



在下一个屏幕上,输入密码,然后再次按 :



下一个屏幕将列出服务器上可供挂载的共享。 突出显示您需要访问的共享(本示例为 demo), 然后按 。



共享现在应该已挂载,挂载 状态将从“UNMOUNTED”变为“MOUNTED:(/net1)”, 如下所示:



如果 共享挂载失败(或未列在共享菜单上), 通常是由于输入了错误的用户名/密码。 在这种情况下,您可以退出回到服务器菜单,选择服务器,然后 尝试再次输入用户名和密码。

括号中的 (/net1) 是网络 共享的挂载点。挂载点是本地 file 系统中的目录,可以在其中访问 共享的内容。在下面的步骤 6 中编辑阶段 1 脚本 (drvins-1.run) 时将使用 挂载点。除非先挂载了另一个网络共享,否则 挂载点始终为 /net1 。

选择 “EXIT MENU”返回服务器屏幕。在此屏幕上,您现在应该 看到“当前挂载的共享总数”的值为 1,如下 所示:



选择 “EXIT MENU”退出回到主启动盘菜单。在该菜单上, 突出显示“退出到 Linux 命令提示符”,然后按 ENTER:



该菜单选择将使您停留在 Linux 命令提示符处。要进一步 验证共享是否已挂载,以及您现在是否可以访问 共享上的文件,请运行命令“ls /net1/tbosdtfiles”。该命令将 列出之前在上述步骤 2 中复制到 tbosdtfiles 目录的文件, 并应产生如下所示的输出:



现在可以在挂载共享的 tbosdtfiles 目录列表中看到步骤 2 中复制到共享的文件。

步骤 5:确定目标分区的分区 ID

此 步骤是为了确定目标 Windows 分区的分区 ID。此值用于阶段 1 脚本 (drvins_1.run) 的步骤 1 中,以确保在驱动程序安装期间挂载了正确的分区 。阶段 1 脚本将在下面的步骤 6 中进行编辑, 届时将需要此处确定的值。

要确定分区 ID,请从命令提示符运行命令“tbosdt” 以交互模式启动 TBOSDT 程序。然后,在 TBOSDT 命令提示符下, 运行命令“list hd 0”以列出驱动器 HD0 上的分区。这将 产生类似于以下内容的输出:



在 这种情况下,驱动器上只有一个分区,其 分区 ID 为 1,在上面的 ID 列中以括号形式显示为 (01)。 此值与 drvins_1.run 默认 副本中的分区 ID 匹配。如果分区 ID 不是 (01), 则需要在步骤 6 中更改 drvins_1.run 中的分区 ID 值。

请 注意,分区 ID 是一个十六进制数,应在 drvins_1.run 中以十六进制表示法 输入。例如,如果 TBOSDT 将 分区 ID 显示为 (0B),则该值将在 drvins_1.run 中输入为 0xB(前导零可以省略)。 分区 ID (2C) 将输入为 0x2C。

输入“exit”退出 TBOSDT 程序,并返回 Linux 命令提示符。

步骤 6:编辑网络共享上的 TBOSDT 脚本

此 步骤是对上述步骤 2 中复制到 网络共享的默认 TBOSDT 脚本(drvins_1.run 和 drvins_2.run)进行一些必要的更改。将使用 IFL 启动盘中包含的 “nano”文本编辑器编辑这些文件。

要编辑 drvins_1.run,请使用命令“nano /net1/tbosdtfiles/drvins_1.run”启动 nano 文本编辑器,如下面的屏幕截图所示:



对于 drvins_1.run,本示例需要进行以下更改:
1. 取消注释所有以单个“;”开头的行,除了步骤 3b 中的 3 行(共 16 行)
2. 在步骤 1 中,将目标分区 ID 更改为上述步骤 5 中确定的值(如有必要)
3. 在步骤 3 中,调整从网络共享复制文件的路径(3 行)
4. 在步骤 4 中,调整从网络共享复制文件的路径(2 行)

下面的 屏幕截图显示了进行上述更改后 nano 文本编辑器中的 drvins_1.run 。更改内容已圈出并编号, 以与列表相对应。



要保存对文件的更改,请使用 Ctrl-O 组合键 (WriteOut),然后按 ENTER。

要退出 nano 编辑器,请按 Ctrl-X。


要编辑 drvins_2.run,请使用命令“nano /net1/tbosdtfiles/drvins_2.run”启动 nano 文本编辑器。

对于 drvins_2.run,本示例需要进行以下更改:
1. 在步骤 1 中,取消注释“add inf”命令行(1 行)

下面的 屏幕截图显示了编辑后 nano 文本编辑器中的 drvins_2.run,更改内容已 圈出:



要保存对文件的更改,请使用 Ctrl-O 组合键 (WriteOut),然后按 ENTER。

要退出 nano 编辑器,请按 Ctrl-X。

现在两个 TBOSDT 脚本都已编辑完毕,可以开始实际的驱动程序安装了。

步骤 7:执行阶段 1 脚本 (drvins_1.run)

要执行阶段 1 脚本 (drvins_1.run),请从 Linux 命令提示符运行以下命令:

tbosdt /net1/tbosdtfiles/drvins_1.run

对于本示例中安装的 Intel SATA 驱动程序,脚本的输出将如下所示:



执行 阶段 1 脚本时,请观察 屏幕上 TBOSDT 的输出并留意任何错误消息。 通常,TBOSDT 在 遇到错误情况时会终止脚本执行,因此即使某些输出可能 滚出屏幕,任何错误消息仍将 在屏幕上可见。如果 您想查看的输出滚出了屏幕,您可以使用 一次或多次向上滚动 ,或者 可以将输出重定向到文件,然后使用“more”命令一次查看一页, 如下所示:

tbosdt /net1/tbosdtfiles/drvins_1.run > filename
more filename

出于 故障排除目的,在启动 IFL 启动 盘时选择帧缓冲视频模式(启动菜单中的选项 2)也会有所帮助。这将使更多文本无需 滚动即可查看。

错误的常见原因包括:

1. 尝试挂载错误的驱动器/分区(drvins_1.run 中的步骤 1)
2. 未能在 drvins_1.run 中编辑一个或多个命令以获得正确的值(见步骤 6)
3. drvins_1.run 中的语法和/或打字错误

阶段 1 脚本必须在无错误的情况下运行,然后才能预期从目标分区启动成功。

步骤 8:启动目标分区以执行阶段 2

一旦 阶段 1 脚本在步骤 7 中成功执行,现在应该可以 从目标分区启动了。建议执行以下 步骤序列:

1. 从 目标分区正常启动系统。在第一次启动时,将出现一个终端窗口,并 执行阶段 2 脚本 (drvins_2.run)。在通常延迟几 秒后,系统应自动重启。(这只会发生 一次,即在第一次启动时)。

2. 重启时,按下面步骤 3 所述将 Windows 启动 到安全模式。使用安全模式允许 Windows 检测新硬件,而不会出现由于某些类型的新硬件(尤其是显卡 适配器)而可能引起的挂起和/或其他问题。

3. 进入 Windows XP 安全模式: 在计算机启动时(就在自检之后),连续点击 “F8 键”,这应该会调出“Windows 高级选项菜单”。使用 方向键移动到“安全模式”,然后按 Enter 键。

如果 您无法启动到安全模式,可能是因为 HAL 也需要更换。虽然详细信息超出了 本文目前的范围,但这基本上是通过将 正确的文件复制到 \windows\system32\hal.dll 来完成的。可用的 HAL 文件 (通过 Win2003)有 HAL.DLL、HALAPIC.DLL、HALMPS.DLL、 HALACPI.DLL、HALAACPI.DLL、HALMACPI.DLL。现代系统最常用的 文件是 HALACPI.DLL、HALAACPI.DLL 或 HALMACPI.DLL, 可以在 \windows\servicepackfiles\i386 文件夹中找到。 您可以使用 TBOSDT 挂载分区并复制所需的文件。

4. 在安全模式下启动并运行后,允许 Windows 完成对新硬件的检测。

5. 出现提示时重启。

6. 重启时,允许 Windows 正常启动。驱动程序安装现在应该已经完成。

请 注意,由于检测到新硬件,可能会触发 WPA(Windows 产品激活), 如果是这样,Windows 将需要重新激活。