Użyj programu virt-manager do udostępniania plików między hostem Linux a gościem Windows?

26

Czy można użyć opcji wirtualnego sprzętu „Fileystem Passthrough” wewnątrz virt-manager, aby udostępnić folder na moim hoście Linux gościowi Windows? Znalazłem kilka samouczków dotyczących tego, jak to zrobić z gościem z systemem Linux, ale kiedy próbuję tego z moim gościem z systemu Windows, pojawia się następujący komunikat o błędzie podczas próby uruchomienia maszyny wirtualnej:

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

Próbowałem uzyskać trochę dokumentacji, ale jedyne, co mogłem znaleźć, to oficjalna strona z linkiem do FAQ i „zrzutów ekranu” .

Blaker
źródło

Odpowiedzi:

16

Nie sądzę, że jest to możliwe przy użyciu gości Windows. Zwykle konfiguruję serwer Samba na hoście Linux KVM, a następnie udostępniam folder, używając go moim gościom KVM.

System plików Passthrough

Dokumentacja dotycząca udostępniania katalogu hosta KVM gościom KVM (Linux) jest dostępna tutaj na stronie virt-manager. Strona nosi tytuł: Przykład udostępniania plików hosta gościowi .

Konfigurowanie Samby

Witryna linux-kvm zawiera także wskazówki dotyczące konfigurowania Samby. Ta dokumentacja jest dostępna tutaj, zatytułowana: Wskazówka: Jak udostępniać pliki na hoście Linux dla gościa Windows za pomocą Samby .

slm
źródło
kciuki za część „konfigurowanie samby”. Jest to bezpieczniejsze podejście
pqnet
@pqnet: czy mógłbyś zakwalifikować się w jaki sposób i dlaczego jest to bezpieczniejsze?
0xC0000022L
4
@ 0xC0000022L, ponieważ nie zależy to od tego, czy wirtualizator może skutecznie oszukać system operacyjny gościa, co może się zepsuć w przypadku zmiany systemu operacyjnego. Samba jest protokołem sieciowym, dlatego system operacyjny gościa ma mniejsze oczekiwania co do tego, co może i nie może na nim zrobić.
pqnet
6

Domyślne menedżery plików w środowisku Gnome i KDE mogą łatwo uzyskiwać dostęp do zasobów współdzielonych z systemem Windows za pomocą protokołu SMB.
Nie trzeba instalować serwera samby na komputerze z systemem Linux, ponieważ system operacyjny Windows jest już wyposażony we wbudowane protokoły komunikacyjne samby.

Powiedzmy, że twoim systemem operacyjnym jest na przykład „ Windows XP ”, wybierz folder, który chcesz udostępnić, lub po prostu utwórz go w tym celu, np. „Hostshare” i kliknij go prawym przyciskiem myszy ->właściwości-> karta „ udostępnianie-> wybierz: „ Udostępnij ten folder w sieci ” i „ Pozwól użytkownikowi sieci na zmianę moich plików ”.

W tym momencie upewnij się, że zapora systemu Windows zapewnia dostęp do udostępnionych zasobów plików i drukarek. Przejdź do „ menu Start->ustawienia->Panel sterowania->zapora systemu Windows-> karta „ Wyjątki-> wybierz: -> „ Udostępnianie plików i drukarek ”.

Upewnij się, że maszyna hosta systemu Linux jest widoczna z wirtualnej maszyny wirtualnej systemu Windows za pośrednictwem sieci. Zatem z linii poleceń systemu Windows wpisz: „ ping 10.0.0.12 ”, gdzie w tym przypadku (jako przykład) „10.0.0.12” to adres IP hosta; musisz to zmienić na własne. Jeśli nie masz odpowiedzi echa, musisz przejść do rozwiązania tego problemu.
I zrób to samo z wiersza poleceń systemu Linux: „ ping -c3 192.168.122.216 ”, gdzie te liczby (jako przykład) należą do adresu virt-IP przypisanego do maszyny wirtualnej gościa; musisz to zmienić na własne.

