ใช้ virt-manager เพื่อแชร์ไฟล์ระหว่าง Linux host และ Windows guest?


26

เป็นไปได้ไหมที่จะใช้ตัวเลือกฮาร์ดแวร์เสมือน "Filesystem Passthrough" ภายใน virt-manager เพื่อแชร์โฟลเดอร์บนโฮสต์ Linux ของฉันกับแขก Windows ของฉัน ฉันพบบทเรียนบางอย่างเกี่ยวกับวิธีการทำสิ่งนี้กับแขก Linux แต่เมื่อฉันลองสิ่งนี้กับแขก Windows ของฉันฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อพยายามเริ่ม VM:

Error starting domain: Unable to read from monitor: Connection reset by peer

Traceback (most recent call last):   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 100, in cb_wrapper
    callback(asyncjob, *args, **kwargs)   File "/usr/share/virt-manager/virtManager/asyncjob.py", line 122, in tmpcb
    callback(*args, **kwargs)   File "/usr/share/virt-manager/virtManager/domain.py", line 1210, in startup
    self._backend.create()   File "/usr/lib64/python2.7/site-packages/libvirt.py", line 698, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: Unable to read from monitor: Connection reset by peer

ฉันพยายามจัดหาเอกสารบางอย่าง แต่ทั้งหมดที่ฉันสามารถหาได้หน้าอย่างเป็นทางการเชื่อมโยงไปยังคำถามที่พบบ่อยและ "หน้าจอบาง"

คำตอบ:


16

ฉันไม่เชื่อว่าสิ่งนี้เป็นไปได้โดยใช้แขกของ Windows ฉันมักจะติดตั้งเซิร์ฟเวอร์ Samba บนโฮสต์ Linux KVM แล้วแชร์โฟลเดอร์โดยใช้สิ่งนั้นกับผู้เข้าร่วม KVM ของฉัน

ระบบไฟล์ Passthrough

เอกสารเกี่ยวกับการแชร์ไดเรกทอรีโฮสต์ KVM กับผู้เข้าร่วม KVM (Linux) มีอยู่ที่นี่บนเว็บไซต์ virt-manager หน้ามีบรรดาศักดิ์: ไฟล์โฮสต์ตัวอย่างการใช้ร่วมกันกับบุคคลทั่วไป

การตั้งค่าแซมบ้า

เว็บไซต์ linux-kvm ยังมีคำแนะนำสำหรับการตั้งค่า Samba เอกสารที่มีอยู่ที่นี่หัวข้อ: เคล็ดลับ: วิธีที่คุณสามารถแบ่งปันไฟล์บนโฮสต์ลินุกซ์ของคุณด้วยการใช้ Windows บุคคลทั่วไปใช้แซมบ้า


thumbs up สำหรับส่วน "การตั้งค่า samba" มันเป็นวิธีที่ปลอดภัยยิ่งขึ้น
pqnet

@pqnet: คุณช่วยให้คุณมีคุณสมบัติได้อย่างไรและทำไมจึงปลอดภัยกว่า
0xC0000022L

4
@ 0xC0000022L เพราะไม่ได้ขึ้นอยู่กับ virtualizator ที่สามารถหลอกลวงระบบปฏิบัติการของแขกได้อย่างมีประสิทธิภาพซึ่งอาจแตกหักหากระบบปฏิบัติการเปลี่ยนแปลง Samba เป็นโปรโตคอลเครือข่ายดังนั้นระบบปฏิบัติการของแขกมีความคาดหวังน้อยกว่าสิ่งที่สามารถทำได้และไม่สามารถทำได้
pqnet

6

ตัวจัดการไฟล์เริ่มต้นของทั้งสองสภาพแวดล้อมเดสก์ท็อป Gnome และ KDE สามารถเข้าถึงทรัพยากรที่ใช้ร่วมกันของ windows โดยใช้โปรโตคอล SMB
คุณไม่จำเป็นต้องติดตั้งเซิร์ฟเวอร์แซมบ้าบนเครื่องโฮสต์ Linuxเพราะ Windows OS มาพร้อมกับโปรโตคอลการสื่อสารแซมบ้าในตัวแล้ว

