Bagaimana me-mount partisi LVM mesin virtual pada host KVM?

11

Jika saya mencoba melakukan hal berikut pada host 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

maka saya mendapatkan / partisi boot terpasang. Tapi saya mendapatkan kesalahan jika saya mengetik di bawah ini:

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

Berikut ini adalah tata letak fdisk pada mesin tamu:

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

Apakah mungkin untuk menemukan partisi root pada guest dan me-mount-nya di sistem host?

Evolver
sumber
Saya kira referensi Anda ke kvm101_img2 adalah kesalahan ketik. Itu seharusnya _img1 sebagai gantinya, kan?
joechip
_img1 dipasang dengan benar dengan metode di atas, tetapi _img1 adalah partisi / boot, setara dengan / dev / hda1 pada guest. Masalahnya adalah saya tidak bisa me-mount _img2 yang mengandung / dev / hda2 Linux LVM. Layout partisi itu adalah default untuk installer CentOS.
Evolver
Oh OK, saya diusir oleh referensi ke KVM. Tidak ada yang spesifik KVM tentang pertanyaan ini, itu hanya satu struktur LVM di dalam yang lain.
joechip

Jawaban:

14

Sepertinya saya akhirnya menemukan cara melakukan hal yang saya butuhkan. Inilah yang saya lakukan:

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

jika nama VolGroup identik dengan sistem host dan tamu, maka Anda harus mengganti nama guest VolGroup

# vgrename <uuid> VolGroupXX

uuid VolGroups yang bisa Anda laporkan vgdisplay. Jadi, triknya adalah mengaktifkan VolGroup tamu:

# lvscan
# vgchange -ay VolGroupXX
# lvscan

Setelah itu mudah dipasang:

# mount /dev/VolGroupXX/LogVol00 /mnt

Akhirnya, proses mundur adalah:

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

Perintah terakhir membersihkan cache LVM dan menghapus volume fisik yang dibuat oleh kpartx dari LVM.

Evolver
sumber
Anda mungkin harus mengedit fstab tamu untuk menggunakan VolGroupXX daripada VolGroup00.
joechip
4

Saya senang Anda menemukan jawabannya untuk situasi Anda.

Dalam kasus yang lebih umum, drive tamu bisa dalam berbagai format seperti qcow, qcow2, dll., Sehingga Anda tidak akan dapat bekerja secara langsung. Dalam hal ini, Anda mungkin menggunakan sesuatu seperti pada host:

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

Maka Anda dapat mengakses / dev / nbd0 sebagai drive tamu mentah. Untuk berhenti menggunakan perangkat ini, Anda harus menjalankan:

# nbd-client -d /dev/nbd0

Sebaliknya, jika drive tamu dalam format mentah, Anda akan menggunakan losetup:

# losetup -f file.raw

Ini akan menemukan dan menggunakan perangkat loop pertama yang tersedia (misalnya, / dev / loop0). Untuk berhenti menggunakannya jalankan:

# losetup -d /dev/loop0

Setelah ini, Anda dapat melakukan prosedur kpartx / vgscan / lvscan / mount yang Anda jelaskan dalam jawaban Anda.

joechip
sumber
2

Anda dapat melakukannya menggunakan guestfish - http://libguestfs.org/guestfish.1.html

dyasny
sumber
Terima kasih atas sarannya, tetapi sayangnya saya bahkan tidak bisa menginstal guestfish: Saya menghabiskan waktu berjam-jam untuk googling dan investigasi - semua tidak berguna, itu tidak berfungsi :( Mungkin ada beberapa cara lain untuk me-mount partisi linux? Saya tidak perlu all-in- satu alat untuk me-mount semuanya, hanya LVM
Evolver
1
coba lari qemu-img info /path/to/image. jika apa yang Anda dapatkan di kotak Type bukan "RAW" maka tidak ada cara OS dapat me-mount gambar ini sebagai partisi, karena diformat sebagai disk virtual khusus-qemu. Inilah yang berurusan dengan guestfish, ini bukan hanya alat pemasangan yang sederhana
dyasny
1

Mungkin lebih mudah hanya dengan menggunakan guestfishdari paket libguestfs yang seharusnya bisa menyelesaikan semua detail yang mengganggu Anda daripada mencoba melakukannya secara manual.

TomH
sumber