NTFS Corruption on Drives Larger Than 4 GB When Using Windows NT ExtendOEMPartition
ID: Q185773
|
The information in this article applies to:
-
Microsoft Windows NT Workstation version 4.0
-
Microsoft Windows NT Server version 4.0
-
Microsoft Windows NT Server version 4.0, Terminal Server Edition
SYMPTOMS
Using Winnt.exe unattended installation from an MS-DOS FAT partition on a
drive exceeding 4 GB may cause NTFS corruption. Unattended installation
parameters would be specified as follows in the Unattend.txt file:
[Unattended]
OemPreinstall = yes
FileSystem = ConvertNTFS
ExtendOemPartition = 1
When starting for the first time after the Windows NT installation is
complete, NTFS corruption will be identified either by the inability to
successfully start because of missing or corrupted files or by the
following CHKDSK messages:
CHKDSK is verifying indexes...
Correcting error in index %I30 for file 100
Correcting error in index %I30 for file 100
Index verification completed.
CHKDSK detected minor inconsistencies on the drive.
Errors found. CHKDSK cannot continue in read-only mode.
If the corruption is severe enough, the computer may stop responding
(hang) during the GUI-mode portion of setup or various other error
messages may also occur. These error messages vary from computer to
computer, but usually concern file corruption or missing files on systems
where the files actually do exist. The files are reported as damaged or
missing because the indexes for NTFS are not setup properly.
CAUSE
The problem is that the drive is larger than 4 GB. When conversion to the
NTFS file system takes place, the mirror boot sector should be written to
the end of the disk, but the byte offset location was masked to within 4
GB of hard drive space because of a 32-bit calculation. The incorrect
calculation causes the NTFS index buffer to be overwritten.
RESOLUTION
To resolve this problem, obtain the latest service pack for Windows NT 4.0 or Windows NT Server 4.0, Terminal Server Edition. For additional information, please see the following article in the
Microsoft Knowledge Base:
Q152734 How to Obtain the Latest Windows NT 4.0 Service Pack
NOTE: In addition to the above file, the following additional files must
be obtained from the latest Windows NT 4.0 Service Pack (SP3 or greater).
The service pack should be of the same language as that being installed.
For I386 Platform:
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
For Alpha Platform:
halgammp.dll
halpinna.dll
halrawmp.dll
halsabmp.dll
Ntdll.dll
Ntoskrnl.exe
Ntkrnlmp.exe
Win32k.sys
User32.dll
Kernel32.dll
Gdi32.dll
Winsrv.dll
How to Install
- Start the computer in MS-DOS mode and prepare the drive for
Windows NT unattended installation as usual. This includes
copying the .\I386 or .\Alpha directory from the Windows NT
compact disc to the install directory on the C: drive.
- Copy the fix files into a temporary directory.
- Apply the fix files and required Service Pack 3+ dependency
files to the install directory on the C: drive. The service
pack CD should be that of the same language as that being
installed. Since the Service Pack CDs are in Windows NT unicode
format, they can not be read directly from MS-DOS. The Service
Pack files may need to be transferred from a Windows NT system
capable of reading the Service Pack CD or the SP files can be
read directly using MS-DOS from the Enterprise Server CD in the
"\SP3\i386" or "\SP3\Alpha" directory. The Service Pack
dependency files are listed above. This step can be performed
automatically using the OEMSETUP.BAT batch file, if you have
the dependency files in a DOS readable format. Otherwise, you
will need to perform this step manually.
Intel Platform: Step Three Instructions
BATCH File Option
From the temporary directory, run OEMSETUP.BAT specifying both
the source Service Pack directory and the target install
directory. For example: (assume D: is a Service Pack directory
and C:\I386 is the install directory)
OEMSETUP D:\SP3\I386 C:\I386
This will copy the necessary files to the I386 and to
C:\I386\SYSTEM32 directories on the C drive where the
installation directory is located.
Manual Option
You can also perform this step manually. First, copy
FASTFAT.SYS from the fix to the C:\I386 install directory, then
copy the following files from the latest NT 4.0 Service Pack to
the C:\I386 and C:\I386\SYSTEM32 directories as denoted below:
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 and -> ..\I386\SYSTEM32
Ntoskrnl.exe -> ..\I386
Ntkrnlmp.exe -> ..\I386
Win32k.sys -> ..\I386
User32.dll -> ..\I386
Kernel32.dll -> ..\I386
Gdi32.dll -> ..\I386
Winsrv.dll -> ..\I386
Then remove the compressed versions of these files from the
C:\I386 and C:\I386\SYSTEM32 directories. Compressed files are
identified by the last character of the file type containing an
underscore ("_"). For example delete FASTFAT.SY_, HAL.DL_,
NTDLL.DL_, NTOSKRNL.EX_, etc.
Alpha Platform: Step 3 Instructions
BATCH File Option
From the temporary directory, run OEMSETUP.BAT specifying both
the source Service Pack directory and the target install
directory. For example (assume D: is a Service Pack directory
and C:\Alpha is the install directory):
OEMSETUP D:\SP3\Alpha C:\Alpha
This will copy the necessary files to the Alpha and
C:\Alpha\SYSTEM32 directories on the C: drive where the
installation directory is located.
Manual Option
You can also perform this step manually by first copying
FASTFAT.SYS from the fix to the C:\Alpha install directory then
copy the following files from the latest NT 4.0 Service Pack to
the C:\Alpha and C:\Alpha\SYSTEM32 directories as denoted
below:
Fastfat.sys -> ..\Alpha
Halgammp.dll -> ..\Alpha
Halpinna.dll -> ..\Alpha
Halrawmp.dll -> ..\Alpha
Halsabmp.dll -> ..\Alpha
Ntdll.dll -> ..\Alpha and -> ..\Alpha\SYSTEM32
Ntoskrnl.exe -> ..\Alpha
Ntkrnlmp.exe -> ..\Alpha
Win32k.sys -> ..\Alpha
User32.dll -> ..\Alpha
Kernel32.dll -> ..\Alpha
Gdi32.dll -> ..\Alpha
Winsrv.dll -> ..\Alpha
STATUS
Microsoft has confirmed this to be a problem in Windows NT 4.0 and Windows NT Server 4.0, Terminal Server Edition. This problem was first corrected in Windows NT 4.0 Service Pack 4.0 and Windows NT Server 4.0, Terminal Server Edition Service Pack 4.
Keywords : NT4SP4Fix kbbug4.00 kbfix4.00.sp4
Version : WinNT:4.0
Platform : winnt
Issue type : kbbug
Last Reviewed: April 10, 1999