สมมติว่า guest OS ของคุณนั้นเป็น " Windows XP " เช่นเลือกโฟลเดอร์ที่คุณต้องการแชร์หรือสร้างมันขึ้นมาเพื่อจุดประสงค์นั้นเช่น "hostshare" และคลิกขวาบน-> " คุณสมบัติ " -> " การแบ่งปัน " แท็บ->เลือก: " แชร์โฟลเดอร์นี้บนเครือข่าย " และ " อนุญาตให้ผู้ใช้เครือข่ายเปลี่ยนไฟล์ของฉัน "

ณ จุดนี้ให้แน่ใจว่าไฟร์วอลล์ของ windows ให้การเข้าถึงไฟล์และเครื่องพิมพ์ที่ใช้ร่วมกัน ไปที่ " เริ่มต้นเมนู " -> " การตั้งค่า " -> " แผงควบคุม " -> " Windows Firewall " -> " ข้อยกเว้น " แท็บ->เลือก: -> " ไฟล์และเครื่องพิมพ์ร่วมกัน "

ตรวจสอบให้แน่ใจว่าเครื่องโฮสต์ Linux สามารถเห็นได้จาก Windows guest VM ผ่านเครือข่าย ดังนั้นจากประเภทบรรทัดคำสั่งของ windows: " ping 10.0.0.12 " โดยที่ในกรณีนี้ (เป็นตัวอย่าง) "10.0.0.12" เป็นที่อยู่ IP ของโฮสต์ คุณต้องเปลี่ยนเป็นของคุณเอง หากคุณไม่มีคำตอบของเสียงก้องคุณจะต้องแก้ไขปัญหานั้น
และทำสิ่งเดียวกันจากบรรทัดคำสั่ง Linux: " ping -c3 192.168.122.216 " โดยที่ตัวเลขเหล่านี้ (ตัวอย่าง) เป็นของที่อยู่ IP ที่กำหนดให้กับแขก VM แขก; คุณต้องเปลี่ยนเป็นของคุณเอง

จากเครื่องโฮสต์ Linux เปิด " Nautilus " และไปที่ " ไฟล์ " -> " เชื่อมต่อกับเซิร์ฟเวอร์ " ->เข้าสู่"กล่องที่อยู่เซิร์ฟเวอร์ " ประเภท: " smb / 192.168.122.216 " -> " เชื่อมต่อ "
หน้าต่าง Nautilus จะเปิดขึ้นพร้อมกับทรัพยากรที่สามารถเรียกดูได้ของเซิร์ฟเวอร์ Samba ในตัวของ Windows คุณจะสามารถดูและเข้าถึงเนื้อหาของโฟลเดอร์ windows " hostshare " นั่นคือทั้งหมด!


2

ฉันเชื่อว่า @slm ได้ให้คำตอบที่ดีที่สุด อย่างไรก็ตามมีอีกกรณีการใช้งาน ทางเลือกนี้เป็นบิตของการแฮ็ก

คู่มือหยาบ อย่าพิจารณาคำสั่งที่ชัดเจนเหล่านี้:

  1. สร้างไฟล์รูปภาพ (ms-dos floppy หรือ ISO-9660 CD)
  2. จัดรูปแบบภาพด้วยระบบไฟล์เช่น mkfs.msdos
  3. คัดลอกและจัดการไฟล์บนภาพตามต้องการเช่นกับ mcopy และอื่น ๆ
  4. เมานต์อิมเมจบน Guest VM cd-rom หรือฟลอปปีไดรฟ์

