HDDのボリュームラベルが,DOSで見た場合とWindows 95/98から見た場合で異なるのですが,これはなぜでしょうか。
Windows 95/98は,それまでのショートファイルネームのほかにロングファイルネームもサポートしています。DOS/Windows 3.1などの,既存OSとの互換性を維持しながらロングファイルネームをサポートするために採用されたのがVFATですが,これはFATをベースにボリュームラベル属性の意味合いを変更することで,ロングファイルネームへの対応を実現しています。
Windows 95/98では,ファイルを作成すると,ディレクトリに2個以上のファイルエントリを書き込みます。第1ファイルエントリには従来まで使われていた8+3(ファイル名8文字+拡張子3文字)形式のファイル情報,第2エントリ以降にはロングファイルネームについての情報が格納されます。
第1ファイルエントリと第2ファイルエントリ以降を識別するために,第2ファイルエントリ以降の情報を格納するファイルエントリには,すべてボリュームラベル属性が付けられています。DOSはロングファイルネームに対応していないので,このボリュームラベル属性をそれまでのボリュームラベルと同様に読み取ってしまうのです(「AA」などと表示される)。
とくにルートディレクトリにロングファイルネームのファイルを作成していると,ロングファイルネームをサポートするために拡張されたファイルエントリを,ドライブのボリュームラベルだとDOSが錯覚して表示してしまいます。その結果,Windows 95/98とDOSで違うボリュームラベルが表示されてしまうというわけです。
この状態でも実害はありませんが,どうしてもいやな場合は,ルートディレクトリにロングファイルネームを持つファイルを作らないようにすれば,Windows 95/98で見るのと同じボリュームラベルが表示されるはずです。
(三谷直之)
Windows 95/98上ではきちんとボリュームラベルが表示されるが……
DOSのファイル管理ツールでロングファイルネームの使われているディレクトリを見たところ。赤く表示されているのがボリュームラベルと認識されているファイルエントリ