使用 Windows NT ExtendOEMPartition 时大于 4 GB 的驱动器上的 NTFS 被损坏

文章翻译 文章翻译
文章编号: 185773 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

在大于 4 GB 的驱动器上从 MS-DOS FAT 分区使用 Winnt.exe 进行无人参与安装可能会导致 NTFS 损坏。在 Unattend.txt 文件中,无人参与安装参数将被指定为如下内容:
   [Unattended]
   OemPreinstall = yes
   FileSystem = ConvertNTFS
   ExtendOemPartition = 1
				

在 Windows NT 安装完成后第一次启动系统时,如果出现由于文件丢失或损坏而无法成功启动或出现以下 CHKDSK 信息,则说明 NTFS 已损坏:

CHKDSK 正在校验索引...
修正文件 100 索引 %I30 中的错误
修正文件 100 索引 %I30 中的错误
索引校验完成。
CHKDSK 在驱动器上检测到不太重要的非一致现象。
发现错误。CHKDSK 无法以只读模式继续。
				


如果损坏的程度非常严重,则计算机可能会在安装过程的 GUI 模式部分停止响应(挂起),也可能会出现其他一些不同的错误消息。这些错误消息因计算机的不同而不同,它们通常都指出文件损坏或丢失(但实际上系统中存在这些文件)。之所以会将文件报告为损坏或丢失,是因为没有正确安装 NTFS 的索引。

原因

问题就出在驱动器大于 4 GB 上。在转换到 NTFS 文件系统时,镜像引导扇区本应写入磁盘结尾处,但由于 32 位计算的缘故,字节偏移位置被遮蔽到了硬盘驱动器空间的 4 GB 以内。错误的计算导致 NTFS 索引缓冲区被覆盖。

解决方案

要解决此问题,请获取用于 Windows NT 4.0 或 Windows NT Server 4.0 终端服务器版的最新 Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
152734 如何获取最新的 Windows NT 4.0 Service Pack

注意:Service Pack 4 中包含的 Fastfat.sys 文件是必需的。除了 Fastfat.sys 文件之外,还必须从最新的 Windows NT 4.0 Service Pack(SP4 或更高版本)中获取以下文件:Service Pack 的语言版本还应该与所安装的语言一致。

对于 I386 平台:
Atapi.sys
Basesrv.dll
Hal.dll
Hal486c.dll
Halapic.dll
Halast.dll
Halcbus.dll
Halcbusm.dll
Halmca.dll
Halmps.dll
Halmpsm.dll
Haloli.dll
Halsp.dll
Halwyse7.dll
Ntdll.dll
Ntoskrnl.exe
Ntkrnlmp.exe
Win32k.sys
User32.dll
Kernel32.dll
Gdi32.dll
Winsrv.dll


对于 Alpha 平台:
halgammp.dll
halpinna.dll
halrawmp.dll
halsabmp.dll
Ntdll.dll
Ntoskrnl.exe
Ntkrnlmp.exe
Win32k.sys
User32.dll
Kernel32.dll
Gdi32.dll
Winsrv.dll

