セクタ・クラスタ ・ファイルシステム(FAT・FAT32・NTFS)とファイルサイズ

文書作成日 2002/10/30 最終更新日 2004/12/2

ファイルシステムってなに?

ファイルシステムとファイルサイズ

 ファイルの本当のサイズ、わかりますか?
 ファイルをマウスでポイントして、右クリックしてください。
 FAT32のハードディスク上のファイルでは、[サイズ: 14.8KB (15,173バイト)、16,384バイト使用]と表示されたとします。そのときのファイルの本当のサイズは、カッコの中の15,173バイトです。

 15173という数字は、これは1KByteを1024Byteと換算しているからです。15173を1024で割ると、14.81738281ですね。
 また4×1024は16384になります。この数字は、何を意味するのでしょう?
 16384バイトという数字は、ハードディスクをフォーマットしたときの形式、たとえばFATとかFAT32とかNTFSにより異なると思います。このFATやFAT32、NTFSをファイルシステムといいます。

 Macでは、ファイルの本体(データフォーク)と別に、リソースフォークというファイルでディレクトリ情報を管理しているため、本当のファイルサイズを知りたくてもわかりません。またリソースフォークが壊れると、ファイルが取り出せなくなります。対処法としてはNortonを使ってリソースフォークを復旧するしかないようです。もしこれで復旧できないなら、あきらめるか、専門の企業にご相談ください。

セクタとクラスタ

 ハードディスクにデータを保存するとき。セクタという細かい単位をいくつかまとめたクラスタという単位でデータを保存します。

 例として、セクタサイズが2K(2048)バイトで、クラスタ1つあたり8セクタを含むとき、クラスタサイズは16K(16384)バイト=8セクタになります。

 Windows 2000ではクラスタサイズ(アロケーションユニットサイズと表示されています)をフォーマット時に指定できます。[スタート] - [コントロールパネル] - [管理ツール] - [コンピューターの管理] - [ディスクの管理]とたどって、実際に試してみてください。クラスタサイズは512、1024、2048、4096、8192などがありますけど、このクラスタサイズが小さいほど、使用する上でのクラスタギャップは改善されるのです(でもその代わりに、読み込み速度は遅くなります)。

クラスタギャップ

 もしサイズが小さいデータがあったとします、サイズは1KBです。そしてハードディスクのクラスタサイズが4KB。
 このとき実際に占有するクラスタサイズは、クラスタ1つ分の4KBになってしまいます。
 つまり、ファイルの本体が1KBなのに、4KB分の容量を占めてしまうことになるのです。このような実際のファイルサイズとクラスタを占有するサイズが異なる現象を、クラスタギャップと呼びます。

FAT ファイルの最大のサイズは2GB。実際に使うのはフロッピーディスクくらい?ファイル名に8.3文字制限があります。
FAT32 ボリュームシステムの上限は2048GBです。Macでも読み込めます。でも最大ファイルサイズは4GBです。
NTFS 最大のボリュームシステムのサイズは2TBです。ファイルサイズの上限はボリュームサイズと同じです。Windows 2000とXPで利用されます。Mac OS、Windows 98やMeでは読み込めません。
HFS Mac OS標準。全てのMac OSで利用できます。でもWindowsでは利用できません。
HFS+ Mac OS拡張。Mac OS 8.1とそれ以降のMac OSで利用できます。でもWindowsでは利用できません。
UDF Universal Disk Format。MOやDVD、CD-RWに利用されています。

