Gunakan virt-manager untuk berbagi file antara host Linux dan tamu Windows?

26

Apakah mungkin untuk menggunakan opsi perangkat keras virtual "Filesystem Passthrough" di dalam virt-manager untuk berbagi folder di host Linux saya dengan tamu Windows saya? Saya menemukan beberapa tutorial tentang cara melakukan ini dengan tamu Linux, tetapi ketika saya mencoba ini dengan tamu Windows saya, saya menerima pesan kesalahan berikut ketika mencoba untuk memulai 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

Saya mencoba mencari beberapa dokumentasi tetapi yang saya temukan hanyalah halaman resmi yang terhubung ke FAQ dan "beberapa tangkapan layar" .

Blaker
sumber

Jawaban:

16

Saya tidak percaya ini mungkin menggunakan tamu Windows. Saya biasanya menyiapkan server Samba pada host KVM Linux dan kemudian membagikan folder menggunakan itu untuk tamu KVM saya.

Sistem File Passthrough

Dokumentasi tentang berbagi direktori host KVM dengan tamu KVM (Linux) tersedia di sini di situs web virt-manager. Halaman ini berjudul: Contoh Berbagi file Host dengan Tamu .

Menyiapkan Samba

Situs web linux-kvm juga berisi petunjuk untuk mengatur Samba. Dokumentasi itu tersedia di sini, berjudul: Tip: Bagaimana Anda dapat berbagi file di Linux Host Anda dengan Windows Guest menggunakan Samba .

slm
sumber
jempol untuk bagian "menyiapkan samba". Ini adalah pendekatan yang lebih aman
pqnet
@ pqnet: bisakah Anda memenuhi syarat bagaimana dan mengapa ini lebih aman?
0xC0000022L
4
@ 0xC0000022L karena tidak bergantung pada virtualizator yang bisa menipu sistem operasi tamu, yang mungkin rusak jika sistem operasi berubah. Samba adalah protokol jaringan, sehingga sistem operasi tamu memiliki harapan yang lebih rendah pada apa yang dapat dan tidak dapat dilakukan di atasnya.
pqnet
6

Manajer file default dari lingkungan desktop Gnome dan KDE dapat dengan mudah mengakses sumber daya yang dibagikan windows menggunakan protokol SMB.
Anda tidak perlu menginstal server samba pada mesin host Linux karena OS Windows sudah dilengkapi dengan protokol komunikasi samba bawaan.

Misalkan OS tamu Anda adalah " Windows XP " misalnya, pilih folder yang ingin Anda bagikan atau buat saja untuk tujuan itu, mis. "Hostshare" dan klik kanan padanya -> " properties " -> " sharing " Tab -> pilih: " Bagikan folder ini di jaringan " dan " Izinkan pengguna jaringan mengubah file saya ".

Pada titik ini pastikan bahwa firewall windows memberikan akses ke file bersama dan sumber daya printer. Pergi ke " mulai menu " -> " Pengaturan " -> " Control Panel " -> " jendela firewall " -> " Pengecualian " Tab -> pilih: -> " File dan Printer Sharing ".

Pastikan bahwa mesin host Linux dapat dilihat dari VM tamu Windows melalui jaringan. Jadi, dari jenis perintah baris windows: " ping 10.0.0.12 " di mana dalam kasus ini (sebagai contoh) "10.0.0.12" adalah alamat IP host; Anda harus mengubahnya sendiri. Jika Anda tidak memiliki respons gema, Anda harus masuk ke pemecahan masalah itu.
Dan lakukan hal yang sama dari baris perintah Linux: " ping -c3 192.168.122.216 ", di mana angka-angka ini (sebagai contoh) milik alamat virt-IP yang ditugaskan untuk VM tamu; Anda harus mengubahnya ke milik Anda sendiri.

Dari mesin host Linux, buka " Nautilus " dan pergi ke " File " -> " Connect to Server " -> Ke dalam kotak " Server Address " ketik: " smb / 192.168.122.216 " -> " Connect ".
Jendela Nautilus akan terbuka dengan sumber daya yang dapat ditelusuri dari server Samba bawaan windows Anda. Anda akan dapat melihat dan mengakses konten folder windows " hostshare ". Itu saja!

Andy
sumber
2

Saya percaya @slm telah memberikan jawaban terbaik. NAMUN, ada kasus penggunaan lain. Tapi alternatif ini sedikit meretas.

Panduan kasar. Jangan pertimbangkan perintah definitif ini:

  1. buat file gambar (ms-dos floppy atau ISO-9660 CD)
  2. memformat gambar dengan sistem file, mis. mkfs.msdos
  3. menyalin dan memanipulasi file pada gambar sesuai kebutuhan, seperti dengan mcopy, et al
  4. pasang image pada Guest VM cd-rom atau floppy drive

Ini tidak ideal, tetapi dapat berfungsi jika Guest VM Anda tidak mengizinkan koneksi protokol jaringan antara dom0 dan Guest (seperti saat sesi VPN tertutup).

Info lebih lanjut di sini:

/programming//q/11202706/3407600

0xSheepdog
sumber
1

Berbagi hanya-baca dimungkinkan (tamu Windows memiliki R / W, dan host Linux hanya dapat membaca), karena host Linux dapat me-mount NTFS pada perangkat loopback, misalkan Anda menggunakan penyimpanan tipe 'mentah' untuk tamu Windows:

Asumsikan Anda memiliki Win.img sebagai gambar mentah, ini ditiru sebagai disk.

  • Langkah 1: Temukan offset sistem file Anda (karena ini adalah disk) menggunakan 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

Sekarang, hitung offset = 63 x 512 = 32256

  • Langkah 2: pasang
mount Win.img /mntpoint -o ro,loop,offset=32256

PERINGATAN

Anda dapat memasangnya RW, dan dengan demikian Linux dapat menulisnya, tetapi sistem file Anda akan rusak! Karena Linux dan Windows Anda sedang mengakses sistem file PADA SAAT YANG SAMA! Mereka dapat mengalokasikan blok gratis yang sama untuk menulis file yang ingin mereka tulis!

Linux read tidak stabil, dalam kasus yang jarang terjadi

Dengan metode ini sistem file aman, dan sebagian besar OK untuk membaca stabil. Namun, seperti yang saya katakan, mereka mengakses sistem file pada saat yang sama, dan dengan demikian Ketika windows mencoba menulis sesuatu, Linux mungkin tidak diberitahu, dan dengan demikian membaca sesuatu yang rusak. Namun, jika Anda menggunakannya dengan hati-hati, bacaan harus sangat stabil.

Robin Hsu
sumber
3
Seberapa andal ini? Data bisa di cache. Menulis tidak akan menjadi atom sehubungan dengan membaca di sistem lain.
ctrl-alt-delor
0

Saya menggunakan Dokany + Win-SSHFS untuk me-mount folder jauh melalui ssh. Biarkan mereka memainkan game catch-up, bukan sebaliknya < evil cengiran >

Arie Skliarouk
sumber
0

Solusi Andy bekerja untuk saya, debian host dan windows guest. Perhatikan bahwa saya memiliki spice-guest-tools yang diinstal dengan driver jaringan khusus dari redhat.

Selain itu, saya harus menghapus proteksi kata sandi melalui seseorang di sini di tautan itu saya menemukan cara menghapus kata sandi https://pureinfotech.com/setup-network-file-sharing-windows-10/

Thierry Vilmart
sumber