มันไม่เหมาะ แต่สามารถทำงานได้หาก Guest VM ของคุณไม่อนุญาตการเชื่อมต่อโปรโตคอลเครือข่ายระหว่าง dom0 และ Guest (เช่นระหว่างช่วง VPN ที่ปิด)

ข้อมูลเพิ่มเติมที่นี่:

/programming//q/11202706/3407600


1

การแชร์แบบอ่านอย่างเดียวเป็นไปได้ (แขกของ Windows มี R / W และโฮสต์ Linux สามารถอ่านได้อย่างเดียว) เนื่องจากโฮสต์ Linux สามารถติดตั้ง NTFS บนอุปกรณ์ลูปแบ็คได้สมมติว่าคุณใช้ที่เก็บชนิด 'ดิบ' สำหรับแขกของ Windows:

สมมติว่าคุณมี Win.img เป็นอิมเมจแบบดิบมันจะถูกจำลองเป็นดิสก์

  • ขั้นตอนที่ 1: ค้นหาออฟเซ็ตของระบบไฟล์ของคุณ (เนื่องจากเป็นดิสก์) โดยใช้ fdisk:
$ fdisk -lu Win.img

Disk Win.img: 16.3 GB, 16252928000 bytes
255 heads, 63 sectors/track, 1975 cylinders, total 31744000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3a793a79

    Device Boot      Start         End      Blocks   Id  System
    Win.img   *          63    31712309    15856123+   7  HPFS/NTFS/exFAT

ตอนนี้คำนวณ offset = 63 x 512 = 32256

  • ขั้นตอนที่ 2: ติดตั้ง
mount Win.img /mntpoint -o ro,loop,offset=32256

ข้อควรระวัง

คุณสามารถเมานท์ RW ได้ดังนั้น Linux จึงสามารถเขียนลงไปได้แต่ระบบไฟล์ของคุณจะเสียหาย! เพราะทั้ง Linux และ Windows ของคุณกำลังเข้าถึงระบบไฟล์ในเวลาเดียวกัน! พวกเขาอาจจัดสรรบล็อกฟรีเดียวกันเพื่อเขียนไฟล์ที่พวกเขาต้องการเขียน!

การอ่าน Linux ไม่เสถียรในบางกรณี

ด้วยวิธีนี้ระบบไฟล์มีความปลอดภัยและส่วนใหญ่ตกลงที่จะอ่านมีเสถียรภาพ อย่างไรก็ตามอย่างที่ฉันบอกว่าพวกเขาเข้าถึงระบบไฟล์ในเวลาเดียวกันดังนั้นเมื่อ windows พยายามเขียนบางอย่างลีนุกซ์อาจไม่ได้รับแจ้งและอ่านสิ่งที่เสียหาย อย่างไรก็ตามหากคุณใช้อย่างระมัดระวังการอ่านควรมีเสถียรภาพมาก


3
มันน่าเชื่อถือแค่ไหน? ข้อมูลอาจอยู่ในแคช การเขียนจะไม่เป็นเรื่องเกี่ยวกับการอ่านบนระบบอื่น
ctrl-alt-delor

0

ฉันใช้Dokany + Win-SSHFSเพื่อติดตั้งโฟลเดอร์ระยะไกลผ่าน ssh ปล่อยให้พวกเขาเล่นเกม catch-up ไม่ใช่วิธีอื่น ๆ ของ < รอยยิ้มชั่วร้าย >


0

วิธีการแก้ปัญหาของ Andy ทำงานให้ฉันเป็นเจ้าภาพเดเบียนและแขก windows โปรดทราบว่าฉันมีเครื่องมือเครื่องเทศสำหรับแขกติดตั้งพร้อมไดรเวอร์เครือข่ายพิเศษจาก redhat

นอกจากนี้ฉันต้องลบการป้องกันรหัสผ่านผ่าน smb ที่นี่ที่ลิงก์ฉันพบวิธีการลบรหัสผ่าน https://pureinfotech.com/setup-network-file-sharing-windows-10/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.