フォーマットの謎 - FAT12とFAT16

 マイコンピューターを開き、各ドライブを選択して、[標準のアロケーションサイズ」でフォーマットしてみました。テスト機はWindows 2000とWindows XP Home Editionで、指定したファイルシステムはFATです。
 結果はとっても不思議。
 MOや大容量メディアはFAT16なのに、フロッピーディスクや容量が小さいコンパクトフラッシュカードなどはFAT12になっています。

テストしたメディア セクタサイズ(バイト) クラスタサイズ ファイルシステム
フロッピーディスク 512バイト 512バイト=1セクタ FAT12
コンパクトフラッシュカード (16MB) 512バイト 4K(4096)バイト=8セクタ FAT12
コンパクトフラッシュカード (64MB) 512バイト 1K(1024)バイト=2セクタ FAT16
USBメモリー(512MB) 512バイト 8K(8192)バイト=16セクタ FAT16
MOディスク(640MB) 2K(2048)バイト 16K(16384)バイト=8セクタ FAT16

 マイクロソフトのサポート技術情報140365に、このような記述がありました。
 「注意: ごく小さな FAT パーティションでは、16 ビット FAT ではなく 12 ビット FAT が使用されています。FAT ファイル システムは、512 バイトのセクターのみをサポートするため、クラスタごとのセクターおよびクラスタサイズは固定されています。」

WindowsとMacintoshでMOを利用するとき

 MOはどのようなファイルシステムでフォーマットされているのでしょう?
 Mac OS8.51ではDOS 216、HFS(Mac OS標準)、HFS+(Mac OS拡張)で、Mac OS9.2では、HFS(Mac OS標準)、HFS+(Mac OS拡張)、UDFでフォーマットできました。
 Windows 98ではFAT16、Windows 2000ではFAT16、FAT32、NTFSです。

 不思議なことにMac OS8.51で[DOS 216形式]でフォーマットした640MBのMOは、Mac OS8.51やOS9.2の[一般情報] - [フォーマット]で[Macintosh PC Exchange]、 Windows 98と2000ではファイルシステムは[FAT]と表示されます。調べてみるとFAT12でした(もう少し調べてみます・・・)。

 640MBのMOディスクをそれぞれのファイル形式でフォーマットして、読み取り可能かテストしてみました。DOS 216はMacOS8.51、FATとFAT32とNTFSはWindows2000、UDFはMacOS 9.2でフォーマットしています(念のため調べてみると、このFATのMOディスクはFAT16でフォーマットされていました)。

 テスト結果はこのようになりました。記号は○=読み取り可能、◎=読み取りできてフォーマットできる、です。

DOS 216 FAT16 FAT32 NTFS UDF
Windows 98 -
Windows 2000
Mac OS8.51 - - -
Mac OS9.2 - - -

 でも以前、WindowsでFATでフォーマットしたMOを、Macで利用した記憶があります。悩んでいたらこのようなページを見つけました。
 技術情報 - Mac OSで使うMO - FUJITSU Japan (リンク切れ)
 「漢字Talk 7.5、Mac OS 7.6.x、Mac OS 8.xおよびMac OS 9.x では、MS-DOS/WindowsにおいてフォーマットされたFATフォーマットの640MB以上のMOディスクはご使用になれません。」

 あとで540MB以下のMOディスクを使って、もう一度テストしてみます(宿題・・・

 またApple社では、以下のように公表しています。
 Mac OS 9によって認識されるファイルシステムとディスクフォーマット
 Mac OS 標準 (HFS) 、Mac OS 拡張 (HFS Plus) 、Universal Disk Format (UDF) 、Microsoft Disk Operating System (MS-DOS)
 Mac OS X Public Betaによって認識されるファイルシステムとディスクフォーマット
 Mac OS 標準 (HFS) 、Mac OS 拡張 (HFS Plus) 、UNIX File System (UFS) 、Network File System (NFS) 、Universal Disk Format (UDF)

利用する上でのあれこれ

 NTFSはアクセス権の設定など便利な機能がありますけれど。Windows 9x系OSやMacからは利用できません。ファイルが破損する可能性は少ないけれど、壊れるときにはしっかりと壊れます・・・またNTFSのハードディスクからFAT32などのハードディスクへファイルを移動すると、ファイルのアクセス権などのデータは消失します。

 Windows 2000やXPからFAT32で32MB以上のサイズをフォーマットしようとしても、失敗してしまいます。もしどうしても実行したいなら、Windows 95 OSR以降で作成した起動ディスクからFDISKを実行するか、ハードディスクをフォーマットするためのツールをご利用ください。
 またFAT32では、20GB以上の容量のハードディスクにチェックディスクを行えません。

 FAT32とNTFSを利用しているWindowsユーザーが多いと思いますけど。
 一般には利用中のハードディスクをFAT32をNTFSに変換できても、その逆は不可能だといわれています。でもPartition Magicなどのソフトを利用すればNTFSからFAT32への変換ができます(でも、NTFSで設定した情報が消失してしまいます・・・)。

リムーバルメディアをNTFSでフォーマットするには

 Windows XP Home Editionでは、MOやコンパクトフラッシュカードなどのメディアは、そのままではNTFSフォーマットできないようです(FATとFAT32のみです)。
 もしNTFSでフォーマットするときは、ちょっと大変です。
 [マイコンピュータ] - ハードディスクを選択してマウス右クリックしてプロパティを選択 - [ハードウェア]タブから、目的のディスクを選択してプロパティ - [ポリシー]タブを開きます。
 コンパクトフラッシュカードでは、[ポリシー]タブは[クイック削除のために最適化する]のみにチェックが入った状態になってます。[パフォーマンスのために最適化する]にチェックを入れますと自動的に[ディスクの書き込みキャッシュを有効にする]にもチェックが入ります。
 これでNTFSでフォーマットできるようになります。
 (MOのテスト、忘れてました・・・ごめんなさい)

ジャーナリングファイルシステム

 書き込み時に記録をとり、ファイルの破損防止に備える機能です(でも、壊れるときは壊れます)。
 何かのはずみでフリーズしたりコンセントを抜かれても安心、とは言い切れないのです。

 Windows2000のNTFS5以降で対応されている機能です。
 MacでもOS Xになってから、HFS+のジャーナル機能が利用できます(diskutilコマンドから設定します)。

参照サイト

ディスク管理ツール徹底活用
http://www.atmarkit.co.jp/fwin2k/operation/diskmanagement/diskman01.html
FAT、HPFS、NTFS ファイル システムについて
http://support.microsoft.com/default.aspx?scid=kb;ja;100108
W98:FAT16、FAT32 でディレクトリ内に作成できる最大ファイル数
http://support.microsoft.com/default.aspx?scid=kb;ja;JP436213
[NT]FAT および NTFS のデフォルトのクラスタサイズ
http://support.microsoft.com/default.aspx?scid=kb;ja;JP140365
Macintosh: ファイルシステムの「仕様」と「用語」
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/wa/showTIL?id=8647
Mac OS X Public Beta: Classic 環境でアクセス可能なファイルシステム
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/wa/showTIL?id=106042

(用語:クラスタはアロケーションユニットともよばれます。)
(補足:1TB(テラバイト)=1,000GB(ギガバイト)=1,000,000MB(メガバイト)=1,000,000,000KBytes(キロバイト)=1,000,000,000,000Bytes(バイト)です。でも1KB=1024Bytesとして扱うときもあります)。

謝辞
 2003年7月22日:little YOSHIさま、ご連絡ありがとうございます。早速訂正させていただきました。

トップページWindowsのヒント・TIPS・テクニックとセキュリティ♪>セクタ・クラスタ ・ファイルシステム(FAT・FAT32・NTFS)とファイルサイズ

ご意見はフォームメールへ
This contents was written by tef_tef.