ループバックブロックデバイスで論理ボリュームを有効にする方法は?

ループバックブロックデバイスで論理ボリュームを有効にする方法は?

hdd.imgハードドライブの生画像であるファイルがあります。ハードドライブにはBIOS / DOSパーティションテーブルがあり、2番目のパーティションは論理ボリュームを作成するためのLVM用の単一物理ボリュームに設定されています。

私の目標は、これらの論理ボリュームで表されるパーティション/ファイルシステムにアクセスすることです。

hdd.img次のコマンドを使用してループバックブロックデバイスマッピングを設定しました。

$ sudo losetup --partscan -f hdd.img

これにより、ループバックデバイスに画像に含まれる2つのパーティションが表示されますloop17

$ lsblk | grep 'loop17'
loop17                7:17   0  30G  0 loop
├─loop17p1          259:4    0   1G  0 loop
└─loop17p2          259:5    0  29G  0 loop

今質問はです。実際にアクセスしたい論理ボリュームを見つけるために/ dev / loop17p2を検索するようにシステムに指示しますか?

修正する

パッケージをインストールkpartxし、次の手順を実行します。

$ sudo losetup -f hdd.img
$ sudo kpartx -a /dev/loop17

上記のボリュームへのlvmマッピングが実際に作成されました/dev/loop17p2。これは即時の要件を解決しますが、vgscan論理ボリュームを含むブロックデバイスをすでに作成した後になぜ機能しないのかを知っておくとよいでしょうか。losetup --partscan -f hdd.img/dev/loop17p2

答え1

使用lvscanvgscanボリュームグループを検索しています...

答え2

このコマンドには、スキャン結果をキャッシュに保存するために使用する必要があるvgscanコマンドラインオプションがあり、後続の呼び出しでマップを生成できます。--cachevgchange -ay <vg>

簡単に言うと、これはうまくいきます:

$ sudo losetup --partscan -f hdd.img
$ sudo vgscan --scan
$ sudo vgchange -ay <vg>

これは、vgボリュームグループ(vgscan)によって報告されるボリュームグループの1つです。

しかし、これはいいえ働く:

$ sudo losetup --partscan -f hdd.img
$ sudo vgscan
$ sudo vgchange -ay <vg>

2番目のコマンドはスキャン結果を--cache--cacheキャッシュ済み実際のスキャンを実行する代わりに値を使用します。

関連情報