QEMU Windows अतिथि और लिनक्स होस्ट के बीच साझा फ़ोल्डर


24

अतीत में मैंने वर्चुअल बॉक्स का उपयोग किया है जिसमें विंडोज अतिथि के साथ मेजबान पर एक फ़ोल्डर साझा करने के लिए बहुत अच्छा समर्थन है। मैं QEMU के लिए समान कार्यक्षमता की तलाश कर रहा हूं।

प्रलेखन नेटवर्क में कहीं चल रहे एक सांबा सर्वर को बेनकाब करने का सुझाव देता है, या -net user,smb=/path/to/folderसांबा सर्वर शुरू करने के लिए उपयोग करता है।

मुझे -net user,smbQEMU के विकल्प के साथ कोई भाग्य नहीं था । यह सब शुरू हो रहा है smbd(जो एक बंदरगाह संघर्ष के कारण स्थानीय रूप से चलने वाली अन्य सेवा के साथ संघर्ष करता है )। कहने के लिए पर्याप्त, यह अनुपयोगी है, विशेष रूप से कई मेहमानों को ध्यान में रखते हुए। (लिनक्स के लिए, -virtfs(योजना 9) का उपयोग आसान फ़ोल्डर साझा करने के लिए किया जा सकता है।)

सांबा के साथ अन्य समस्याएं यह है कि यह केवल फ़ोल्डर साझा करने तक सीमित नहीं है, यह प्रिंटर साझाकरण, उपयोगकर्ता मैपिंग और व्हाट्सनॉट भी करता है। विंडोज गेस्ट के साथ मुझे एक (या अधिक?) फोल्डर साझा करने की आवश्यकता है।

क्या QEMU के लिए एक वैकल्पिक फ़ोल्डर साझा करने की विधि मौजूद है जो Windows अतिथि के साथ काम करती है?

या फिर सांबा को कॉन्फ़िगर करने का एक तरीका है कि वह बहुत ही सीमित सुविधाओं के लिए खुद को प्रतिबंधित कर सके और QEMU में एकीकृत कर सके? यह होना चाहिए:

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

एक और ओएस अज्ञेयवादी सवाल: superuser.com/questions/628169/…
Ciro Santilli 中心 ostic ostic ostic 六四

1
@CiroSantilli 包子 ill ill ill 法轮功 tag उस प्रश्न को लिनक्स के साथ टैग किया गया है जहां -virtfsमहान काम करता है (यह प्रश्न भी देखें), लेकिन मुझे विंडोज के लिए 9p ड्राइवर की जानकारी नहीं है।
लीकेनस्टाइन

हां, यह नहीं कहना कि यह एक द्वैध है या कुछ भी, बस संबंधित है।
सिरो सेंटिल्ली 新疆 改造 i i 事件 '

जवाबों:


14

QEMU की निर्मित सांबा सेवा

-net user,smbनए सांबा संस्करणों (> = 4) के साथ असंगतता के कारण कार्य नहीं करने का विकल्प था। यह इन परिवर्तनों के साथ QEMU v2.2.0 और नए में तय किया गया है:

(डेबियन ने बाद के दो पैच को 2.1 + dfsg-6 पर वापस भेज दिया है जो जेसी में मौजूद है।)

प्रयोग

\\10.0.2.4\qemuउपयोगकर्ता नेटवर्किंग का उपयोग करते समय आप एक फ़ोल्डर निर्यात कर सकते हैं :

qemu-system-x86_64 \
    -net user,smb=/absolute/path/to/folder \
    -net nic,model=virtio \
    ...

जब इन विकल्पों के साथ QEMU को सफलतापूर्वक शुरू किया जाता है, तो एक नई /tmp/qemu-smb.*-*/निर्देशिका बनाई जाएगी जिसमें a smb.conf। यदि आप पर्याप्त तेज़ हैं, तो यह फ़ाइल पथों को केवल पढ़ने के लिए संशोधित कर सकती है या अधिक फ़ोल्डर्स निर्यात कर सकती है।

आपरेशन करने का तरीका

जब भी बंदरगाहों 139 या 445 को "उपयोगकर्ता" नेटवर्क पर एक्सेस किया जाता है, सांबा डेमॉन निष्पादित होता है। संचार smbd प्रक्रिया के मानक इनपुट / आउटपुट / त्रुटि के माध्यम से होता है। यही कारण है कि नए डेमॉन विफल हो गए, यह प्रोटोकॉल संदेशों के बजाय पाइप पर अपना त्रुटि संदेश लिखेगा।

