ファイナルデータには、「クラスタスキャン」という機能があります。
クラスタスキャンとは、
ファイルシステムが管理するデータの単位であるクラスタを基準に、ファイルを検出するものです。
これにより、ファイルシステムの管理情報に問題のある領域からでも、ファイルを復元することができます。
ファイナルデータの中でも最終手段として使うことが多いクラスタスキャンですが、
重要なのに腑に落ちない点があります。
「クラスタ」と「セクタ」についてです。
そもそも、ファイナルデータ自体に「クラスタ」と「セクタ」の表記揺れがあり、
統一されているようでも区別されているようでもありません。
そこで、個人的に実験して調べてみました。
「クラスタ」と「セクタ」の違い
最初に、「クラスタ」と「セクタ」の違いについて触れておきます。
そうしないと、話が先に進みませんので。
セクタは、記憶装置が管理しているデータの単位です。
セクタにも物理セクタと論理セクタがありますが、
ここではファイナルデータが扱うデータに関するものなので、論理セクタを指しています。
論理セクタは、基本的に512バイトです。(4Kネイティブの製品も出てきたのでややこしい・・・)
一方、クラスタは、セクタを一定数まとめたものです。
ファイルシステムは、データをクラスタ単位で管理しています。
従って、クラスタサイズはドライブをフォーマットする際に決められます。
NTFSだと、基本的に4096バイト(4KiB)です。
いわゆる、「標準のアロケーションユニットサイズ」というやつです。
ファイナルデータの「クラスタスキャン」と「セクタスキャン」
「高度な復元」のページにも書いてはいるんですが、
ファイナルデータは、論理ドライブ選択時と物理ドライブ選択時で挙動が変わります。
結論を先に書いてしまうと、
論理ドライブ選択時 | クラスタスキャン |
---|---|
物理ドライブ選択時 | セクタスキャン |
です。
やってることは基本的に同じですが、スキャン単位が違います。
論理ドライブは、選択したパーティションのファイルシステムに則ってファイルが管理されているはずで、
ファイナルデータもファイルシステムが扱うデータ単位であるクラスタを基準にデータを処理します。
一方、物理ドライブ(ディスク)自体にはファイルシステムという概念がありません。
従って、物理ドライブを対象とするクラスタは存在しません。
物理ドライブ上に構成される論理ドライブは、
フォーマット形式によって様々なクラスタサイズをとる可能性があります。
このためファイナルデータは、クラスタサイズの最大公約数である論理セクタサイズを基準にデータを処理します。
要は、ファイルを復元する過程で取り扱うデータの最小単位が、
クラスタを基準とするか、セクタを基準とするかの違いです。
これにより、スキャンにかかる時間と、得られる結果が大きく異なります。
ファイナルデータ上の表記は同じなのに、結果が違うというのがやっかいです。
何がどう違うのか、個別にもう少し詳しく書いていきます。
クラスタスキャン
「FINALDATA ウィザード」や「高度な復元」で論理ドライブを選択していると、
クラスタスキャンが実行されます。
データをクラスタ単位で扱うので、スキャンにかかる時間が比較的短いです。
実行結果も、表示されている通りに受け取っていいです。
クラスタ番号は、選択したパーティションの先頭から起算します。
クラスタはファイルシステム上の概念なので、当然ですけどね。
セクタスキャン
「FINALDATA ウィザード」や「高度な復元」で物理ドライブを選択していると、
セクタスキャンが実行されます。
データをセクタ単位で取り扱うため、スキャンに非常に時間がかかります。
その代わり、多数のファイルを検出できます。
セクタスキャンを実行する場合は、範囲を絞って実行したほうがいいです。
「高度な復元」では、スキャン範囲を指定することができます。
注意点として、物理ドライブ選択時は、範囲をセクタ番号で指定します。
画面上は「検索するクラスタ範囲」となっていますけどね。
論理セクタサイズから計算した値と物理ドライブサイズが一致するので、間違いないと思います。
セクタ番号がわからなければ、
「パーティション検出」で対象パーティションの開始セクタ番号を確認できます。
「パーティション選択」のウィンドウも物理ドライブに関するものであり、セクタ番号が示されているからです。
必要なセクタ番号を控えたら、「パーティション選択」はキャンセルします。
改めて、「ドライブ選択」ウィンドウから「物理ドライブ」を選択し、「セクタスキャンを実行」します。
ここでは、先のクラスタスキャンと比較するため、「Cドライブ」と同じ領域を指定しました。
セクタスキャン実行中。
画面上の「クラスタ」は、すべて「セクタ」に置き換えて読んでもらえればいいです。
セクタスキャンの結果。
先程のクラスタスキャンの結果と比べると、検出されたファイルの数が全然違うことがわかります。
違いは、論理ドライブと物理ドライブのどちらを選択したかだけで、その他の設定はすべて同じです。
セクタスキャンの結果もややこしいです。
「クラスタ」の列に表示されているのは、セクタ番号です。
クラスタ番号ではありません。
これに伴い、ファイル名もセクタ番号が付けられます。
セクタ番号は、物理ドライブの先頭から起算します。
いわゆる、LBAです。
「クラスタスキャン」と「セクタスキャン」の結果は一致しない
これまでに書いてきた通り、クラスタスキャンとセクタスキャンの結果は似て非なるものです。
特に、同一ファイルでもファイル名は一致しないので注意してください。
ファイル名は、クラスタスキャンの場合はクラスタ番号、セクタスキャンの場合はセクタ番号です。
ファイナルデータのヘルプも、LBA等の説明を始めると難解になるためか、かなり端折って書かれています。
だから、細かいことをしようとすると疑問点がたくさん出てくるわけで。
一応、今回この記事を作成するにあたり、
クラスタ番号、セクタ番号から割り出したファイルを照合するなどして裏は取っているので、
大きく間違ってはいないと思います。
でもまぁ、わかりにくいです。