inodeでファイルの親を見つける方法

inodeでファイルの親を見つける方法

回復されたファイルのディレクトリ構造を維持するためにntfsundeleteを使用したいと思います。 ntfsundeleteの出力は次のとおりです。

Inode    Flags  %age  Date            Size  Filename
191321   FN..   100%  2016-04-26      1175  file.txt
191322   D...   100%  2016-04-26        10  my directory

出力には「file.txt」のフルパスは表示されず、対応するインデックスノードのみが表示されます。もしそうなら、親ディレクトリのinodeを見つける方法は?

答え1

インデックスノードには親情報がないため、ディレクトリエントリとインデックスノードは分離されています。親エントリを含むディレクトリエントリ(またはdentry)。

上記の理由は、ハードリンクをサポートするためです。ハードリンクは同じinodeを指しているため、異なるディレクトリ(親ディレクトリ)に存在する可能性があります。

答え2

--parentマニュアルページに記載されているパラメータを試しましたかntfsundelete

元々含まれているフォルダ内の情報を見つけることができるので、通常は機能します。

答え3

トリニティ構造キットというユーティリティがあり、ntfsundeleteallその説明は次のとおりです。

"ntfsundelete"ユーティリティのシンプルなラッパーです。ファイル名の前に元のinode(=ファイルシステム内のファイルの内部番号)を追加するので、常に一意のファイル名を持つことになります。後でファイル名を変更するのはユーザーの役割ですが、少なくとも復元されたファイル名には元の名前が含まれます。

TRKディスクをダウンロードして起動して使用できます。残念ながら、このラッパースクリプトのソースが見つかりません。報告されたiNode名に基づいてフォルダを作成するbashスクリプトを想像することは難しくありません。ntfsundelete --scanたぶん、連続したiNode番号に基づいてファイルやフォルダについて楽観的な推測をすることができますが、...作成するのは難しく、そのような人を見つけることができません。持っています。

答え4

たとえば、次のように使用できますfind(1)

find ./ -inum 191321

しかし、少し遅いかもしれません。

関連情報