ファイルから仮想ブロックデバイスを作成するにはどうすればいいですか?

ファイルから仮想ブロックデバイスを作成するにはどうすればいいですか?
  • 不明なディスク ドライブの非圧縮 RAW イメージ (たとえば、 によって作成dd if=/dev/sda of=image) を 1 つのファイルにまとめてみましょう。
  • ディスク レイアウトがわかっていれば、いくつかのオフセットをスキップして、ファイルから特定のパーティションをループ デバイスとしてマウントできます。
  • レイアウトがわからないと仮定しましょう。ディスク ドライブ全体を何らかの方法で「マウント」しimage、そのプロセスでディスク レイアウトに従って仮想ブロック デバイスを作成することはできますか? たとえば、 に 2 つのパーティションがある場合、 3 つのデバイス ( 、、 )imageが作成されます。その後、通常どおりにこれらのデバイスをマウントできます。/dev/sdx/dev/sdx1/dev/sdx2

答え1

さらに調査してみたところ、テストする方法が少なくとも 2 つあることがわかりました。

  1. によるとこれ役職、kpartx適用可能なツールです。
    • 残念ながらArch Linuxでは動作しませんでした
    • これは AUR: からのものですyaourt multipath-tools-gitが、十分にサポート/完成されていないようで、次のようなエラーが発生しました:

      デバイスマッパー: loop0p1 の ioctl の再ロードに失敗しました: そのようなデバイスはありません

    • 少なくとも埋め込みパーティションを一覧表示するために使用できます。kpartx -l image
    • 編集:によるとこれこの投稿は時代遅れのようで、推奨される方法は次のとおりです。
  2. によるとこれ役職、losetupに使える。
    • まず、動作しませんでした: losetup /dev/loop0 image(特定のパーティションのデバイスが欠落しています)。
    • 追加-Pオプションを使用して再試行すると、作業が完了し、losetup -d /dev/loop0デバイスが作成されました。losetup -P /dev/loop0 image/dev/loop0pX
    • これらのデバイスは、次のように期待通りにマウントできます。mount /dev/loop0p3 /mnt/x -t ntfs

関連情報