第20章 ホストとその仮想マシン間でのファイルの共有
場合によっては、ホストシステムとそれが実行する仮想マシン (VM) 間でデータを共有することが頻繁に必要になります。これを迅速かつ効率的に行うには、virtio ファイルシステム (virtiofs) を使用できます。
20.1. コマンドラインを使用してホストと Windows 仮想マシン間でファイルを共有する リンクのコピーリンクがクリップボードにコピーされました!
RHEL 10 をハイパーバイザーとして使用する場合、ホストシステムと Windows 仮想マシン (VM) 間で効率的にファイルを共有できます。そのためには、virtio-win パッケージと併せて virtiofs 機能を使用します。
virtiofs.exe コマンドと -i パラメーターを使用して、Windows 仮想マシン上で virtiofs サービスを大文字と小文字を区別しないモードで実行できます。
前提条件
仮想マシンと共有するディレクトリーがある。既存のディレクトリーを共有しない場合は、shared-files などの新しいディレクトリーを作成します。
# mkdir /root/shared-files-
virtioドライバーのインストールメディアが仮想マシンに割り当てられている。 -
virtioドライバーのインストールメディアが仮想マシンに割り当てられている。 -
Windows 仮想マシンに
virtio-winパッケージがインストールされている。詳細は、Windows ゲストへの virtio ドライバーのインストール を参照してください。
手順
仮想マシンと共有するホストの各ディレクトリーを、仮想マシンの XML 設定の virtiofs ファイルシステムとして設定します。
目的の仮想マシンの XML 設定を開きます。
# virsh edit vm-name仮想マシンの XML 設定の
<devices>に、以下のようなエントリーを追加します。<filesystem type='mount' accessmode='passthrough'> <driver type='virtiofs'/> <binary path='/usr/libexec/virtiofsd' xattr='on'/> <source dir='/root/shared-files'/> <target dir='host-file-share'/> </filesystem>この例では、ホスト上の
/root/shared-filesディレクトリーを仮想マシンに対してhost-file-shareとして表示するように設定します。
仮想マシンの共有メモリーを設定します。そのためには、共有メモリーバッキングを XML 設定の
<domain>セクションに追加します。<domain> [...] <memoryBacking> <access mode='shared'/> </memoryBacking> [...] </domain>仮想マシンを起動します。
# virsh start vm-nameWindows 仮想マシンで WinFsp をインストールします。これを行うには、
virtio-winISO イメージをマウントし、winfspMSI インストーラーを起動して、プロンプトに従います。インストールウィザードの Custom Setup ウィンドウで、仮想マシンにインストールする機能を選択します。
virtiofs サービスを起動します。
# sc start VirtioFsSvcThis PC に移動します。
File Explorer
This PC virtiofsは、正しく設定されている場合、Windows 仮想マシン上で、Z:から逆順に遡る、使用可能な最初のドライブ文字として使用できます。たとえば、my_viofs (Z:)です。重要共有ディレクトリーにアクセスするには、仮想マシンを再起動するたびに
virtiofsサービスを再起動する必要があります。オプション: 追加の
virtiofsインスタンスを設定するには、以下を実行します。virtiofsサービスを停止します。# sc stop VirtioFsSvc # sc config VirtioFsSvc start=demand複数の virtiofs インスタンスをセットアップするように WinFSP.Launcher サービスを設定します。
# "C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"virtiofsインスタンスをドライブにマウントします。たとえば、
mount_tag0タグを持つvirtiofsをY:ドライブにマウントするには、以下を実行します。"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:-
前のステップを繰り返して、すべての
virtiofsインスタンスをマウントします。 virtiofsインスタンスをアンマウントするには、以下を実行します。"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsY
検証
Windows 仮想マシンで、This PC に移動します。
File Explorer
This PC -
virtiofsサービスの設定時にマウントポイントを指定しなかった場合、サービスはz:から始まる最初の利用可能なドライブレターを逆順に使用します。 -
複数の
virtiofsインスタンスが設定されている場合、それらはインスタンスに割り当てられたドライブ文字を持つドライブとして表示されます。
-