本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[DOS] クロスリンクについて

文書番号: 402245

最終更新日: 1998/03/26


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP402245

概要

クロスリンクとは、2 つ以上のファイルが 1 つの同じクラスタ (ファイル アロケーション ユニット) を使用している状態で、MS-DOS 6.2/V の CHKDSK コマンドや、SCANDISK コマンドで発見することができます。
ここでは、クロスリンクについて説明いたします。

現象

1. クロスリンクとは?

MS-DOS 上ではファイルは、クラスタ (ファイル アロケーション ユニット) という論理的な単位で管理されます。それぞれのクラスタには 1 つのファイルの情報しか格納されず 1 つのクラスタに入りきらないファイルは、複数のクラスタにまたがって格納されます。
それぞれのクラスタが使用されているかどうか、またファイルが複数のクラスタを使用している場合はどの順番でつながっているか、そのような情報が記録されているのが、FAT (File Allocation Table) と呼ばれるものです。
クロスリンクは、2 つ以上のファイルが 1 つのクラスタを共有している状態を言います。すなわち、正常な状態なら
  File 1  [1]-[2]-[3]-[4]-[5]
  File 2  [8]-[9]-[10]-[11]
のように、それぞれのクラスタは 1 つのファイルの情報を格納しています。しかしクロスリンクが起こった場合は
  (図 2)
  File 1  [1]-[2]-[3]-[4]-[5]
                 /
  File 2  [8]-[9]  [10]-[11]
のように、File 1 と 2 の両方が、クラスタ 3-4-5 を使用している状態になっています。図 2 の状態ではクラスタ 9 と 10 のつながりが切れているので File 2 は壊れておりクラスタ 10 と 11 はどのファイルにも属さない破損クラスタとなります。もしFile 2 を削除するとクラスタ 8-9-3-4-5 の内容がクリアされることになり、File 1まで壊れてしまうことになります。

2. クロスリンク ファイルの修復方法

SCANDISK コマンドの方が CHKDSK コマンドより高機能ですので、クロスリンクしたファイルが見つかった時は SCANDISK を実行して修復してください。
SCANDISK は、複数のファイルが共有しているクラスタを発見すると、その共有しているクラスタの内容を他の未使用クラスタにコピーします。たとえば図 2 の場合、クラスタ 3-4-5 と同じ内容をクラスタ 17-18-19 にコピーします。その結果 File 1 はクラスタ 1-2-3-4-5 を使用し、File 2 はクラスタ 8-9-17-18-19 を使用することになります。
  (図 3)
  File 1  [1]-[2]-[3]-[4]-[5]
  File 2  [8]-[9]     [10]-[11]
                 \
  クラスタ 3,4,5 →   [17]-[18]-[19]
  と同じ内容
この作業によりファイル間でのクラスタ (データ) の共有はなくなるので、File 2 を削除したり書き直したりしても File 1 のデータの一部を失ってしまうことありません。しかし File 2 に関しては、本当の内容は クラスタ 8-9-10-11 に格納されていたものが新しくクラスタ 8-9-17-18-19 が File 2 に割り当てられたので、無効なデータを含んでおり完全に修復されたわけではありません。
クラスタ 10-11 は、以前は File 2 の一部分のデータを格納していましたが、現在はどのファイルにも属さないので、破損クラスタとして処理されます。
破損クラスタについては、以下のサポート情報をご参照ください。
また、CHKDSK コマンドや SCANDISK コマンドについては、MS-DOS の HELP の情報をご参照ください。たとえば SCANDISK について知りたいときは、コマンドプロンプトから次のように入力します。
     HELP SCANDISK

Keywords: ALLOCATION CLASTER CLUSTER CROSS CROSSLINK DOS6V FILE KBHOWTO KBREF LINK UNIT KB402245
Technology: kbMSDOS620 kbMSDOSSearch

inserted by FC2 system