it-swarm-ja.com

スーパーブロック内のファイルシステムの「マジック」ナンバーとは何ですか?

私はミッドレンジNASシステムは基本的にLinuxで実行されており、今日はいくつかの素晴らしいテストを行う必要があります。ステップバイステップで、fsdbを使用してマジックナンバーを破壊するようになりました。それを破壊するためにファイルシステム/それを修正する必要があるスクリプトをテストします。

私はかなりググったがしっかりした説明は見つからなかった。中間的な方法で光を当てることはできますか?

9
mbb

マジックナンバー は、特定の形式のすべてのファイルで、通常は特定の位置(多くの場合最初)で使用されるバイトのシーケンスです。その特定の形式のすべてのファイルにはその特定の位置にその特定のバイトシーケンスがあり、他の形式のほとんどのファイルにはそれがないため、マジックナンバーはファイルがどの形式であるかを認識する方法です。

ここでは、この概念がファイルシステム形式に適用されています。たとえば、ext2/ext3/ext4ファイルシステムでは、常に位置1080〜1081にバイト0x53 0xEFがあります。 reiserfsファイルシステムには常に位置65588(または最近のバージョンではReIsEr2Fsなど)から始まるReIsErFsがあります。他のファイルシステムにも同様のマジックナンバーがあります。ファイルシステムツールは、マジックナンバー(および場合によっては他の手がかり)の存在をチェックして、処理できず、損傷する可能性のある形式で編成されたデータに対して誤ってマジックナンバーを起動していないことを確認します。ファイルシステムのマジックナンバーを変更すると、通常のツールはそれに触れることを拒否する可能性があります。修復ツールはもっと賢く、悪いマジックナンバーを壊れる可能性のあるものの1つとして扱うかもしれません。

file コマンドは、マジックナンバーに基づいてファイルを認識します。 file -s /dev/sda1を実行して、パーティション/dev/sda1が何であるかを確認できます。その決定は、通常/etc/magicまたは/usr/share/misc/magicにあるデータベースに基づいています。特定のコマンドは、異なるマジックナンバーを使用して、処理できるファイル形式を認識する場合があります。