読み取り権限があるディスクイメージ(パーティション化されている可能性があります)があるとします。ただし、ループバック経由でマウントする権限がありません*。理論的には、データはすべてそこにあります。 Linuxカーネル、パーティションエディター、mount
独自のコードに似たコードを記述して、イメージを解析し、パーティションを探し、ファイルシステムを解釈してファイルを抽出することができます。しかし、そのようなツールはすでにGNU/Linuxシステムに存在するのでしょうか?
*実際に、私はそれを扱うためのツールを書く立場にあり、(a)これらのツールのユーザーがSudo
を使用できると想定したり、(b)Sudo
必要ない場合があります。
(ファイルシステムによって答えが変わる場合は、ext2-4
は私にとってより重要です。ただし、複数の一般的なファイルシステムをカバーする回答が優先されます。)
ext [234]
/ dev/whateverのルートディレクトリにファイルがある場合foo
:
debugfs -f <(echo cat /foo) /dev/whatever | tail -n +2 > /restore/file
一般的なアプローチ
一般的なアプローチは、VMを2つのディスクドライブ(rawモードのファイル)で作成し、1つはイメージ(VM read-only )およびファイルを復元するための別のファイル(ネットワークを使用して転送できない場合)。
イメージから起動できる必要があります(そうでない場合は、VMを3つのディスクドライブで作成し、1つは起動用))。したがって、ファイルシステムに簡単にアクセスできます。
マウントできないため、ファイルシステムなしで認識できる何らかの形式でデータを書き込む必要があります。
tar -cf /dev/vdc /etc/passwd
ホストでは、単にイメージファイルを読み取ることができます。
tar -xf imagefile.img
tar
はアーカイブの終わりを認識し、ファイルの残りを無視します。