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
私はいくつかのドキュメントを調達してみましたが、見つけることができたのは FAQ and "some screenshots")にリンクしている公式ページ だけでした。
Windowsゲストを使用してこれが可能であるとは思わない。私は通常、Linux上にSambaサーバーをセットアップしますKVMホスト、次にそれを使用してフォルダーを共有しますKVMゲストに。
KVMホストのディレクトリとKVMゲスト(Linux))の共有に関するドキュメントは、virt-managerのWebサイトから入手できます。このページのタイトルは次のとおりです。- ゲストとホストファイルを共有する例 。
Linux-kvmのWebサイトには、Sambaの設定方法も記載されています。 ヒント:Linuxホスト上のファイルをWindowsゲストとSambaを使用して共有する方法 。
GnomeとKDEの両方のデスクトップ環境のデフォルトのファイルマネージャーは、SMBプロトコルを使用して、Windows共有リソースに簡単にアクセスできます。
Windows OSのため、LinuxホストマシンにSambaサーバーをインストールする必要はありません。組み込みのSamba通信プロトコルがすでに付属しています。
あなたのゲストO.S.たとえば、「Windows XP」の場合、共有するフォルダを選択するか、そのためのフォルダを作成します。たとえば、 "hostshare"と右クリック-> "properties" -> "sharing "タブ->選択:"ネットワーク上でこのフォルダを共有 "および"ネットワークユーザーがファイルを変更することを許可する "。
この時点で、Windowsのファイアウォールが共有ファイルとプリンタリソースへのアクセスを許可していることを確認してください。 「スタートメニュー」に移動-> "settings "->"コントロールパネル "->"windows firewall "->"Exceptions "タブ->選択:-> "ファイルとプリンターの共有"。
LinuxホストマシンがWindowsゲストV.Mから表示できることを確認します。ネットワークを介して。したがって、Windowsのコマンドラインタイプから:(ping 10.0.0.12)この場合(例として)「10.0.0.12」はホストですIPアドレス;自分で変更する必要があります。エコーの応答がない場合は、トラブルシューティングを行う必要があります。
そしてLinuxコマンドラインから同じことを行います: "ping -c3 192.168.122.216"、ここでこれらの数字(例として)ゲストVMに割り当てられたvirt-IPアドレスに属します。自分で変更する必要があります。
Linuxホストマシンから「Nautilus」を開き、「File」に移動します-> "Connect to Server" -> Into "サーバーアドレス "ボックスタイプ:"smb/192.168.122.216 "-> = "Connect"。
Nautilusウィンドウが開き、Windows組み込みのSambaサーバーの参照可能なリソースが表示されます。 「hostshare」のWindowsフォルダーのコンテンツを表示してアクセスできます。それで全部です!
@slmが最良の答えを提供してくれたと思います。ただし、別のユースケースがあります。ただし、この代替手段は少しハックです。
ラフガイド。これらの決定的なコマンドを考慮しないでください:
理想的ではありませんが、ゲストVMがdom0とゲスト間のネットワークプロトコル接続を許可しない場合(VPNセッションが閉じているときなど)は機能します。
詳細はこちら:
読み取り専用の共有が可能です(WindowsゲストにはR/Wがあり、Linuxホストは読み取り専用です)。LinuxホストはループバックデバイスにNTFSをマウントできるため、Windowsゲストに「raw」タイプのストレージを使用するとします。
Win.imgをrawイメージとして持っていると仮定すると、ディスクとしてエミュレートされます。
$ 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
次に、オフセットを計算します= 63 x 512 = 32256
mount Win.img /mntpoint -o ro,loop,offset=32256
[〜#〜]注意[〜#〜]
RWをマウントして、Linuxがそれに書き込むことができますbutファイルシステムが破損します! LinuxとWindowsの両方がファイルシステムにアクセスしているためAT同じ時間!書き込みたいファイルを書き込むために同じ空きブロックを割り当てる可能性があります!
Linuxの読み取りが安定しない、まれなケース
この方法では、ファイルシステムは安全であり、安定した読み取りを行うことはほとんど問題ありません。ただし、前述したように、それらは同時にファイルシステムにアクセスするため、Windowsが何かを書き込もうとしたときに、Linuxに通知されず、破損したものを読み取る可能性があります。ただし、慎重に使用すると、読み取りは非常に安定しているはずです。
アンディの解決策は、私、debian Host、およびWindowsゲストで機能しました。 redhatの特別なネットワークドライバーを使用してspice-guest-toolsをインストールしていることに注意してください。
さらに、smbを使用してパスワード保護を削除する必要がありました。このリンクで、パスワードを削除する方法を見つけました https://pureinfotech.com/setup-network-file-sharing-windows-10/