Sanal makinenin LVM bölümünü KVM ana bilgisayarına nasıl monte edebilirim?


11

KVM ana bilgisayarında aşağıdakileri yapmaya çalışırsam:

# 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

sonra / boot bölümü monte alıyorum. Ama sonra aşağıdakileri yazarsanız bir hata alıyorum:

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

Konuk makinede bir fdisk düzeni:

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

Misafir üzerinde bir kök bölüm bulmak ve bunu ana sisteme monte etmek mümkün mü?


Ben kvm101_img2 için bir yazım hatası olduğunu varsayalım. Bunun yerine _img1 olmalı, değil mi?
joechip

_img1 yukarıdaki yöntemle doğru şekilde bağlanır, ancak _img1 konuktaki / dev / hda1 ile eşdeğer bir / boot bölümüdür. Sorun şu ki / dev / hda2 Linux LVM içeren _img2 bağlayamıyordum. Bu bölüm düzeni CentOS yükleyicisi için varsayılan değerdir.
Evolver

Tamam, KVM'ye atıfta bulunarak atıldım. O zaman bu soru hakkında KVM'ye özgü bir şey yok, sadece diğerinin içindeki bir LVM yapısı.
joechip

Yanıtlar:


14

Sonunda ihtiyacım olan şeyleri nasıl yapacağımı anladım. İşte yaptığım şey:

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

VolGroup konuk ve ana bilgisayar sistemlerinde aynı isimleri kullanıyorsa, konuk VolGroup'u yeniden adlandırmanız gerekir

# vgrename <uuid> VolGroupXX

Giriş yapabileceğiniz VolGroups uuid vgdisplay. Yani, püf noktası konuk VolGroup'u etkinleştirmektir:

# lvscan
# vgchange -ay VolGroupXX
# lvscan

Bundan sonra kolayca monte edilir:

# mount /dev/VolGroupXX/LogVol00 /mnt

Son olarak, geriye dönük süreç:

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

Son komut LVM önbelleğini temizler ve kpartx tarafından oluşturulan fiziksel birimi LVM'den kaldırır.


VolGroup00 yerine VolGroupXX kullanmak için konuğun fstab'ını düzenlemeniz gerekebilir.
joechip

4

Durumuna göre çözmene sevindim.

Daha genel bir durumda, konuk sürücüsü qcow, qcow2, vb.Gibi çeşitli formatlarda olabilir, bu yüzden doğrudan üzerinde çalışamazsınız. Bu durumda, ana bilgisayarda olduğu gibi bir şey kullanabilirsiniz:

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

Sonra ham konuk sürücü olarak / dev / nbd0 erişebilirsiniz. Bu cihazı kullanmayı durdurmak için şunları çalıştırmalısınız:

# nbd-client -d /dev/nbd0

Öte yandan, konuk sürücü ham biçimdeyse, losetup komutunu kullanırsınız:

# losetup -f file.raw

Bu, kullanılabilir ilk döngü aygıtını bulur ve kullanır (örn. / Dev / loop0). Çalıştırmayı durdurmak için:

# losetup -d /dev/loop0

Bundan sonra cevabınızda tanımladığınız kpartx / vgscan / lvscan / mount prosedürünü yapabilirsiniz.


2

guestfish kullanarak yapabilirsiniz - http://libguestfs.org/guestfish.1.html


Öneri için teşekkürler, ama ne yazık ki misafir balık bile yükleyemedim: Ben googling ve soruşturma saatler geçirdim - hepsi işe yaramaz, işe yaramaz :( Belki de linux bölümünü monte etmek için başka bir yol var? her şeyi monte etmek için bir araç, sadece LVM
Evolver

1
koşmaya çalış qemu-img info /path/to/image. Tür kutusunda elde ettiğiniz şey "RAW" değilse, bir işletim sisteminin bu görüntüyü bölüm olarak bağlayabilmesinin bir yolu yoktur, çünkü qemu'ya özgü sanal disk olarak biçimlendirilmiştir. Guestfish ile ilgilenen bu, sadece basit bir montaj aracı değil
dyasny

1

Bu sadece kullanım daha kolay olabilir guestfishgelen libguestfs yerine elle yapmak çalışmakla sizin için tüm can sıkıcı ayrıntıları çalışmalıdır paketin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.