Cdrom डिवाइस को kvm / qemu डोमेन से कैसे कनेक्ट करें (कमांड-लाइन टूल्स का उपयोग करके)?


22

मैंने अपने उबंटू लैपटॉप पर विंडोज एक्सपी चलाने वाली एक वर्चुअल मशीन लगाई है। virt-managerGUI एप्लिकेशन का उपयोग करते हुए , मैं अपनी ड्राइव में एक सीडी सम्मिलित कर सकता हूं और विवरण → IDE CDROM 1 पर जाकर Connectबटन पर क्लिक कर सकता हूं । फिर मेरी वर्चुअल मशीन में सीडी उपलब्ध हो जाती है।

मैं कमांड लाइन के माध्यम से कैसे कर सकता हूं? जाहिर है, मैं कमांड लाइन से भी डिस्कनेक्ट करने में सक्षम होना चाहता हूं।

नोट: मैं उपयोग कर कमांड लाइन से वीएम शुरू कर सकता हूं virsh start testbed(डोमेन / वीएम के नाम का परीक्षण किया जा रहा है)।

जवाबों:


23

यदि आपने अपनी वर्चुअल मशीन बनाते समय कोई CDROM परिभाषित नहीं किया है, तो आप डिवाइस को रनिंग डोमेन (आभासी मशीन) से भी जोड़ सकते हैं।

virsh attach-disk testbed /dev/sr0 hdc --type cdrom

यदि आपने पहले से ही सीडीरॉम को परिभाषित किया है, लेकिन यह एक आईएसओ छवि की ओर इशारा करता है, तो मेरे अनुभव में, आप अभी भी उसी कमांड को चला सकते हैं। hdcभाग ब्लॉक युक्ति आप में है से मेल खाना चाहिए testbedआभासी मशीन।

जब आप एक आईएसओ छवि को फिर से इंगित करना चाहते हैं, तो आप /dev/sr0होस्ट पर फ़ाइल नाम की जगह लेते हैं , कुछ इस तरह

virsh attach-disk testbed ~/virtio-win-0.1-22.iso hdc --type cdrom

प्रलेखन का उपयोग करने का सुझाव देता है virsh update-device, लेकिन XML परिभाषा बनाने के लिए यह अधिक श्रम है जैसे कि:

<disk type='block' device='cdrom'>
  <driver name='qemu' type='raw'/>
  <source dev='/dev/sr0'/>
  <target dev='hdc' bus='ide'/>
  <readonly/>
</disk>

यदि आप इस तरह से हैं, तो उस फ़ाइल में कुछ इस तरह से सहेजें (कहें ~/cdrom-real.xml) और फिर आग:

virsh update-device testbed ~/cdrom-real.xml

ऐसा लगता है कि यह वही है जो मैं चाहता हूं; मैं यथाशीघ्र सत्यापित करूंगा (फिलहाल नहीं)। किसी भी मामले में धन्यवाद।

हाँ, यह बात है। क्या आपको भी पता है कि डिवाइस को कैसे अलग करना है? मैंने कोशिश की virsh detach-disk testbed hdc, लेकिन मुझे मिल गया error: unsupported configuration: This type of device cannot be hot unplugged
ΤΖΩΤΖΙΟΥ

आईडीई उपकरण वास्तव में हॉटप्लगबल नहीं हैं। detach-diskरुकी हुई वर्चुअल मशीन के लिए काम नहीं करता है। सीडी को पूरी तरह से हटाने के लिए, आपको virsh edit testbedमशीन को रोकने के दौरान उपयोग करने की आवश्यकता है और diskसीडीआरओएम को परिभाषित करने वाले तत्व को हटा दें । यदि आप एक viसंपादक विशेषज्ञ नहीं हैं , export EDITOR=nanoतो संपादन कमांड निष्पादित करने से पहले निष्पादित करें।
व्यंग्य

वैसे, अगर आपको लगता है कि मेरे उत्तर ने आपकी मदद की है, तो कृपया इसे उत्तर के रूप में स्वीकार करें।
विस्मयकारी

मैं आपके उत्तर को स्वीकार करूंगा। बात यह है कि, यदि डिवाइस परीक्षण किए गए वीएम से जुड़ा है और मैं डिस्क डाले बिना परीक्षण करना शुरू करता हूं, तो टेस्टबेड नहीं आएगा, और मुझे वर्चुअल मैनेजर जीयूआई खोलने और डिवाइस को पहले डिस्कनेक्ट करने की आवश्यकता है। यही कारण है कि मेरे प्रश्न में मैंने कहा कि मुझे डिवाइस को डिस्कनेक्ट करने का एक तरीका भी चाहिए था।

