Share via


FAT32 ファイル システムで (4 GB-1) バイトのファイルを削除すると、ファイル システムの破損が検知される

こんにちは。Windows プラットフォーム サポートの鎌滝です。

今回は KB3072401 の事象についてご紹介いたします。

  文書番号: 3072401
  File system corrupts when you delete a file that has 4 GB-1 bytesof size on FAT32 system in Windows
  https://support.microsoft.com/en-us/kb/3072401

FAT32 ファイル システムで作成可能な最大ファイル サイズは 4294967295 (4 GB-1) バイトとなりますが、当事象では この最大サイズのファイルを削除するとファイル システム破損が発生いたします。
削除後にこのボリュームに対して chkdsk コマンドを実行すると破損が検出され、修復の実行が必要であるメッセージが出力されます。
このような状態になった場合は、修復を実施する /f オプションをつけた chkdsk /f コマンドを実行しファイルシステムを修復します。

本事象の発生が確認されている OS は以下の通りです。

  Windows Server 2008
  Windows Server 2008 R2
  Windows Server 2012
  Windows Server 2012 R2
  Windows 7
  Windows 8
  Windows 8.1

また発生条件はファイルを作成したボリュームのクラスター サイズに依存しております。

例:

クラスター サイズが 4KB の場合

ファイルサイズ: 4,294,963,200 バイト <-- 発生しない (4GB-4096)

ファイルサイズ: 4,294,963,201 バイト <-- 発生する (4GB-4095)

 

クラスター サイズが 8KB の場合

ファイルサイズ: 4,294,959,104 バイト <-- 発生しない (4GB-8192)

ファイルサイズ: 4,294,959,105 バイト <-- 発生する (4GB-8191)

 Windows Server 2012、Windows Server 2012 R2、Windows 8、及び Windows 8.1 については、KB3072401 の修正プログラムを適用することで事象が修正されます。
※ 既にファイルシステムの破損が発生している場合には、chkdsk /f の実行が必要です。

ただし、Windows Server 2008、Windows Server 2008 R2、及び Windows 7 については、本事象が発覚したタイミングで既にメインストリーム サポートが終了していたため、修正プログラムが提供されておりません。
修正プログラムの提供されていないこれらの環境でこの問題を発生させないためには、以下の点にご注意ください。
  - FAT32 ファイル システムを利用する際には 4294967296 (4GB) - クラスター サイズより小さなファイル サイズのファイルをご利用ください。
  - 破損が検知されたボリュームに対しては chkdsk /f コマンドにて修復を実行してください。

※  クラスター サイズが不明な場合は CHKDSK の実行結果に表示されるアロケーション ユニット サイズをご確認ください。