仮想マシンのLVMパーティションをKVMホストにマウントする方法は?


11

KVMホストで以下を実行しようとすると:

# kpartx -av /dev/VolGroup00/kvm101_img
add map kvm101_img1 : 0 208782 linear /dev/VolGroup00/kvm101_img 63
add map kvm101_img2 : 0 125612235 linear /dev/VolGroup00/kvm101_img 208845
# mount /dev/mapper/kvm101_img1 /mnt

その後、/ bootパーティションがマウントされます。しかし、次のように入力するとエラーが発生します。

# mount /dev/mapper/kvm101_img2 /mnt
mount: you must specify the filesystem type

ゲストマシンのfdiskレイアウトは次のとおりです。

# fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        7832    62806117+  8e  Linux LVM

ゲストでルートパーティションを見つけてホストシステムにマウントすることは可能ですか?


kvm101_img2への参照はタイプミスだと思います。代わりに_img1を使用してください。
joechip

_img1は上記の方法で正しくマウントされますが、_img1は/ bootパーティションで、ゲストの/ dev / hda1と同等です。問題は、/ dev / hda2 Linux LVMを含む_img2をマウントできなかったことです。そのパーティションレイアウトは、CentOSインストーラーのデフォルトです。
エボルバー

ああ、私はKVMへの言及に捨てられました。この質問についてKVM固有のことは何もありません。それは、単に別のLVM構造の中にあります。
-joechip

回答:


14

ようやく必要なことを行う方法を見つけたようです。これが私がしたことです:

# kpartx -av /dev/VolGroup00/kvm101_img
# vgscan

ゲストシステムとホストシステムでVolGroupの名前が同じ場合、ゲストVolGroupの名前を変更する必要があります

# vgrename <uuid> VolGroupXX

チェックインできるVolGroupsのuuid vgdisplay。そのため、ゲストVolGroupをアクティブにするのがコツです。

# lvscan
# vgchange -ay VolGroupXX
# lvscan

その後、簡単にマウントできます。

# mount /dev/VolGroupXX/LogVol00 /mnt

最後に、バックワードプロセスは次のとおりです。

# umount /mnt
# vgchange -an VolGroupXX
# kpartx -dv /dev/VolGroup00/kvm101_img
# pvscan

最後のコマンドは、LVMキャッシュを消去し、kpartxによって作成された物理ボリュームをLVMから削除します。


その場合、VolGroup00の代わりにVolGroupXXを使用するには、ゲストのfstabを編集する必要があります。
-joechip

4

あなたの状況に合わせて理解してくれてうれしいです。

より一般的なケースでは、ゲストドライブはqcow、qcow2などのさまざまな形式である可能性があるため、直接操作することはできません。この場合、ホスト上で次のようなものを使用できます。

# modprobe nbd
# kvm-nbd -c /dev/nbd0 file.qcow2

次に、rawゲストドライブとして/ dev / nbd0にアクセスできます。このデバイスの使用を停止するには、次を実行する必要があります。

# nbd-client -d /dev/nbd0

一方、ゲストドライブがrawフォーマットの場合、losetupを使用します。

# losetup -f file.raw

これにより、最初に使用可能なループデバイス(たとえば、/ dev / loop0)が検索されて使用されます。使用を停止するには、次を実行します。

# losetup -d /dev/loop0

この後、回答で説明したkpartx / vgscan / lvscan /マウント手順を実行できます。


2

guestfishを使用して実行できます-http : //libguestfs.org/guestfish.1.html


提案をありがとう、しかし残念ながらゲストフィッシュをインストールすることさえできませんでした:私は何時間もグーグルと調査をしました-すべて役に立たない、それは動作しません:すべてをマウントする1つのツール、LVMのみ
Evolver

1
実行してみてくださいqemu-img info /path/to/image。[タイプ]ボックスに表示される内容が「RAW」でない場合、OSはこのイメージをパーティションとしてマウントできません。これはqemu固有の仮想ディスクとしてフォーマットされているためです。これはguestfishが扱うものであり、単なる取り付けツールではありません
-dyasny

1

libguestfsパッケージguestfishから使用する方が簡単な場合があります。libguestfsパッケージは、手動で実行するのではなく、迷惑な詳細をすべて解決する必要があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.