ऑपरेशन की इस पद्धति के कारण, डेमॉन मेजबान बंदरगाहों पर नहीं सुनेगा, और इसलिए केवल अतिथि के लिए ही सुलभ होगा। इसलिए नेटवर्क के अन्य क्लाइंट और यहां तक ​​कि स्थानीय उपयोगकर्ता भी इस डेमॉन का उपयोग करके फ़ोल्डर्स तक पहुंच प्राप्त नहीं कर सकते हैं।

चूंकि QEMU v2.2.0 प्रिंटर साझाकरण सांबा कॉन्फ़िगरेशन के माध्यम से पूरी तरह से अक्षम है, इसलिए यहां एक और चिंता का विषय है।

गति नेटवर्क एडेप्टर पर निर्भर करती है, इसलिए विंडोज के तहत गुणियो netkvmचालक का उपयोग करने की सिफारिश की जाती है ।

यह भी ध्यान दें कि /usr/sbin/smbdसंकलन समय ( --smbdविकल्प का उपयोग करते हुए ) के अनुसार डेमॉन को उसके पूर्ण पथ (आमतौर पर ) द्वारा निष्पादित किया जाता है । जब भी आपको किसी नए बाइनरी को आज़माने या इंटर smbdकरने की आवश्यकता होती है, तो आपको उस पथ पर फ़ाइल को संशोधित करना होगा।

अन्य कैवियट

गेस्ट के लिए एक्ज़िबेबल्स ( *.exe) को निष्पादन योग्य होना चाहिए ( chmod +x FILEअतिथि के लिए) अनुमतियाँ निष्पादित करने के लिए। किसी भी फ़ाइल के निष्पादन की अनुमति देने के acl allow execute always = Trueलिए, एक शेयर में विकल्प जोड़ें ।

उदाहरण केवल पढ़ने के लिए smb.conf कॉन्फ़िगरेशन जो किसी भी फ़ाइल के निष्पादन की अनुमति देता है (QEMU v2.2.0 पर आधारित):

...
[Qemu]
पथ = / होम / पीटर / विंडोज़ 
केवल = हां पढ़ा
अतिथि ठीक = सच्चा
उपयोगकर्ता को मजबूर करें = पीटर 
एसएल हमेशा निष्पादित करें = सही

मैंने इस विकल्प का उपयोग किया है, मुझे पढ़ने-लिखने की पहुँच दोनों की आवश्यकता है। मैंने qemu सेवा को पुनः आरंभ किया है और तदनुसार अद्यतन को अद्यतन किया है। मैं विंडोज़ अतिथि में एक्सप्लोरर में नेटवर्क फ़ोल्डर्स में कुछ भी नहीं देखता हूं। इस मामले में मुझे होस्ट आईपी कैसे मिल सकता है (मुझे लगता है कि यह 10.0.2.4 है)? इस एनआईसी के लिए मेरा गेस्ट आईपी 10.0.2.15 था। @Lekensteyn - कोई विचार?
tsar2512

@ tsar2512 आमतौर पर मैं एक्सप्लोरर में जाता हूं, फिर एक पत्र असाइन करने के लिए मैप नेटवर्क ड्राइव का उपयोग करता हूं \\10.0.2.4\qemu। हाल ही में मैंने उस कदम को छोड़ दिया है और रन डायल से सीधे उक्त मार्ग खोला है।
लेकेनस्टाइन

6

में 2018 एक आसान तरीका साझा करने के लिए एक के बीच एक फ़ोल्डर लिनक्स मेजबान और विंडोज आभासी मशीन के लिए है सक्षम आरडीपी Windows में guestऔर से कनेक्ट vmसाथ Remmina दूरस्थ डेस्कटॉप क्लाइंट और सक्षम एक साझा फ़ोल्डर:

रेमिना आरडीपी सेटिंग्स

यह इस पीसी के तहत एक फ़ोल्डर बनाता है ( लिनक्स पर साझा फ़ोल्डरhostname ) और \\tsclient\shared-folder-nameअंदर एक नेटवर्क शेयर guest। आप एक नेटवर्क ड्राइव को भी मैप कर सकते हैं:

विंडोज गेस्ट फोल्डर शेयर

  • इस समाधान को चलाने की आवश्यकता नहीं है samba

  • के तहत परीक्षण किया गया libvirt/ virt-managerलेकिन किसी भी वर्चुअलाइजेशन के साथ काम करना चाहिए।


दिलचस्प तकनीक, फ़ाइल सिस्टम पुनर्निर्देशन एक RDP सुविधा प्रतीत होती है। xfreerdp /drive:shared-folder-name,/home/user/sharedविकल्प के रूप में अच्छी तरह से काम करना चाहिए। स्रोत कोड संदर्भ: रेमिना कॉन्फ़िगरेशन , फ्रीआरडीपी लाइब्रेरी कोड
लीकेन्स्टाइन

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