Z hosta Linux-a otwórz „ Nautilus ” i przejdź do „ Plik->Połącz z serwerem-> W polu „ Adres serwera ” wpisz: „ smb / 192.168.122.216->Połącz ”.
Otworzy się okno Nautilus z przeglądalnymi zasobami wbudowanego w Samba serwera Windows. Będziesz mógł zobaczyć zawartość folderu Windows „ hostshare ” i uzyskać do niej dostęp . To wszystko!

Andy
źródło
2

Wierzę, że @slm dostarczył najlepszą odpowiedź. JEDNAK istnieje inny przypadek użycia. Ta alternatywa to jednak trochę hack.

Szorstki przewodnik. Nie bierz pod uwagę tych ostatecznych poleceń:

  1. utwórz plik obrazu (dyskietka ms-dos lub płyta CD ISO-9660)
  2. sformatuj obraz w systemie plików, np. mkfs.msdos
  3. kopiować i manipulować plikami na obrazie w razie potrzeby, na przykład za pomocą mcopy i in
  4. zamontuj obraz na dysku CD-ROM lub stacji dyskietek Guest VM

Nie jest to idealne, ale może działać, jeśli maszyna wirtualna gościa nie zezwala na połączenia protokołu sieciowego między dom0 a gościem (na przykład podczas zamkniętej sesji VPN).

Więcej informacji tutaj:

/programming//q/11202706/3407600

0x Owczarek
źródło
1

Możliwy jest udział tylko do odczytu (gość Windows ma R / W, a host Linux może tylko czytać), ponieważ host Linux może zamontować NTFS na sprzężeniu zwrotnym, załóżmy, że używasz pamięci typu „raw” dla gościa Windows:

Załóżmy, że masz plik Win.img jako surowy obraz, jest on emulowany jako dysk.

  • Krok 1: Znajdź przesunięcie systemu plików (ponieważ jest to dysk) za pomocą 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

Teraz obliczyć przesunięcie = 63 x 512 = 32256

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

UWAGA

Możesz go zamontować RW, a więc Linux może do niego pisać, ale twój system plików zostanie uszkodzony! Ponieważ zarówno Linux, jak i Windows uzyskują dostęp do systemu plików W TYM SAMYM CZASIE! Mogą przydzielić te same bezpłatne bloki do zapisu plików, które chcą zapisać!

Odczyt Linuksa nie jest stabilny, w rzadkich przypadkach

Dzięki tej metodzie system plików jest bezpieczny i przeważnie OK zapewnia stabilny odczyt. Jednak, jak powiedziałem, jednocześnie uzyskują dostęp do systemu plików, a zatem gdy Windows próbuje coś napisać, Linux może nie zostać poinformowany, a tym samym odczytać coś uszkodzonego. Jeśli jednak użyjesz go ostrożnie, odczyt powinien być bardzo stabilny.

Robin Hsu
źródło
3
Jak to jest niezawodne? Dane mogą znajdować się w pamięci podręcznej. Zapisy nie będą atomowe w stosunku do odczytów w innym systemie.
ctrl-alt-delor
0

Używam Dokany + Win-SSHFS do montowania zdalnych folderów przez ssh. Niech grać catch-up, a nie na odwrót < zły uśmiech >

Arie Skliarouk
źródło
0

Rozwiązanie Andy działało dla mnie, hosta Debiana i gościa systemu Windows. Zauważ, że mam zainstalowane narzędzia spice-guest-special ze specjalnym sterownikiem sieci od redhat.

Ponadto musiałem usunąć ochronę hasłem przez smb Tutaj pod tym linkiem znalazłem sposób na usunięcie hasła https://pureinfotech.com/setup-network-file-sharing-windows-10/

Thierry Vilmart
źródło