如何安装

  1. 在 MS-DOS 模式下启动计算机,并照常准备用于 Windows NT 无人参与安装的驱动器。这包括将 .\I386 或 .\Alpha 目录从 Windows NT 光盘上复制到 C: 驱动器上的安装目录。
  2. 将修复程序文件复制到一个临时目录中。
  3. 对 C: 驱动器上的安装目录应用修复程序文件和所需的 Service Pack 3+ 相关文件。Service Pack CD 的语言版本应与所安装的语言一致。由于 Service Pack CD 的格式为 Windows NT unicode,因此不能直接从 MS-DOS 读取它们。Service Pack 文件可能需要从能够读取 Service Pack CD 的 Windows NT 系统中转移出来,或者,可以通过使用 MS-DOS 直接读取 Enterprise Server CD 的“\SP3\i386”或“\SP3\Alpha”目录中的 SP 文件。Service Pack 相关文件已在上面列出。如果您有 DOS 可读取格式的相关文件,可以使用 OEMSETUP.BAT 批处理文件自动执行这一步。否则,您需要手动执行这一步。

    Intel 平台:步骤 3 说明

    批处理文件选项

    从临时目录中运行 OEMSETUP.BAT,并指定源 Service Pack 目录和目标安装目录。例如:(假定 D: 为 Service Pack 目录,C:\I386 为安装目录)

    OEMSETUP D:\SP3\I386 C:\I386

    这会将所需文件复制到安装目录所在的 C: 驱动器上的 I386 目录和 C:\I386\SYSTEM32 目录中。

    手动选项

    您也可以手动执行此步骤。首先,从修复程序中将 FASTFAT.SYS 复制到 C:\I386 安装目录,然后从最新的 NT 4.0 Service Pack 中将下列文件复制到 C:\I386 目录和 C:\I386\SYSTEM32 目录中,如下所示:
    Atapi.sys       -> ..\I386
    Basesrv.dll     -> ..\I386
    Fastfat.sys     -> ..\I386
    Hal.dll         -> ..\I386
    Hal486c.dll     -> ..\I386
    Halapic.dll     -> ..\I386
    Halast.dll      -> ..\I386
    Halcbus.dll     -> ..\I386
    Halcbusm.dll    -> ..\I386
    Halmca.dll      -> ..\I386
    Halmps.dll      -> ..\I386
    Halmpsm.dll     -> ..\I386
    Haloli.dll      -> ..\I386
    Halsp.dll       -> ..\I386
    Halwyse7.dll    -> ..\I386
    Ntdll.dll       -> ..\I386 和  -> ..\I386\SYSTEM32
    Ntoskrnl.exe    -> ..\I386
    Ntkrnlmp.exe    -> ..\I386
    Win32k.sys      -> ..\I386
    User32.dll      -> ..\I386
    Kernel32.dll    -> ..\I386
    Gdi32.dll       -> ..\I386
    Winsrv.dll      -> ..\I386
    						

    然后,从 C:\I386 目录和 C:\I386\SYSTEM32 目录中删除这些文件的压缩版本。压缩文件的文件类型的最后一个字符包含一个下划线(“_”)。例如,删除 FASTFAT.SY_、HAL.DL_、NTDLL.DL_ 和 NTOSKRNL.EX_ 等。

    Alpha 平台:步骤 3 说明

    批处理文件选项

    从临时目录中运行 OEMSETUP.BAT,并指定源 Service Pack 目录和目标安装目录。例如(假定 D: 为 Service Pack 目录,C:\Alpha 为安装目录):

    OEMSETUP D:\SP3\Alpha C:\Alpha

    这会将所需文件复制到安装目录所在的 C: 驱动器上的 Alpha 目录和 C:\Alpha\SYSTEM32 目录中。

    手动选项

    您也可以手动执行此步骤。为此,您需要首先从修复程序中将 FASTFAT.SYS 复制到 C:\Alpha 安装目录,然后从最新的 NT 4.0 Service Pack 中将以下文件复制到 C:\Alpha 目录和 C:\Alpha\SYSTEM32 目录中,如下所示:
    Fastfat.sys     -> ..\Alpha
    Halgammp.dll    -> ..\Alpha
    Halpinna.dll    -> ..\Alpha
    Halrawmp.dll    -> ..\Alpha
    Halsabmp.dll    -> ..\Alpha
    Ntdll.dll       -> ..\Alpha 和 -> ..\Alpha\SYSTEM32
    Ntoskrnl.exe    -> ..\Alpha
    Ntkrnlmp.exe    -> ..\Alpha
    Win32k.sys      -> ..\Alpha
    User32.dll      -> ..\Alpha
    Kernel32.dll    -> ..\Alpha
    Gdi32.dll       -> ..\Alpha
    Winsrv.dll      -> ..\Alpha
    						

状态

Microsoft 已确认此问题存在于 Windows NT 4.0 和 Windows NT Server 4.0 终端服务器版中。 此问题已首先在 Windows NT 4.0 Service Pack 4.0 和 Windows NT Server 4.0 终端服务器版 Service Pack 4 中得到更正。

属性

文章编号: 185773 - 最后修改: 2006年4月3日 - 修订: 2.3
这篇文章中的信息适用于:
  • Microsoft Windows NT Server 4.0 Terminal Server(终端服务器)
  • Microsoft Windows NT Workstation 4.0 开发员版
  • Microsoft Windows NT Server 4.0 Standard Edition
关键字:?
kbbug kbfix kbqfe kbhotfixserver KB185773
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com