1. ホーム
  2. filesystems

[解決済み] VFATとFAT32のファイルシステムの違いは何ですか?

2022-03-08 20:40:26

質問

インターネットで検索してみたが、納得のいく答えが見つからない。

ファイルシステムVFATとFAT32は同じものですか、それとも何か違いがあるのでしょうか?

解決方法は?

コピー元 http://technet.microsoft.com/en-us/library/cc750354.aspx

<ブロッククオート

FATとは?

FATは、ファイルシステムの名前としては奇妙に聞こえるかもしれませんが、実はFile Allocation Tableの頭文字をとったものです。1981年に導入されたFATは、コンピュータ用語としては古いものです。このため、Microsoft Windows NT®、Windows 98、Macintosh OS、およびUNIXの一部のバージョンなど、ほとんどのオペレーティングシステムがFATをサポートしています。

FATファイルシステムでは、ファイル名の命名規則が8.3に制限されています。つまり、ファイル名はピリオドの前に8文字以上、後に3文字以下でなければならないということです。FATファイルシステムのファイル名は、文字または数字で始まる必要があり、スペースを含めることはできません。ファイル名には大文字と小文字の区別はありません。

VFATはどうですか?

VFATというファイルシステムをご存じでしょうか。VFATはFATファイルシステムの拡張版で、Windows 95で導入されました。VFATはFATとの後方互換性を維持しつつ、ルールを緩和しています。たとえば、VFATのファイル名には255文字まで、スペース、複数のピリオドを含めることができます。VFATはファイル名の大文字と小文字を区別しますが、大文字と小文字を区別するとは考えられていません。

VFATで長いファイル名(8.3より長い)を作成する場合、ファイルシステムは実際には2つの異なるファイル名を作成します。1つは実際の長いファイル名です。この名前は、Windows 95、Windows 98、Windows NT (4.0 以降) で見ることができます。2つ目のファイル名は、MS-DOS®のエイリアスと呼ばれます。MS-DOS エイリアスは、長いファイル名の短縮形です。ファイルシステムは、長いファイル名の最初の 6 文字 (スペースを除く) を取り、チルダ [~] と数値のトレーラを続けて、MS-DOS エイリアスを作成する。たとえば、Brien's Document.txt というファイル名は BRIEN'~1.txt というエイリアスを持つことになります。

VFATが長いファイル名を保存する方法には、興味深い副次的な効果があります。VFATで長いファイル名を作成すると、MS-DOSのエイリアスに1つのディレクトリエントリを使用し、長いファイル名の13文字ごとにもう1つのエントリを使用します。理論的には、1つの長いファイル名で最大21のディレクトリエントリを使用することができます。ルートディレクトリには512ファイルの制限がありますが、もしルートディレクトリで最大長の長いファイル名を使用するとしたら、この制限はわずか24ファイルまで減らすことができます。したがって、ルート・ディレクトリで長いファイル名を使用するのは控えめにしてください。他のディレクトリはこの制限の影響を受けません。

なぜVFATを取り上げるのか不思議に思われるかもしれません。FATよりも一般的になってきているからですが、先に述べた違いは別として、VFATにも同じような制限があります。Windows NTにパーティションをFATとしてフォーマットするように指示すると、実際にはVFATとしてフォーマットされます。Windows NT 4.0で本当のFATパーティションができるのは、MS-DOSなどの他のOSでパーティションをフォーマットしたときだけです。

FAT32

FAT32は、FATとVFATを拡張したもので、Windows 95 OEM Service Release 2 (OSR2)で初めて導入されたものです。FAT32はVFATファイルシステムを大幅に拡張するものですが、欠点もあります。

FAT32の最大のメリットは、ハードディスクの空き容量が飛躍的に増えることです。この点を説明するために、FATパーティション(FAT16パーティションとも呼ばれる)では、パーティションごとに一定の数のクラスタしか許可されていないことを考えます。したがって、パーティションサイズが大きくなると、クラスタサイズも大きくしなければなりません。例えば、512MBのFATパーティションのクラスタサイズは8K、2GBのパーティションのクラスタサイズは32Kです。

これは、FATファイルシステムが1クラスタ単位でしか動作しないことを考慮するまでは、たいしたことではないと思われるかもしれません。例えば、2GBのパーティションでは、1バイトのファイルがクラスタ全体を占有するため、32K、つまりファイルが消費すべき容量の約32,000倍もの容量を消費することになります。このルールは、ハードディスク上のすべてのファイルに適用されるので、どれだけのスペースが無駄になるかがわかるでしょう。

パーティションをFAT32に変換すると、クラスタサイズが小さくなります(パーティションサイズ2GBの制限を克服します)。8GB以下のパーティションでは、クラスタサイズはわずか4Kに縮小されます。ご想像のとおり、パーティションをFAT32に変換することで、特に小さなファイルをたくさん含むパーティションでは、数百メガバイトを取り戻せることも珍しくはありません。

注:この部分の引用・記事(1999年)は古くなっています。以下に更新された情報を引用します。

先ほども言いましたが、FAT32には制限があります。残念ながら、Windows 98とWindows 95のOSR2版以外のOSとは互換性がありません。しかし、Windows 2000はFAT32パーティションを読むことができます。

もうひとつのデメリットは、ディスクユーティリティやウイルス対策ソフトがFAT32に対応している必要があることです。そうでなければ、新しいファイル構造をエラーと解釈して修正しようとし、その過程でデータを破壊してしまう可能性があります。

最後に、FAT32への変換は一方的な作業であることをお伝えしておきます。一度FAT32に変換すると、そのパーティションをFAT16に戻すことはできません。したがって、FAT32に変換する前に、そのコンピュータをデュアルブート環境で使用することがあるかどうかを検討する必要があります。また、Windows NTなど他のOSでは、FAT32パーティションを直接読むことはできないが、ネットワーク越しに読むことはできるということも指摘しておきたい。したがって、FAT32パーティションに保存された情報を、ネットワーク上の古いOSを搭載した他のコンピュータと共有しても問題はない。

のコメントで紹介した内容を更新しました。 Doktor-J (コメントが失われた場合に備えて、古い回答を更新するために同化しています)。

<ブロッククオート

最近のOS(WinXP/Vista/7/8、MacOS X、Linuxのほとんど)は、最後から2番目のパラグラフが示唆することとは逆に、FAT32を読むことができることを指摘しておきたいと思います。

元記事は1999年に書かれたもので、マイクロソフトのウェブサイトに掲載されたため、マイクロソフト以外のOSには関係なかったと思われます。

このパラグラフで除外されているオペレーティングシステムは、おそらくオリジナルのWindows 95、Windows NT 4.0、Windows 3.1、DOSなどでしょう。