私は過去にVirtual Boxを使ったことがあり、ホストのフォルダをWindowsゲストと共有する機能をすばやくサポートしています。 QEMUに似た機能を探しています。
この資料では、ネットワークのどこかで実行されているSambaサーバーを公開したり、-net user,smb=/path/to/folder
Sambaサーバーを起動したりすることをお勧めします。
私はQEMUを選択していません-net user,smb
。それがすることは始まりですsmbd
(ポートの競合のためにローカルで実行されている他のサービスと競合します)。確かに、これは特に複数のゲストを検討するときには使用できません。 (Linuxの場合-virtfs
(Plan 9)を使用すると、フォルダを簡単に共有できます。)
Sambaのもう1つの問題は、フォルダ共有に限定されず、プリンタ共有、ユーザーマッピングなどを実行できることです。私にとって必要なのは、Windowsゲストとフォルダ(または複数)を共有することだけです。
Windowsクライアントで利用可能なQEMU用の代替フォルダを共有する方法はありますか?
それとも、Sambaを非常に限られた機能セットに制限し、それをQEMUに統合するように設定する方法はありますか?それは次のようになります。
- ネットワーク内の誰もがフォルダにアクセスできるわけではありません。
- 可能であれば、ローカルユーザーを含めてください。
- アドイン(プリンタ共有)は提供されていません。
- ユースケース:gitディレクトリをWindowsに公開し、Windowsでコンパイルし、Linuxを使用して分析します。
- 許容できる速度があり、Windowsではvirtio-scsiとvirtio-netを使用します。
- Linux ホストのフォルダを Windows 7 ゲストと共有する機能。
答え1
QEMUに組み込まれたSambaサービス
-net user,smb
このオプションは、最新のSambaバージョン(> = 4)との互換性がないため機能しません。この問題は、QEMU v2.2.0 以降で次の変更で解決されました。
- b87b8a8 slirp/smb: ncalrpc ディレクトリを tmp に移動(v2.1.0から)
- 44d8d2b net/slirp: smbd のログベースの指定(v2.2.0から)
- 7912d04 slirp/smbd: 生成された smbd.conf で複数のパラメータを変更/設定(v2.2.0以降、プリンタも無効になっています)
(DebianはJessieにあるように、後者の2つのパッチを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.*-*/
包含が生成されますsmb.conf
。十分に速い場合は、このファイルを変更してパスを読み取り専用にするか、より多くのフォルダをエクスポートできます。
動作モード
Sambaデーモンは、「ユーザー」ネットワークを介してポート139または445にアクセスするたびに実行されます。通信はsmbdプロセスの標準入出力/エラーを介して行われます。これが最新デーモンが失敗する理由です。プロトコルメッセージの代わりにパイプにエラーメッセージを書き込みます。
この方法では、デーモンはホストポートでリッスンしないため、ゲストだけにアクセスできます。したがって、ネットワーク上の他のクライアントだけでなく、ローカルユーザーもこのデーモンを使用してフォルダにアクセスできません。
QEMU v2.2.0プリンタ共有はSamba設定で完全に無効になるため、心配する必要はありません。
速度はネットワークアダプタによって異なりますので、お勧めします。バーティオnetkvm
ドライバーWindowsで。
/usr/sbin/smbd
また、デーモンは通常、コンパイル時に指定された絶対パスでオプションを使用して実行されます--smbd
。新しいバイナリを試すか挿入する必要があるたびに、smbd
このパスのファイルを変更する必要があります。
その他の注意事項
ゲストが実行権限を持つには、実行可能ファイル(*.exe
)がホスト()で実行可能である必要があります。chmod +x FILE
ファイルの実行を許可するには、acl allow execute always = True
このオプションを共有に追加します。
はい読み取り専用smb.conf設定を使用すると、すべてのファイルを実行できます(QEMU v2.2.0ベース)。
... [qemu] パス=/ホーム/ピーター/ウィンドウ 読み取り専用=はい 良い顧客=事実 強制ユーザー=ピーター acl 常に実行を許可 = True
答え2
存在する2018異なるユーザー間でフォルダを共有する簡単な方法Linuxオーナー&Windows仮想マシンは〜できるようにするリモート開発計画Windowsでguest
接続vm
Remminaリモートデスクトップクライアント&共有フォルダを有効にする:
これにより、下にフォルダが作成されます。このコンピュータ(Linuxの共有フォルダhostname
)と\\tsclient\shared-folder-name
ネットワーク共有内guest
。ネットワークドライブをマッピングすることもできます。
このソリューションはいいえ実行する必要があります
samba
。libvirt
/でテストされていますが、virt-manager
すべての仮想化で動作する必要があります。
答え3
匿名性を使用して簡単なタスク設定を完了しました。ネットワークファイルシステム出口。かかる「NFSサービス」を有効にするWindowsクライアントでregeditを使用して一致するDWORD値を設定しますAnonymousUid
。AnonymousGid
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default
その後、command.comコマンドでマウントできますmount -o anon \\10.10.11.11\mnt\diskx\nfsshare Z:
。ここで、10.10.11.11はLinuxホストのIPアドレスであり、\mnt\diskx\nfsshare
定義されたエクスポートパスです/etc/exports
。
バラよりスクリーンショットで詳細な説明