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
使用lvscan
。vgscan
ボリュームグループを検索しています...
答え2
このコマンドには、スキャン結果をキャッシュに保存するために使用する必要があるvgscan
コマンドラインオプションがあり、後続の呼び出しでマップを生成できます。--cache
vgchange -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
キャッシュ済み実際のスキャンを実行する代わりに値を使用します。