4

वीक्षक के qemu- मॉनीटर-कमांड को इजेक्ट को पास करने के लिए उपयोग करें और कमांड को qemu में बदलें।

अपने cdrom के लिए qemu का डिवाइस नाम प्राप्त करने के लिए पहले "इंफो ब्लॉक" का उपयोग करें।

virsh # qemu-monitor-command mirage --hmp --cmd "info block"
drive-virtio-disk0: type=hd removable=0 file=/home/daoist/mirage/mirage.qcow2 ro=0 drv=raw encrypted=0
drive-ide0-0-0: type=cdrom removable=1 locked=0 file=/home/daoist/iso/en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso ro=1 drv=raw encrypted=0

इसलिए मेरे मामले में मुझे ड्राइव-ide0-0-0 में दिलचस्पी है । तो डिस्क बदलने के लिए, यह करें:

virsh # qemu-monitor-command mirage --hmp --cmd "eject drive-ide0-0-0"
virsh # qemu-monitor-command mirage --hmp --cmd "change drive-ide0-0-0 /path/to/new.iso"
virsh #

"इंफो ब्लॉक" कमांड मेरे लिए एक त्रुटि का परिणाम है: "त्रुटि: आंतरिक त्रुटि json जानकारी को पार्स नहीं कर सकती है: लेक्सिकल त्रुटि: json पाठ में अमान्य चार।"
सी.जी.

लगता है वाक्य रचना मेरे नीचे से बदल गई होगी। जब मैंने इसे लिखा तो मैंने यह काम किया। मैंने जो हस के उत्तर द्वारा सुझाए गए वाक्यविन्यास को आज़माया और यह अब काम करता है। मैंने अपना उत्तर अपडेट कर दिया है।
कीथ टोमबले जूल

1

उपरोक्त "सूचना ब्लॉक" कमांड के बारे में, इसे कॉल करने का सही तरीका इस प्रकार है:

 virsh qemu-monitor-command <domain> --hmp --cmd "info block"

अर्थात

 virsh qemu-monitor-command windows44407 --hmp --cmd "info block"

0

मैं एक BluRay खिलाड़ी के माध्यम से गुजर रहा था जो तब तक सही ढंग से काम नहीं करता था जब तक कि मैं इसे दूसरे तरीके से नहीं पारित करता। इस लेख के आधार पर मैंने इसे कैसे किया।

https://lime-technology.com/forums/topic/33851-blu-ray-dvd-rom-passthrough/

SCSI # खोजें:

lsscsi

[root@kvmatrix ~]# lsscsi
[#:0:0:0]    cd/dvd  HL-DT-ST BD-RE  WH14NS40  1.03  /dev/sr0

डोमेन XML संपादित करें और इसे जोड़ें:

नोट: lssci में # के साथ scsi_host # बदलें

<controller type='scsi' index='0' model='virtio-scsi'/>
    <hostdev mode='subsystem' type='scsi'>
      <source>
        <adapter name='scsi_host#'/>
        <address type='scsi' bus='0' target='0' unit='0'/>
      </source>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </hostdev>

मुझे एक्सएमएल को स्वीकार करने के लिए मजबूर करना पड़ा क्योंकि वायरल एडिट में त्रुटियां थीं, बस मैं दबाता हूं और फिर परीक्षण करने के लिए वीएम को रिबूट करता हूं।


-6

माउंट -t iso9660 / dev / sr0 / मीडिया

आप अपने cdrom / dev निर्देशिका में जो भी उपकरण सेट कर रहे हैं उसका उपयोग कर सकते हैं। इसके अलावा / dev / cdrom अधिकांश लिनक्स सिस्टम पर उचित डिवाइस का लिंक है। -T उस प्रकार के डिवाइस के लिए है जिसे आप माउंट कर रहे हैं और iso9660 cdrom मीडिया के लिए सार्वभौमिक प्रकार है।

आरोह बिंदु वह हो सकता है जो आप स्पष्ट रूप से चाहते हैं, बस यह सुनिश्चित करें कि यह मौजूद है।


उम। मैं होस्ट में सीडी कैसे माउंट कर सकता हूं। ठीक है, मेरी गलती। "Kdm / qemu डोमेन / VM के लिए cdrom डिवाइस को कैसे कनेक्ट किया जाए?" ध्यान दें कि यह उत्तर पूरी तरह से मददगार नहीं है, इसलिए आपको या तो इसे संपादित करना चाहिए, या इसे हटाना चाहिए।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.