GNU/Linux >> Znalost Linux >  >> Linux

Windows – sdílená složka mezi hostem Qemu Windows a hostitelem Linuxu?

V minulosti jsem používal Virtual Box, který má velmi dobrou podporu pro sdílení složky na hostiteli s hostem Windows. Hledám podobnou funkcionalitu pro QEMU.

Dokumentace navrhuje vystavit server Samba běžící někde v síti nebo použít -net user,smb=/path/to/folder ke spuštění serveru samba.

Neměl jsem štěstí s -net user,smb možnost QEMU. Jediné, co dělá, je spuštění smbd (která je v konfliktu s jinou lokálně spuštěnou službou kvůli konfliktu portů). Stačí říci, že je to nepoužitelné, zvláště s ohledem na více hostů. (Pro Linux -virtfs (Plán 9) lze použít pro snadné sdílení složek.)

Další problémy Samby jsou, že se neomezuje na sdílení složek, ale také sdílení tiskáren, mapování uživatelů a podobně. Vše, co potřebuji, je sdílet jednu (nebo více?) složek s hostem Windows.

Existuje alternativní metoda sdílení složek pro QEMU, která funguje s hostem Windows?

Nebo existuje způsob, jak nakonfigurovat Sambu tak, aby se omezila na velmi omezenou sadu funkcí a integrovala ji do QEMU? Mělo by:

  • Ne každý v síti by měl mít přístup ke složce.
  • včetně místních uživatelů (pokud je to možné).
  • Neposkytuje jiné funkce (sdílení tiskáren).
  • Případ použití:vystavte adresář git systému Windows, zkompilujte jej ve Windows a použijte Linux k analýze.
  • Mějte přijatelnou rychlost, systém Windows používá virtio-scsi a virtio-net.
  • Budete moci sdílet složku z hostitele systému Linux s hostem systému Windows 7.

Přijatá odpověď:

Vestavěná služba Samba QEMU

Nefunkční -net user,smb možnost byla způsobena nekompatibilitou s novějšími verzemi Samby (>=4). Toto je opraveno v QEMU v2.2.0 a novějších s těmito změnami:

  • b87b8a8 slirp/smb:Přesuňte adresář ncalrpc do tmp (od verze 2.1.0)
  • 44d8d2b net/slirp:zadejte logbase pro smbd (od verze 2.2.0)
  • 7912d04 slirp/smbd:upravte/nastavte několik parametrů ve vygenerovaném souboru smbd.conf (od verze 2.2.0 také zakáže tiskárnu)

(Debian backportoval poslední dva patche na 2.1+dfsg-6, který je přítomen v Jessie.)

Použití

Jednu složku můžete exportovat jako \10.0.2.4qemu při použití uživatelské sítě:

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

Po úspěšném spuštění QEMU s těmito možnostmi se zobrazí nový /tmp/qemu-smb.*-*/ bude vytvořen adresář obsahující smb.conf . Pokud jste dostatečně rychlí, můžete tento soubor upravit tak, aby byly cesty pouze pro čtení nebo exportovat více složek.

Provozní režim

Démon samba se spustí vždy, když se k portům 139 nebo 445 přistupuje přes „uživatelskou“ síť. Komunikace probíhá přes standardní vstup/výstup/chybu procesu smbd. To je důvod, proč novější démoni selhali, zapsali by svou chybovou zprávu do roury místo zpráv protokolu.

Díky tomuto způsobu provozu nebude démon naslouchat na hostitelských portech, a proto bude přístupný pouze hostovi. Ostatní klienti v síti a dokonce ani místní uživatelé nemohou získat přístup ke složkám pomocí tohoto démona.

Související:Windows 7 – Selhání Konfigurace aktualizací systému Windows Vrácení změn Zasekne se/zasekne?

Vzhledem k tomu, že sdílení tiskáren QEMU v2.2.0 je zcela zakázáno prostřednictvím konfigurace samby, další starost je zde pryč.

Rychlost závisí na síťovém adaptéru, proto se doporučuje použít virtio netkvm ovladač pod Windows.

Všimněte si také, že démon se spouští podle své absolutní cesty (obvykle /usr/sbin/smbd ), jak je uvedeno v době kompilace (pomocí --smbd volba). Kdykoli potřebujete vyzkoušet nový binární kód nebo vložit smbd , budete muset upravit soubor na této cestě.

Další upozornění

Spustitelné soubory (*.exe ) musí být spustitelný na hostiteli (chmod +x FILE ), aby měl host oprávnění ke spuštění. Chcete-li povolit spuštění libovolného souboru, přidejte acl allow execute always = True možnost sdílení.

Příklad pouze pro čtení Konfigurace smb.conf, která umožňuje spuštění libovolného souboru (na základě QEMU v2.2.0):

...
[qemu]
path=/home/peter/windows
read only=yes
guest ok=true
force user=peter
acl allow execute always = True

Linux
  1. Windows Host sdílená složka v Ubuntu 20.04?

  2. Použití Samby ke sdílení složky od hosta Linuxu s hostitelem Windows ve VirtualBoxu

  3. Kopírování a vkládání mezi hostem Hyper-V a hostitelem

  1. Linux – sdílení souborů mezi hostitelem Linuxu a hostem Windows?

  2. Jak získat přístup ke sdílené složce Windows z Linuxu?

  3. skript pro sledování nových souborů ve sdílené složce (hostitel systému Windows, host linux)

  1. Vytvořte SSH spojení mezi Windows a Linuxem

  2. Sdílejte soubory mezi počítači se systémem Linux a Windows

  3. rozdíl kopírovat obsah složky mezi /. a /* v linuxu