KVM होस्ट पर वर्चुअल मशीन के LVM विभाजन को कैसे माउंट करें?


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

तो मैं / बूट विभाजन घुड़सवार हो रहा हूँ। लेकिन मुझे एक त्रुटि मिल रही है अगर मैं फिर निम्नलिखित टाइप करूं:

# 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 होना चाहिए, है ना?
जोइच

_img1 उपरोक्त विधि से सही ढंग से गणना करता है, लेकिन _img1 एक / बूट विभाजन है, जो अतिथि पर / dev / hda1 के बराबर है। समस्या यह थी कि मैं _img2 युक्त / dev / hda2 Linux LVM माउंट नहीं कर सका। वह विभाजन लेआउट CentOS इंस्टॉलर के लिए डिफ़ॉल्ट है।
इवोल्वर

ओह ठीक है, मुझे केवीएम के संदर्भ से बाहर निकाल दिया गया था। इस सवाल के बारे में केवीएम विशिष्ट कुछ भी नहीं है, यह बस एक एलवीएम संरचना है दूसरे के अंदर।
जॉयचिप

जवाबों:


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 कैश को साफ करता है और LVM से kpartx द्वारा बनाई गई भौतिक मात्रा को हटा देता है।


फिर आपको VolGroup00 के बजाय VolGroupXX का उपयोग करने के लिए अतिथि के fstab को संपादित करना पड़ सकता है।
joechip

4

मुझे खुशी है कि आपने इसे अपनी स्थिति के लिए समझ लिया।

अधिक सामान्य स्थिति में, अतिथि ड्राइव विभिन्न प्रकार के स्वरूपों में हो सकता है जैसे कि qcow, qcow2, आदि, इसलिए आप सीधे उन पर काम नहीं कर पाएंगे। इस स्थिति में, आप होस्ट पर कुछ उपयोग कर सकते हैं:

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

तब आप कच्चे अतिथि ड्राइव के रूप में / dev / nbd0 एक्सेस कर सकते थे। इस उपकरण का उपयोग बंद करने के लिए आपको चलना चाहिए:

# nbd-client -d /dev/nbd0

यदि, दूसरी ओर, अतिथि ड्राइव कच्चे प्रारूप में था, तो आप लॉसेटअप का उपयोग करेंगे:

# losetup -f file.raw

यह पहले उपलब्ध लूप डिवाइस (उदाहरण के लिए, / dev / loop0) को खोजेगा और उपयोग करेगा। इसे चलाने का उपयोग बंद करने के लिए:

# losetup -d /dev/loop0

इसके बाद आप अपने उत्तर में वर्णित kpartx / vgscan / lvscan / माउंट प्रक्रिया करने में सक्षम होंगे।


2

आप इसे गेस्टफ़िश - http://libguestfs.org/guestfish.1.html का उपयोग करके कर सकते हैं


सुझाव के लिए धन्यवाद, लेकिन दुर्भाग्य से मैं भी गेस्टफ़िश स्थापित नहीं कर सका: मैंने घंटों की गुगली और जांच की - सभी बेकार हैं, यह काम नहीं करता है :( शायद लिनक्स विभाजन को माउंट करने का कोई और तरीका है? मुझे सभी की आवश्यकता नहीं है- एक उपकरण सब कुछ माउंट करने के लिए, बस LVM।
इवोल्वर

1
चलाने की कोशिश करो qemu-img info /path/to/image। यदि आपको टाइप बॉक्स में जो मिलता है वह "RAW" नहीं है, तो ऐसा कोई तरीका नहीं है कि OS इस छवि को विभाजन के रूप में माउंट कर सके, क्योंकि यह एक qemu-specific वर्चुअल डिस्क के रूप में स्वरूपित है। यह गेस्टफ़िश के साथ क्या व्यवहार करता है, यह केवल एक सामान्य बढ़ते उपकरण नहीं है
डायस्नी जूल 5'11

1

यह आसान हो सकता है कि आप केवल libguestfs पैकेज का उपयोग करें guestfish, जो मैन्युअल रूप से करने की कोशिश करने के बजाय आपके लिए सभी कष्टप्रद विवरणों को काम में लाना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.