當使用 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 Terminal Server Edition 最新版的 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 自動安裝的磁碟機。這其中包括了從 Windows NT 光碟上將 .\I386 或 .\Alpha 目錄複製到 C: 磁碟機的安裝目錄中。
  2. 將修正程式檔案複製到暫時目錄中。
  3. 將修正程式檔案和必要的 Service Pack 3+ 相依檔案套用至 C: 磁碟機的安裝目錄中。Service Pack 光碟的語言必須與已安裝的語言相同。因為 Service Pack 光碟使用 Windows NT Unicode 格式,所以無法直接從 MS-DOS 讀取。您可能需要從能夠讀取 Service Pack 光碟的 Windows NT 系統上將 Service Pack 檔案傳輸出來,或是從 Enterprise Server 光碟的 \SP3\i386 或 \SP3\Alpha 目錄使用 MS-DOS 直接讀取 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 Terminal Server Edition 產品確實有上述問題。 這個問題已經在 Windows NT 4.0 Service Pack 4.0 和 Windows NT Server 4.0 Terminal Server Edition Service Pack 4 中首次獲得修正。

屬性

文章編號: 185773 - 上次校閱: 2006年3月29日 - 版次: 1.2
這篇文章中的資訊適用於:
  • Microsoft Windows NT Server 4.0 Terminal Server
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
關鍵字:?
kbqfe kbhotfixserver kbbug kbfix 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